{"abi":[{"type":"error","name":"HexLengthInsufficient","inputs":[]},{"type":"error","name":"TooBigForSmallString","inputs":[]}],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"643:51287:106:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;643:51287:106;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"643:51287:106:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"HexLengthInsufficient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooBigForSmallString\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol) Note: For performance and bytecode compactness, most of the string operations are restricted to byte strings (7-bit ASCII), except where otherwise specified. Usage of byte string operations on charsets with runes spanning two or more bytes can lead to undefined behavior.\",\"errors\":{\"HexLengthInsufficient()\":[{\"details\":\"The length of the output is too small to contain all the hex digits.\"}],\"TooBigForSmallString()\":[{\"details\":\"The length of the string is more than 32 bytes.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"NOT_FOUND\":{\"details\":\"The constant returned when the `search` is not found in the string.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for converting numbers into strings and other string operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solady/src/utils/LibString.sol\":\"LibString\"},\"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\":{\"lib/solady/src/utils/LibString.sol\":{\"keccak256\":\"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229\",\"dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"HexLengthInsufficient"},{"inputs":[],"type":"error","name":"TooBigForSmallString"}],"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":{"lib/solady/src/utils/LibString.sol":"LibString"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/solady/src/utils/LibString.sol":{"keccak256":"0x74ec81acbea6db4afe149ab51e26961bcb801af42f7af98242be71b866066200","urls":["bzz-raw://16bb49824fcfa9667aeed0eb515fdefda1016225085cf78ed852078c67168229","dweb:/ipfs/QmZ59xrx5QLSx5N5CiTLrfwsPKR7kpK4RRpiEWSMEpvDzQ"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Library for converting numbers into strings and other string operations."},"devdoc":{"version":1,"kind":"dev","author":"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol) Note: For performance and bytecode compactness, most of the string operations are restricted to byte strings (7-bit ASCII), except where otherwise specified. Usage of byte string operations on charsets with runes spanning two or more bytes can lead to undefined behavior.","errors":{"HexLengthInsufficient()":[{"details":"The length of the output is too small to contain all the hex digits."}],"TooBigForSmallString()":[{"details":"The length of the string is more than 32 bytes."}]}},"ast":{"absolutePath":"lib/solady/src/utils/LibString.sol","id":64644,"exportedSymbols":{"LibString":[64643]},"nodeType":"SourceUnit","src":"32:51899:106","nodes":[{"id":63990,"nodeType":"PragmaDirective","src":"32:23:106","nodes":[],"literals":["solidity","^","0.8",".4"]},{"id":64643,"nodeType":"ContractDefinition","src":"643:51287:106","nodes":[{"id":63994,"nodeType":"ErrorDefinition","src":"1032:30:106","nodes":[],"documentation":{"id":63992,"nodeType":"StructuredDocumentation","src":"950:77:106","text":"@dev The length of the output is too small to contain all the hex digits."},"errorSelector":"2194895a","name":"HexLengthInsufficient","nameLocation":"1038:21:106","parameters":{"id":63993,"nodeType":"ParameterList","parameters":[],"src":"1059:2:106"}},{"id":63997,"nodeType":"ErrorDefinition","src":"1129:29:106","nodes":[],"documentation":{"id":63995,"nodeType":"StructuredDocumentation","src":"1068:56:106","text":"@dev The length of the string is more than 32 bytes."},"errorSelector":"ec92f9a3","name":"TooBigForSmallString","nameLocation":"1135:20:106","parameters":{"id":63996,"nodeType":"ParameterList","parameters":[],"src":"1155:2:106"}},{"id":64005,"nodeType":"VariableDeclaration","src":"1528:55:106","nodes":[],"constant":true,"documentation":{"id":63998,"nodeType":"StructuredDocumentation","src":"1447:76:106","text":"@dev The constant returned when the `search` is not found in the string."},"mutability":"constant","name":"NOT_FOUND","nameLocation":"1554:9:106","scope":64643,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":63999,"name":"uint256","nodeType":"ElementaryTypeName","src":"1528:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"expression":{"arguments":[{"id":64002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1571:7:106","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":64001,"name":"uint256","nodeType":"ElementaryTypeName","src":"1571:7:106","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":64000,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1566:4:106","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":64003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1566:13:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":64004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"1566:17:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":64015,"nodeType":"FunctionDefinition","src":"1941:1641:106","nodes":[],"body":{"id":64014,"nodeType":"Block","src":"2016:1566:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2078:1498:106","statements":[{"nodeType":"YulAssignment","src":"2418:29:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2435:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2429:5:106"},"nodeType":"YulFunctionCall","src":"2429:11:106"},{"kind":"number","nodeType":"YulLiteral","src":"2442:4:106","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2425:3:106"},"nodeType":"YulFunctionCall","src":"2425:22:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"2418:3:106"}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2526:4:106","type":"","value":"0x40"},{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"2536:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"2541:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2532:3:106"},"nodeType":"YulFunctionCall","src":"2532:14:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2519:6:106"},"nodeType":"YulFunctionCall","src":"2519:28:106"},"nodeType":"YulExpressionStatement","src":"2519:28:106"},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"2617:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"2622:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2610:6:106"},"nodeType":"YulFunctionCall","src":"2610:14:106"},"nodeType":"YulExpressionStatement","src":"2610:14:106"},{"nodeType":"YulVariableDeclaration","src":"2712:14:106","value":{"name":"str","nodeType":"YulIdentifier","src":"2723:3:106"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"2716:3:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2740:15:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2753:1:106","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2749:3:106"},"nodeType":"YulFunctionCall","src":"2749:6:106"},"variables":[{"name":"w","nodeType":"YulTypedName","src":"2744:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"2975:371:106","statements":[{"nodeType":"YulAssignment","src":"2993:18:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"3004:3:106"},{"name":"w","nodeType":"YulIdentifier","src":"3009:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3000:3:106"},"nodeType":"YulFunctionCall","src":"3000:11:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"2993:3:106"}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"3172:3:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3181:2:106","type":"","value":"48"},{"arguments":[{"name":"temp","nodeType":"YulIdentifier","src":"3189:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"3195:2:106","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"3185:3:106"},"nodeType":"YulFunctionCall","src":"3185:13:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3177:3:106"},"nodeType":"YulFunctionCall","src":"3177:22:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"3164:7:106"},"nodeType":"YulFunctionCall","src":"3164:36:106"},"nodeType":"YulExpressionStatement","src":"3164:36:106"},{"nodeType":"YulAssignment","src":"3269:21:106","value":{"arguments":[{"name":"temp","nodeType":"YulIdentifier","src":"3281:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"3287:2:106","type":"","value":"10"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3277:3:106"},"nodeType":"YulFunctionCall","src":"3277:13:106"},"variableNames":[{"name":"temp","nodeType":"YulIdentifier","src":"3269:4:106"}]},{"body":{"nodeType":"YulBlock","src":"3323:9:106","statements":[{"nodeType":"YulBreak","src":"3325:5:106"}]},"condition":{"arguments":[{"name":"temp","nodeType":"YulIdentifier","src":"3317:4:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3310:6:106"},"nodeType":"YulFunctionCall","src":"3310:12:106"},"nodeType":"YulIf","src":"3307:25:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"2970:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2972:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"2948:21:106","statements":[{"nodeType":"YulVariableDeclaration","src":"2950:17:106","value":{"name":"value","nodeType":"YulIdentifier","src":"2962:5:106"},"variables":[{"name":"temp","nodeType":"YulTypedName","src":"2954:4:106","type":""}]}]},"src":"2944:402:106"},{"nodeType":"YulVariableDeclaration","src":"3360:27:106","value":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"3378:3:106"},{"name":"str","nodeType":"YulIdentifier","src":"3383:3:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3374:3:106"},"nodeType":"YulFunctionCall","src":"3374:13:106"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3364:6:106","type":""}]},{"nodeType":"YulAssignment","src":"3480:21:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"3491:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"3496:4:106","type":"","value":"0x20"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3487:3:106"},"nodeType":"YulFunctionCall","src":"3487:14:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"3480:3:106"}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"3554:3:106"},{"name":"length","nodeType":"YulIdentifier","src":"3559:6:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3547:6:106"},"nodeType":"YulFunctionCall","src":"3547:19:106"},"nodeType":"YulExpressionStatement","src":"3547:19:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64011,"isOffset":false,"isSlot":false,"src":"2418:3:106","valueSize":1},{"declaration":64011,"isOffset":false,"isSlot":false,"src":"2536:3:106","valueSize":1},{"declaration":64011,"isOffset":false,"isSlot":false,"src":"2617:3:106","valueSize":1},{"declaration":64011,"isOffset":false,"isSlot":false,"src":"2723:3:106","valueSize":1},{"declaration":64011,"isOffset":false,"isSlot":false,"src":"2993:3:106","valueSize":1},{"declaration":64011,"isOffset":false,"isSlot":false,"src":"3004:3:106","valueSize":1},{"declaration":64011,"isOffset":false,"isSlot":false,"src":"3172:3:106","valueSize":1},{"declaration":64011,"isOffset":false,"isSlot":false,"src":"3383:3:106","valueSize":1},{"declaration":64011,"isOffset":false,"isSlot":false,"src":"3480:3:106","valueSize":1},{"declaration":64011,"isOffset":false,"isSlot":false,"src":"3491:3:106","valueSize":1},{"declaration":64011,"isOffset":false,"isSlot":false,"src":"3554:3:106","valueSize":1},{"declaration":64008,"isOffset":false,"isSlot":false,"src":"2962:5:106","valueSize":1}],"id":64013,"nodeType":"InlineAssembly","src":"2069:1507:106"}]},"documentation":{"id":64006,"nodeType":"StructuredDocumentation","src":"1873:63:106","text":"@dev Returns the base 10 decimal representation of `value`."},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1950:8:106","parameters":{"id":64009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64008,"mutability":"mutable","name":"value","nameLocation":"1967:5:106","nodeType":"VariableDeclaration","scope":64015,"src":"1959:13:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1959:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1958:15:106"},"returnParameters":{"id":64012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64011,"mutability":"mutable","name":"str","nameLocation":"2011:3:106","nodeType":"VariableDeclaration","scope":64015,"src":"1997:17:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64010,"name":"string","nodeType":"ElementaryTypeName","src":"1997:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1996:19:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64048,"nodeType":"FunctionDefinition","src":"3656:716:106","nodes":[],"body":{"id":64047,"nodeType":"Block","src":"3730:642:106","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":64025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":64023,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64018,"src":"3744:5:106","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":64024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3753:1:106","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3744:10:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":64034,"nodeType":"IfStatement","src":"3740:72:106","trueBody":{"id":64033,"nodeType":"Block","src":"3756:56:106","statements":[{"expression":{"arguments":[{"arguments":[{"id":64029,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64018,"src":"3794:5:106","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":64028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3786:7:106","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":64027,"name":"uint256","nodeType":"ElementaryTypeName","src":"3786:7:106","typeDescriptions":{}}},"id":64030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3786:14:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":64026,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[64015,64048],"referencedDeclaration":64015,"src":"3777:8:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":64031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3777:24:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":64022,"id":64032,"nodeType":"Return","src":"3770:31:106"}]}},{"id":64045,"nodeType":"UncheckedBlock","src":"3821:66:106","statements":[{"expression":{"id":64043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64035,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64021,"src":"3845:3:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":64040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"3868:6:106","subExpression":{"id":64039,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64018,"src":"3869:5:106","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":64038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3860:7:106","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":64037,"name":"uint256","nodeType":"ElementaryTypeName","src":"3860:7:106","typeDescriptions":{}}},"id":64041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3860:15:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":64036,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[64015,64048],"referencedDeclaration":64015,"src":"3851:8:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":64042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3851:25:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3845:31:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":64044,"nodeType":"ExpressionStatement","src":"3845:31:106"}]},{"AST":{"nodeType":"YulBlock","src":"3948:418:106","statements":[{"nodeType":"YulVariableDeclaration","src":"4104:24:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"4124:3:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4118:5:106"},"nodeType":"YulFunctionCall","src":"4118:10:106"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4108:6:106","type":""}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"4175:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"4180:4:106","type":"","value":"0x2d"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4168:6:106"},"nodeType":"YulFunctionCall","src":"4168:17:106"},"nodeType":"YulExpressionStatement","src":"4168:17:106"},{"nodeType":"YulAssignment","src":"4226:18:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"4237:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"4242:1:106","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4233:3:106"},"nodeType":"YulFunctionCall","src":"4233:11:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"4226:3:106"}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"4307:3:106"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4316:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"4324:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4312:3:106"},"nodeType":"YulFunctionCall","src":"4312:14:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4300:6:106"},"nodeType":"YulFunctionCall","src":"4300:27:106"},"nodeType":"YulExpressionStatement","src":"4300:27:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64021,"isOffset":false,"isSlot":false,"src":"4124:3:106","valueSize":1},{"declaration":64021,"isOffset":false,"isSlot":false,"src":"4175:3:106","valueSize":1},{"declaration":64021,"isOffset":false,"isSlot":false,"src":"4226:3:106","valueSize":1},{"declaration":64021,"isOffset":false,"isSlot":false,"src":"4237:3:106","valueSize":1},{"declaration":64021,"isOffset":false,"isSlot":false,"src":"4307:3:106","valueSize":1}],"id":64046,"nodeType":"InlineAssembly","src":"3939:427:106"}]},"documentation":{"id":64016,"nodeType":"StructuredDocumentation","src":"3588:63:106","text":"@dev Returns the base 10 decimal representation of `value`."},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"3665:8:106","parameters":{"id":64019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64018,"mutability":"mutable","name":"value","nameLocation":"3681:5:106","nodeType":"VariableDeclaration","scope":64048,"src":"3674:12:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":64017,"name":"int256","nodeType":"ElementaryTypeName","src":"3674:6:106","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3673:14:106"},"returnParameters":{"id":64022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64021,"mutability":"mutable","name":"str","nameLocation":"3725:3:106","nodeType":"VariableDeclaration","scope":64048,"src":"3711:17:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64020,"name":"string","nodeType":"ElementaryTypeName","src":"3711:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3710:19:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64067,"nodeType":"FunctionDefinition","src":"5009:460:106","nodes":[],"body":{"id":64066,"nodeType":"Block","src":"5103:366:106","nodes":[],"statements":[{"expression":{"id":64063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64058,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64056,"src":"5113:3:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64060,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64051,"src":"5139:5:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":64061,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64053,"src":"5146:6:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":64059,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[64079,64137,64179,64205],"referencedDeclaration":64079,"src":"5119:19:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":64062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5119:34:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5113:40:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":64064,"nodeType":"ExpressionStatement","src":"5113:40:106"},{"AST":{"nodeType":"YulBlock","src":"5215:248:106","statements":[{"nodeType":"YulVariableDeclaration","src":"5229:35:106","value":{"arguments":[{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"5256:3:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5250:5:106"},"nodeType":"YulFunctionCall","src":"5250:10:106"},{"kind":"number","nodeType":"YulLiteral","src":"5262:1:106","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5246:3:106"},"nodeType":"YulFunctionCall","src":"5246:18:106"},"variables":[{"name":"strLength","nodeType":"YulTypedName","src":"5233:9:106","type":""}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"5307:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"5312:6:106","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5300:6:106"},"nodeType":"YulFunctionCall","src":"5300:19:106"},"nodeType":"YulExpressionStatement","src":"5300:19:106"},{"nodeType":"YulAssignment","src":"5358:18:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"5369:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"5374:1:106","type":"","value":"2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5365:3:106"},"nodeType":"YulFunctionCall","src":"5365:11:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"5358:3:106"}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"5417:3:106"},{"name":"strLength","nodeType":"YulIdentifier","src":"5422:9:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5410:6:106"},"nodeType":"YulFunctionCall","src":"5410:22:106"},"nodeType":"YulExpressionStatement","src":"5410:22:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64056,"isOffset":false,"isSlot":false,"src":"5256:3:106","valueSize":1},{"declaration":64056,"isOffset":false,"isSlot":false,"src":"5307:3:106","valueSize":1},{"declaration":64056,"isOffset":false,"isSlot":false,"src":"5358:3:106","valueSize":1},{"declaration":64056,"isOffset":false,"isSlot":false,"src":"5369:3:106","valueSize":1},{"declaration":64056,"isOffset":false,"isSlot":false,"src":"5417:3:106","valueSize":1}],"id":64065,"nodeType":"InlineAssembly","src":"5206:257:106"}]},"documentation":{"id":64049,"nodeType":"StructuredDocumentation","src":"4661:343:106","text":"@dev Returns the hexadecimal representation of `value`,\n left-padded to an input length of `length` bytes.\n The output is prefixed with \"0x\" encoded using 2 hexadecimal digits per byte,\n giving a total length of `length * 2 + 2` bytes.\n Reverts if `length` is too small for the output to contain all the digits."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"5018:11:106","parameters":{"id":64054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64051,"mutability":"mutable","name":"value","nameLocation":"5038:5:106","nodeType":"VariableDeclaration","scope":64067,"src":"5030:13:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64050,"name":"uint256","nodeType":"ElementaryTypeName","src":"5030:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":64053,"mutability":"mutable","name":"length","nameLocation":"5053:6:106","nodeType":"VariableDeclaration","scope":64067,"src":"5045:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64052,"name":"uint256","nodeType":"ElementaryTypeName","src":"5045:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5029:31:106"},"returnParameters":{"id":64057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64056,"mutability":"mutable","name":"str","nameLocation":"5098:3:106","nodeType":"VariableDeclaration","scope":64067,"src":"5084:17:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64055,"name":"string","nodeType":"ElementaryTypeName","src":"5084:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5083:19:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64079,"nodeType":"FunctionDefinition","src":"5819:1897:106","nodes":[],"body":{"id":64078,"nodeType":"Block","src":"5949:1767:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"6011:1699:106","statements":[{"nodeType":"YulAssignment","src":"6328:66:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6345:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6339:5:106"},"nodeType":"YulFunctionCall","src":"6339:11:106"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6364:1:106","type":"","value":"1"},{"name":"length","nodeType":"YulIdentifier","src":"6367:6:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6360:3:106"},"nodeType":"YulFunctionCall","src":"6360:14:106"},{"kind":"number","nodeType":"YulLiteral","src":"6376:4:106","type":"","value":"0x42"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6356:3:106"},"nodeType":"YulFunctionCall","src":"6356:25:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6387:4:106","type":"","value":"0x1f"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6383:3:106"},"nodeType":"YulFunctionCall","src":"6383:9:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6352:3:106"},"nodeType":"YulFunctionCall","src":"6352:41:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6335:3:106"},"nodeType":"YulFunctionCall","src":"6335:59:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"6328:3:106"}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6450:4:106","type":"","value":"0x40"},{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"6460:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"6465:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6456:3:106"},"nodeType":"YulFunctionCall","src":"6456:14:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6443:6:106"},"nodeType":"YulFunctionCall","src":"6443:28:106"},"nodeType":"YulExpressionStatement","src":"6443:28:106"},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"6541:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"6546:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6534:6:106"},"nodeType":"YulFunctionCall","src":"6534:14:106"},"nodeType":"YulExpressionStatement","src":"6534:14:106"},{"nodeType":"YulVariableDeclaration","src":"6622:14:106","value":{"name":"str","nodeType":"YulIdentifier","src":"6633:3:106"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"6626:3:106","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6714:4:106","type":"","value":"0x0f"},{"kind":"number","nodeType":"YulLiteral","src":"6720:34:106","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6707:6:106"},"nodeType":"YulFunctionCall","src":"6707:48:106"},"nodeType":"YulExpressionStatement","src":"6707:48:106"},{"nodeType":"YulVariableDeclaration","src":"6769:42:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"6786:3:106"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6795:6:106"},{"name":"length","nodeType":"YulIdentifier","src":"6803:6:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6791:3:106"},"nodeType":"YulFunctionCall","src":"6791:19:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6782:3:106"},"nodeType":"YulFunctionCall","src":"6782:29:106"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"6773:5:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6824:15:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6837:1:106","type":"","value":"1"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6833:3:106"},"nodeType":"YulFunctionCall","src":"6833:6:106"},"variables":[{"name":"w","nodeType":"YulTypedName","src":"6828:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6860:17:106","value":{"name":"value","nodeType":"YulIdentifier","src":"6872:5:106"},"variables":[{"name":"temp","nodeType":"YulTypedName","src":"6864:4:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"7070:276:106","statements":[{"nodeType":"YulAssignment","src":"7088:18:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"7099:3:106"},{"name":"w","nodeType":"YulIdentifier","src":"7104:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7095:3:106"},"nodeType":"YulFunctionCall","src":"7095:11:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"7088:3:106"}]},{"expression":{"arguments":[{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"7153:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"7158:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7149:3:106"},"nodeType":"YulFunctionCall","src":"7149:11:106"},{"arguments":[{"arguments":[{"name":"temp","nodeType":"YulIdentifier","src":"7172:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"7178:2:106","type":"","value":"15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7168:3:106"},"nodeType":"YulFunctionCall","src":"7168:13:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7162:5:106"},"nodeType":"YulFunctionCall","src":"7162:20:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"7141:7:106"},"nodeType":"YulFunctionCall","src":"7141:42:106"},"nodeType":"YulExpressionStatement","src":"7141:42:106"},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"7208:3:106"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7227:1:106","type":"","value":"4"},{"name":"temp","nodeType":"YulIdentifier","src":"7230:4:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7223:3:106"},"nodeType":"YulFunctionCall","src":"7223:12:106"},{"kind":"number","nodeType":"YulLiteral","src":"7237:2:106","type":"","value":"15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7219:3:106"},"nodeType":"YulFunctionCall","src":"7219:21:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7213:5:106"},"nodeType":"YulFunctionCall","src":"7213:28:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"7200:7:106"},"nodeType":"YulFunctionCall","src":"7200:42:106"},"nodeType":"YulExpressionStatement","src":"7200:42:106"},{"nodeType":"YulAssignment","src":"7259:20:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7271:1:106","type":"","value":"8"},{"name":"temp","nodeType":"YulIdentifier","src":"7274:4:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7267:3:106"},"nodeType":"YulFunctionCall","src":"7267:12:106"},"variableNames":[{"name":"temp","nodeType":"YulIdentifier","src":"7259:4:106"}]},{"body":{"nodeType":"YulBlock","src":"7323:9:106","statements":[{"nodeType":"YulBreak","src":"7325:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"7310:3:106"},{"name":"start","nodeType":"YulIdentifier","src":"7315:5:106"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"7306:3:106"},"nodeType":"YulFunctionCall","src":"7306:15:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7299:6:106"},"nodeType":"YulFunctionCall","src":"7299:23:106"},"nodeType":"YulIf","src":"7296:36:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"7065:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7067:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"7062:2:106","statements":[]},"src":"7058:288:106"},{"body":{"nodeType":"YulBlock","src":"7368:121:106","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7393:4:106","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"7399:10:106","type":"","value":"0x2194895a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7386:6:106"},"nodeType":"YulFunctionCall","src":"7386:24:106"},"nodeType":"YulExpressionStatement","src":"7386:24:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7464:4:106","type":"","value":"0x1c"},{"kind":"number","nodeType":"YulLiteral","src":"7470:4:106","type":"","value":"0x04"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7457:6:106"},"nodeType":"YulFunctionCall","src":"7457:18:106"},"nodeType":"YulExpressionStatement","src":"7457:18:106"}]},"condition":{"name":"temp","nodeType":"YulIdentifier","src":"7363:4:106"},"nodeType":"YulIf","src":"7360:129:106"},{"nodeType":"YulVariableDeclaration","src":"7547:30:106","value":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"7568:3:106"},{"name":"str","nodeType":"YulIdentifier","src":"7573:3:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7564:3:106"},"nodeType":"YulFunctionCall","src":"7564:13:106"},"variables":[{"name":"strLength","nodeType":"YulTypedName","src":"7551:9:106","type":""}]},{"nodeType":"YulAssignment","src":"7644:21:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"7655:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"7660:4:106","type":"","value":"0x20"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7651:3:106"},"nodeType":"YulFunctionCall","src":"7651:14:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"7644:3:106"}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"7685:3:106"},{"name":"strLength","nodeType":"YulIdentifier","src":"7690:9:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7678:6:106"},"nodeType":"YulFunctionCall","src":"7678:22:106"},"nodeType":"YulExpressionStatement","src":"7678:22:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64072,"isOffset":false,"isSlot":false,"src":"6367:6:106","valueSize":1},{"declaration":64072,"isOffset":false,"isSlot":false,"src":"6795:6:106","valueSize":1},{"declaration":64072,"isOffset":false,"isSlot":false,"src":"6803:6:106","valueSize":1},{"declaration":64075,"isOffset":false,"isSlot":false,"src":"6328:3:106","valueSize":1},{"declaration":64075,"isOffset":false,"isSlot":false,"src":"6460:3:106","valueSize":1},{"declaration":64075,"isOffset":false,"isSlot":false,"src":"6541:3:106","valueSize":1},{"declaration":64075,"isOffset":false,"isSlot":false,"src":"6633:3:106","valueSize":1},{"declaration":64075,"isOffset":false,"isSlot":false,"src":"6786:3:106","valueSize":1},{"declaration":64075,"isOffset":false,"isSlot":false,"src":"7088:3:106","valueSize":1},{"declaration":64075,"isOffset":false,"isSlot":false,"src":"7099:3:106","valueSize":1},{"declaration":64075,"isOffset":false,"isSlot":false,"src":"7153:3:106","valueSize":1},{"declaration":64075,"isOffset":false,"isSlot":false,"src":"7208:3:106","valueSize":1},{"declaration":64075,"isOffset":false,"isSlot":false,"src":"7310:3:106","valueSize":1},{"declaration":64075,"isOffset":false,"isSlot":false,"src":"7573:3:106","valueSize":1},{"declaration":64075,"isOffset":false,"isSlot":false,"src":"7644:3:106","valueSize":1},{"declaration":64075,"isOffset":false,"isSlot":false,"src":"7655:3:106","valueSize":1},{"declaration":64075,"isOffset":false,"isSlot":false,"src":"7685:3:106","valueSize":1},{"declaration":64070,"isOffset":false,"isSlot":false,"src":"6872:5:106","valueSize":1}],"id":64077,"nodeType":"InlineAssembly","src":"6002:1708:106"}]},"documentation":{"id":64068,"nodeType":"StructuredDocumentation","src":"5475:339:106","text":"@dev Returns the hexadecimal representation of `value`,\n left-padded to an input length of `length` bytes.\n The output is prefixed with \"0x\" encoded using 2 hexadecimal digits per byte,\n giving a total length of `length * 2` bytes.\n Reverts if `length` is too small for the output to contain all the digits."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"5828:19:106","parameters":{"id":64073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64070,"mutability":"mutable","name":"value","nameLocation":"5856:5:106","nodeType":"VariableDeclaration","scope":64079,"src":"5848:13:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64069,"name":"uint256","nodeType":"ElementaryTypeName","src":"5848:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":64072,"mutability":"mutable","name":"length","nameLocation":"5871:6:106","nodeType":"VariableDeclaration","scope":64079,"src":"5863:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64071,"name":"uint256","nodeType":"ElementaryTypeName","src":"5863:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5847:31:106"},"returnParameters":{"id":64076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64075,"mutability":"mutable","name":"str","nameLocation":"5940:3:106","nodeType":"VariableDeclaration","scope":64079,"src":"5926:17:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64074,"name":"string","nodeType":"ElementaryTypeName","src":"5926:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5925:19:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64095,"nodeType":"FunctionDefinition","src":"7990:436:106","nodes":[],"body":{"id":64094,"nodeType":"Block","src":"8068:358:106","nodes":[],"statements":[{"expression":{"id":64091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64087,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64085,"src":"8078:3:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64089,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64082,"src":"8104:5:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":64088,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[64079,64137,64179,64205],"referencedDeclaration":64137,"src":"8084:19:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":64090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8084:26:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8078:32:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":64092,"nodeType":"ExpressionStatement","src":"8078:32:106"},{"AST":{"nodeType":"YulBlock","src":"8172:248:106","statements":[{"nodeType":"YulVariableDeclaration","src":"8186:35:106","value":{"arguments":[{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"8213:3:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8207:5:106"},"nodeType":"YulFunctionCall","src":"8207:10:106"},{"kind":"number","nodeType":"YulLiteral","src":"8219:1:106","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8203:3:106"},"nodeType":"YulFunctionCall","src":"8203:18:106"},"variables":[{"name":"strLength","nodeType":"YulTypedName","src":"8190:9:106","type":""}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"8264:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"8269:6:106","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8257:6:106"},"nodeType":"YulFunctionCall","src":"8257:19:106"},"nodeType":"YulExpressionStatement","src":"8257:19:106"},{"nodeType":"YulAssignment","src":"8315:18:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"8326:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"8331:1:106","type":"","value":"2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8322:3:106"},"nodeType":"YulFunctionCall","src":"8322:11:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"8315:3:106"}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"8374:3:106"},{"name":"strLength","nodeType":"YulIdentifier","src":"8379:9:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8367:6:106"},"nodeType":"YulFunctionCall","src":"8367:22:106"},"nodeType":"YulExpressionStatement","src":"8367:22:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64085,"isOffset":false,"isSlot":false,"src":"8213:3:106","valueSize":1},{"declaration":64085,"isOffset":false,"isSlot":false,"src":"8264:3:106","valueSize":1},{"declaration":64085,"isOffset":false,"isSlot":false,"src":"8315:3:106","valueSize":1},{"declaration":64085,"isOffset":false,"isSlot":false,"src":"8326:3:106","valueSize":1},{"declaration":64085,"isOffset":false,"isSlot":false,"src":"8374:3:106","valueSize":1}],"id":64093,"nodeType":"InlineAssembly","src":"8163:257:106"}]},"documentation":{"id":64080,"nodeType":"StructuredDocumentation","src":"7722:263:106","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\" and encoded using 2 hexadecimal digits per byte.\n As address are 20 bytes long, the output will left-padded to have\n a length of `20 * 2 + 2` bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"7999:11:106","parameters":{"id":64083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64082,"mutability":"mutable","name":"value","nameLocation":"8019:5:106","nodeType":"VariableDeclaration","scope":64095,"src":"8011:13:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64081,"name":"uint256","nodeType":"ElementaryTypeName","src":"8011:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8010:15:106"},"returnParameters":{"id":64086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64085,"mutability":"mutable","name":"str","nameLocation":"8063:3:106","nodeType":"VariableDeclaration","scope":64095,"src":"8049:17:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64084,"name":"string","nodeType":"ElementaryTypeName","src":"8049:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8048:19:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64111,"nodeType":"FunctionDefinition","src":"8675:652:106","nodes":[],"body":{"id":64110,"nodeType":"Block","src":"8760:567:106","nodes":[],"statements":[{"expression":{"id":64107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64103,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64101,"src":"8770:3:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64105,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64098,"src":"8796:5:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":64104,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[64079,64137,64179,64205],"referencedDeclaration":64137,"src":"8776:19:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":64106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8776:26:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8770:32:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":64108,"nodeType":"ExpressionStatement","src":"8770:32:106"},{"AST":{"nodeType":"YulBlock","src":"8864:457:106","statements":[{"nodeType":"YulVariableDeclaration","src":"8878:49:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8895:1:106","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"8908:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"8913:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8904:3:106"},"nodeType":"YulFunctionCall","src":"8904:14:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8898:5:106"},"nodeType":"YulFunctionCall","src":"8898:21:106"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"8890:4:106"},"nodeType":"YulFunctionCall","src":"8890:30:106"},{"kind":"number","nodeType":"YulLiteral","src":"8922:4:106","type":"","value":"0x30"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8887:2:106"},"nodeType":"YulFunctionCall","src":"8887:40:106"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"8882:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8976:35:106","value":{"arguments":[{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"9003:3:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8997:5:106"},"nodeType":"YulFunctionCall","src":"8997:10:106"},{"kind":"number","nodeType":"YulLiteral","src":"9009:1:106","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8993:3:106"},"nodeType":"YulFunctionCall","src":"8993:18:106"},"variables":[{"name":"strLength","nodeType":"YulTypedName","src":"8980:9:106","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"9058:3:106"},{"name":"o","nodeType":"YulIdentifier","src":"9063:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9054:3:106"},"nodeType":"YulFunctionCall","src":"9054:11:106"},{"kind":"number","nodeType":"YulLiteral","src":"9067:6:106","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9047:6:106"},"nodeType":"YulFunctionCall","src":"9047:27:106"},"nodeType":"YulExpressionStatement","src":"9047:27:106"},{"nodeType":"YulAssignment","src":"9142:26:106","value":{"arguments":[{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"9157:3:106"},{"name":"o","nodeType":"YulIdentifier","src":"9162:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9153:3:106"},"nodeType":"YulFunctionCall","src":"9153:11:106"},{"kind":"number","nodeType":"YulLiteral","src":"9166:1:106","type":"","value":"2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9149:3:106"},"nodeType":"YulFunctionCall","src":"9149:19:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"9142:3:106"}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"9238:3:106"},{"arguments":[{"name":"strLength","nodeType":"YulIdentifier","src":"9247:9:106"},{"name":"o","nodeType":"YulIdentifier","src":"9258:1:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9243:3:106"},"nodeType":"YulFunctionCall","src":"9243:17:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9231:6:106"},"nodeType":"YulFunctionCall","src":"9231:30:106"},"nodeType":"YulExpressionStatement","src":"9231:30:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64101,"isOffset":false,"isSlot":false,"src":"8908:3:106","valueSize":1},{"declaration":64101,"isOffset":false,"isSlot":false,"src":"9003:3:106","valueSize":1},{"declaration":64101,"isOffset":false,"isSlot":false,"src":"9058:3:106","valueSize":1},{"declaration":64101,"isOffset":false,"isSlot":false,"src":"9142:3:106","valueSize":1},{"declaration":64101,"isOffset":false,"isSlot":false,"src":"9157:3:106","valueSize":1},{"declaration":64101,"isOffset":false,"isSlot":false,"src":"9238:3:106","valueSize":1}],"id":64109,"nodeType":"InlineAssembly","src":"8855:466:106"}]},"documentation":{"id":64096,"nodeType":"StructuredDocumentation","src":"8432:238:106","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\".\n The output excludes leading \"0\" from the `toHexString` output.\n `0x00: \"0x0\", 0x01: \"0x1\", 0x12: \"0x12\", 0x123: \"0x123\"`."},"implemented":true,"kind":"function","modifiers":[],"name":"toMinimalHexString","nameLocation":"8684:18:106","parameters":{"id":64099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64098,"mutability":"mutable","name":"value","nameLocation":"8711:5:106","nodeType":"VariableDeclaration","scope":64111,"src":"8703:13:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64097,"name":"uint256","nodeType":"ElementaryTypeName","src":"8703:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8702:15:106"},"returnParameters":{"id":64102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64101,"mutability":"mutable","name":"str","nameLocation":"8755:3:106","nodeType":"VariableDeclaration","scope":64111,"src":"8741:17:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64100,"name":"string","nodeType":"ElementaryTypeName","src":"8741:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8740:19:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64127,"nodeType":"FunctionDefinition","src":"9534:545:106","nodes":[],"body":{"id":64126,"nodeType":"Block","src":"9627:452:106","nodes":[],"statements":[{"expression":{"id":64123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64119,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64117,"src":"9637:3:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64121,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64114,"src":"9663:5:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":64120,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[64079,64137,64179,64205],"referencedDeclaration":64137,"src":"9643:19:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":64122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9643:26:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"9637:32:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":64124,"nodeType":"ExpressionStatement","src":"9637:32:106"},{"AST":{"nodeType":"YulBlock","src":"9731:342:106","statements":[{"nodeType":"YulVariableDeclaration","src":"9745:49:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9762:1:106","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"9775:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"9780:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9771:3:106"},"nodeType":"YulFunctionCall","src":"9771:14:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9765:5:106"},"nodeType":"YulFunctionCall","src":"9765:21:106"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"9757:4:106"},"nodeType":"YulFunctionCall","src":"9757:30:106"},{"kind":"number","nodeType":"YulLiteral","src":"9789:4:106","type":"","value":"0x30"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9754:2:106"},"nodeType":"YulFunctionCall","src":"9754:40:106"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"9749:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9843:27:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"9866:3:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9860:5:106"},"nodeType":"YulFunctionCall","src":"9860:10:106"},"variables":[{"name":"strLength","nodeType":"YulTypedName","src":"9847:9:106","type":""}]},{"nodeType":"YulAssignment","src":"9902:18:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"9913:3:106"},{"name":"o","nodeType":"YulIdentifier","src":"9918:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9909:3:106"},"nodeType":"YulFunctionCall","src":"9909:11:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"9902:3:106"}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"9990:3:106"},{"arguments":[{"name":"strLength","nodeType":"YulIdentifier","src":"9999:9:106"},{"name":"o","nodeType":"YulIdentifier","src":"10010:1:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9995:3:106"},"nodeType":"YulFunctionCall","src":"9995:17:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9983:6:106"},"nodeType":"YulFunctionCall","src":"9983:30:106"},"nodeType":"YulExpressionStatement","src":"9983:30:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64117,"isOffset":false,"isSlot":false,"src":"9775:3:106","valueSize":1},{"declaration":64117,"isOffset":false,"isSlot":false,"src":"9866:3:106","valueSize":1},{"declaration":64117,"isOffset":false,"isSlot":false,"src":"9902:3:106","valueSize":1},{"declaration":64117,"isOffset":false,"isSlot":false,"src":"9913:3:106","valueSize":1},{"declaration":64117,"isOffset":false,"isSlot":false,"src":"9990:3:106","valueSize":1}],"id":64125,"nodeType":"InlineAssembly","src":"9722:351:106"}]},"documentation":{"id":64112,"nodeType":"StructuredDocumentation","src":"9333:196:106","text":"@dev Returns the hexadecimal representation of `value`.\n The output excludes leading \"0\" from the `toHexStringNoPrefix` output.\n `0x00: \"0\", 0x01: \"1\", 0x12: \"12\", 0x123: \"123\"`."},"implemented":true,"kind":"function","modifiers":[],"name":"toMinimalHexStringNoPrefix","nameLocation":"9543:26:106","parameters":{"id":64115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64114,"mutability":"mutable","name":"value","nameLocation":"9578:5:106","nodeType":"VariableDeclaration","scope":64127,"src":"9570:13:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64113,"name":"uint256","nodeType":"ElementaryTypeName","src":"9570:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9569:15:106"},"returnParameters":{"id":64118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64117,"mutability":"mutable","name":"str","nameLocation":"9622:3:106","nodeType":"VariableDeclaration","scope":64127,"src":"9608:17:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64116,"name":"string","nodeType":"ElementaryTypeName","src":"9608:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9607:19:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64137,"nodeType":"FunctionDefinition","src":"10326:1543:106","nodes":[],"body":{"id":64136,"nodeType":"Block","src":"10412:1457:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"10474:1389:106","statements":[{"nodeType":"YulAssignment","src":"10738:29:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10755:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10749:5:106"},"nodeType":"YulFunctionCall","src":"10749:11:106"},{"kind":"number","nodeType":"YulLiteral","src":"10762:4:106","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10745:3:106"},"nodeType":"YulFunctionCall","src":"10745:22:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"10738:3:106"}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10823:4:106","type":"","value":"0x40"},{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"10833:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"10838:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10829:3:106"},"nodeType":"YulFunctionCall","src":"10829:14:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10816:6:106"},"nodeType":"YulFunctionCall","src":"10816:28:106"},"nodeType":"YulExpressionStatement","src":"10816:28:106"},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"10914:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"10919:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10907:6:106"},"nodeType":"YulFunctionCall","src":"10907:14:106"},"nodeType":"YulExpressionStatement","src":"10907:14:106"},{"nodeType":"YulVariableDeclaration","src":"10995:14:106","value":{"name":"str","nodeType":"YulIdentifier","src":"11006:3:106"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"10999:3:106","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11087:4:106","type":"","value":"0x0f"},{"kind":"number","nodeType":"YulLiteral","src":"11093:34:106","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11080:6:106"},"nodeType":"YulFunctionCall","src":"11080:48:106"},"nodeType":"YulExpressionStatement","src":"11080:48:106"},{"nodeType":"YulVariableDeclaration","src":"11142:15:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11155:1:106","type":"","value":"1"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11151:3:106"},"nodeType":"YulFunctionCall","src":"11151:6:106"},"variables":[{"name":"w","nodeType":"YulTypedName","src":"11146:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"11377:265:106","statements":[{"nodeType":"YulAssignment","src":"11395:18:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"11406:3:106"},{"name":"w","nodeType":"YulIdentifier","src":"11411:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11402:3:106"},"nodeType":"YulFunctionCall","src":"11402:11:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"11395:3:106"}]},{"expression":{"arguments":[{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"11460:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"11465:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11456:3:106"},"nodeType":"YulFunctionCall","src":"11456:11:106"},{"arguments":[{"arguments":[{"name":"temp","nodeType":"YulIdentifier","src":"11479:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"11485:2:106","type":"","value":"15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11475:3:106"},"nodeType":"YulFunctionCall","src":"11475:13:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11469:5:106"},"nodeType":"YulFunctionCall","src":"11469:20:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"11448:7:106"},"nodeType":"YulFunctionCall","src":"11448:42:106"},"nodeType":"YulExpressionStatement","src":"11448:42:106"},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"11515:3:106"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11534:1:106","type":"","value":"4"},{"name":"temp","nodeType":"YulIdentifier","src":"11537:4:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"11530:3:106"},"nodeType":"YulFunctionCall","src":"11530:12:106"},{"kind":"number","nodeType":"YulLiteral","src":"11544:2:106","type":"","value":"15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11526:3:106"},"nodeType":"YulFunctionCall","src":"11526:21:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11520:5:106"},"nodeType":"YulFunctionCall","src":"11520:28:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"11507:7:106"},"nodeType":"YulFunctionCall","src":"11507:42:106"},"nodeType":"YulExpressionStatement","src":"11507:42:106"},{"nodeType":"YulAssignment","src":"11566:20:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11578:1:106","type":"","value":"8"},{"name":"temp","nodeType":"YulIdentifier","src":"11581:4:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"11574:3:106"},"nodeType":"YulFunctionCall","src":"11574:12:106"},"variableNames":[{"name":"temp","nodeType":"YulIdentifier","src":"11566:4:106"}]},{"body":{"nodeType":"YulBlock","src":"11619:9:106","statements":[{"nodeType":"YulBreak","src":"11621:5:106"}]},"condition":{"arguments":[{"name":"temp","nodeType":"YulIdentifier","src":"11613:4:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11606:6:106"},"nodeType":"YulFunctionCall","src":"11606:12:106"},"nodeType":"YulIf","src":"11603:25:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"11372:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"11374:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"11350:21:106","statements":[{"nodeType":"YulVariableDeclaration","src":"11352:17:106","value":{"name":"value","nodeType":"YulIdentifier","src":"11364:5:106"},"variables":[{"name":"temp","nodeType":"YulTypedName","src":"11356:4:106","type":""}]}]},"src":"11346:296:106"},{"nodeType":"YulVariableDeclaration","src":"11700:30:106","value":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"11721:3:106"},{"name":"str","nodeType":"YulIdentifier","src":"11726:3:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11717:3:106"},"nodeType":"YulFunctionCall","src":"11717:13:106"},"variables":[{"name":"strLength","nodeType":"YulTypedName","src":"11704:9:106","type":""}]},{"nodeType":"YulAssignment","src":"11797:21:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"11808:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"11813:4:106","type":"","value":"0x20"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11804:3:106"},"nodeType":"YulFunctionCall","src":"11804:14:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"11797:3:106"}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"11838:3:106"},{"name":"strLength","nodeType":"YulIdentifier","src":"11843:9:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11831:6:106"},"nodeType":"YulFunctionCall","src":"11831:22:106"},"nodeType":"YulExpressionStatement","src":"11831:22:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64133,"isOffset":false,"isSlot":false,"src":"10738:3:106","valueSize":1},{"declaration":64133,"isOffset":false,"isSlot":false,"src":"10833:3:106","valueSize":1},{"declaration":64133,"isOffset":false,"isSlot":false,"src":"10914:3:106","valueSize":1},{"declaration":64133,"isOffset":false,"isSlot":false,"src":"11006:3:106","valueSize":1},{"declaration":64133,"isOffset":false,"isSlot":false,"src":"11395:3:106","valueSize":1},{"declaration":64133,"isOffset":false,"isSlot":false,"src":"11406:3:106","valueSize":1},{"declaration":64133,"isOffset":false,"isSlot":false,"src":"11460:3:106","valueSize":1},{"declaration":64133,"isOffset":false,"isSlot":false,"src":"11515:3:106","valueSize":1},{"declaration":64133,"isOffset":false,"isSlot":false,"src":"11726:3:106","valueSize":1},{"declaration":64133,"isOffset":false,"isSlot":false,"src":"11797:3:106","valueSize":1},{"declaration":64133,"isOffset":false,"isSlot":false,"src":"11808:3:106","valueSize":1},{"declaration":64133,"isOffset":false,"isSlot":false,"src":"11838:3:106","valueSize":1},{"declaration":64130,"isOffset":false,"isSlot":false,"src":"11364:5:106","valueSize":1}],"id":64135,"nodeType":"InlineAssembly","src":"10465:1398:106"}]},"documentation":{"id":64128,"nodeType":"StructuredDocumentation","src":"10085:236:106","text":"@dev Returns the hexadecimal representation of `value`.\n The output is encoded using 2 hexadecimal digits per byte.\n As address are 20 bytes long, the output will left-padded to have\n a length of `20 * 2` bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"10335:19:106","parameters":{"id":64131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64130,"mutability":"mutable","name":"value","nameLocation":"10363:5:106","nodeType":"VariableDeclaration","scope":64137,"src":"10355:13:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64129,"name":"uint256","nodeType":"ElementaryTypeName","src":"10355:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10354:15:106"},"returnParameters":{"id":64134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64133,"mutability":"mutable","name":"str","nameLocation":"10407:3:106","nodeType":"VariableDeclaration","scope":64137,"src":"10393:17:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64132,"name":"string","nodeType":"ElementaryTypeName","src":"10393:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10392:19:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64153,"nodeType":"FunctionDefinition","src":"12141:838:106","nodes":[],"body":{"id":64152,"nodeType":"Block","src":"12230:749:106","nodes":[],"statements":[{"expression":{"id":64149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64145,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64143,"src":"12240:3:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64147,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64140,"src":"12258:5:106","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64146,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[64067,64095,64169,64195],"referencedDeclaration":64169,"src":"12246:11:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":64148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12246:18:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"12240:24:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":64150,"nodeType":"ExpressionStatement","src":"12240:24:106"},{"AST":{"nodeType":"YulBlock","src":"12326:647:106","statements":[{"nodeType":"YulVariableDeclaration","src":"12340:36:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12356:1:106","type":"","value":"6"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12367:1:106","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12363:3:106"},"nodeType":"YulFunctionCall","src":"12363:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"12371:3:106","type":"","value":"255"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"12359:3:106"},"nodeType":"YulFunctionCall","src":"12359:16:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12352:3:106"},"nodeType":"YulFunctionCall","src":"12352:24:106"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"12344:4:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12419:23:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"12432:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"12437:4:106","type":"","value":"0x22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12428:3:106"},"nodeType":"YulFunctionCall","src":"12428:14:106"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"12423:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12455:50:106","value":{"arguments":[{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"12483:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"12486:2:106","type":"","value":"40"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"12473:9:106"},"nodeType":"YulFunctionCall","src":"12473:16:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12495:2:106","type":"","value":"34"},{"name":"mask","nodeType":"YulIdentifier","src":"12499:4:106"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"12491:3:106"},"nodeType":"YulFunctionCall","src":"12491:13:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12469:3:106"},"nodeType":"YulFunctionCall","src":"12469:36:106"},"variables":[{"name":"hashed","nodeType":"YulTypedName","src":"12459:6:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12539:22:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12552:3:106","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"12557:3:106","type":"","value":"136"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12548:3:106"},"nodeType":"YulFunctionCall","src":"12548:13:106"},"variables":[{"name":"t","nodeType":"YulTypedName","src":"12543:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"12621:144:106","statements":[{"expression":{"arguments":[{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12650:1:106"},{"name":"i","nodeType":"YulIdentifier","src":"12653:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12646:3:106"},"nodeType":"YulFunctionCall","src":"12646:9:106"},{"arguments":[{"name":"t","nodeType":"YulIdentifier","src":"12661:1:106"},{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12669:1:106"},{"name":"hashed","nodeType":"YulIdentifier","src":"12672:6:106"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"12664:4:106"},"nodeType":"YulFunctionCall","src":"12664:15:106"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"12657:3:106"},"nodeType":"YulFunctionCall","src":"12657:23:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12639:6:106"},"nodeType":"YulFunctionCall","src":"12639:42:106"},"nodeType":"YulExpressionStatement","src":"12639:42:106"},{"nodeType":"YulAssignment","src":"12698:14:106","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12707:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"12710:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12703:3:106"},"nodeType":"YulFunctionCall","src":"12703:9:106"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"12698:1:106"}]},{"body":{"nodeType":"YulBlock","src":"12742:9:106","statements":[{"nodeType":"YulBreak","src":"12744:5:106"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12735:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"12738:2:106","type":"","value":"20"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12732:2:106"},"nodeType":"YulFunctionCall","src":"12732:9:106"},"nodeType":"YulIf","src":"12729:22:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"12616:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12618:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"12601:14:106","statements":[{"nodeType":"YulVariableDeclaration","src":"12603:10:106","value":{"kind":"number","nodeType":"YulLiteral","src":"12612:1:106","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"12607:1:106","type":""}]}]},"src":"12597:168:106"},{"expression":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"12785:1:106"},{"arguments":[{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"12798:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12792:5:106"},"nodeType":"YulFunctionCall","src":"12792:8:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12806:1:106","type":"","value":"1"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12819:4:106","type":"","value":"0x00"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12813:5:106"},"nodeType":"YulFunctionCall","src":"12813:11:106"},{"arguments":[{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"12836:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12830:5:106"},"nodeType":"YulFunctionCall","src":"12830:8:106"},{"name":"mask","nodeType":"YulIdentifier","src":"12840:4:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12826:3:106"},"nodeType":"YulFunctionCall","src":"12826:19:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12809:3:106"},"nodeType":"YulFunctionCall","src":"12809:37:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"12802:3:106"},"nodeType":"YulFunctionCall","src":"12802:45:106"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"12788:3:106"},"nodeType":"YulFunctionCall","src":"12788:60:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12778:6:106"},"nodeType":"YulFunctionCall","src":"12778:71:106"},"nodeType":"YulExpressionStatement","src":"12778:71:106"},{"nodeType":"YulAssignment","src":"12862:17:106","value":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"12871:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"12874:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12867:3:106"},"nodeType":"YulFunctionCall","src":"12867:12:106"},"variableNames":[{"name":"o","nodeType":"YulIdentifier","src":"12862:1:106"}]},{"expression":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"12899:1:106"},{"arguments":[{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"12912:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12906:5:106"},"nodeType":"YulFunctionCall","src":"12906:8:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12920:1:106","type":"","value":"1"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12933:4:106","type":"","value":"0x20"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12927:5:106"},"nodeType":"YulFunctionCall","src":"12927:11:106"},{"arguments":[{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"12950:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12944:5:106"},"nodeType":"YulFunctionCall","src":"12944:8:106"},{"name":"mask","nodeType":"YulIdentifier","src":"12954:4:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12940:3:106"},"nodeType":"YulFunctionCall","src":"12940:19:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12923:3:106"},"nodeType":"YulFunctionCall","src":"12923:37:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"12916:3:106"},"nodeType":"YulFunctionCall","src":"12916:45:106"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"12902:3:106"},"nodeType":"YulFunctionCall","src":"12902:60:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12892:6:106"},"nodeType":"YulFunctionCall","src":"12892:71:106"},"nodeType":"YulExpressionStatement","src":"12892:71:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64143,"isOffset":false,"isSlot":false,"src":"12432:3:106","valueSize":1}],"id":64151,"nodeType":"InlineAssembly","src":"12317:656:106"}]},"documentation":{"id":64138,"nodeType":"StructuredDocumentation","src":"11875:261:106","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\", encoded using 2 hexadecimal digits per byte,\n and the alphabets are capitalized conditionally according to\n https://eips.ethereum.org/EIPS/eip-55"},"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringChecksummed","nameLocation":"12150:22:106","parameters":{"id":64141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64140,"mutability":"mutable","name":"value","nameLocation":"12181:5:106","nodeType":"VariableDeclaration","scope":64153,"src":"12173:13:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":64139,"name":"address","nodeType":"ElementaryTypeName","src":"12173:7:106","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12172:15:106"},"returnParameters":{"id":64144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64143,"mutability":"mutable","name":"str","nameLocation":"12225:3:106","nodeType":"VariableDeclaration","scope":64153,"src":"12211:17:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64142,"name":"string","nodeType":"ElementaryTypeName","src":"12211:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12210:19:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64169,"nodeType":"FunctionDefinition","src":"13139:436:106","nodes":[],"body":{"id":64168,"nodeType":"Block","src":"13217:358:106","nodes":[],"statements":[{"expression":{"id":64165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64161,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64159,"src":"13227:3:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64163,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64156,"src":"13253:5:106","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64162,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[64079,64137,64179,64205],"referencedDeclaration":64179,"src":"13233:19:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":64164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13233:26:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"13227:32:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":64166,"nodeType":"ExpressionStatement","src":"13227:32:106"},{"AST":{"nodeType":"YulBlock","src":"13321:248:106","statements":[{"nodeType":"YulVariableDeclaration","src":"13335:35:106","value":{"arguments":[{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"13362:3:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13356:5:106"},"nodeType":"YulFunctionCall","src":"13356:10:106"},{"kind":"number","nodeType":"YulLiteral","src":"13368:1:106","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13352:3:106"},"nodeType":"YulFunctionCall","src":"13352:18:106"},"variables":[{"name":"strLength","nodeType":"YulTypedName","src":"13339:9:106","type":""}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"13413:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"13418:6:106","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13406:6:106"},"nodeType":"YulFunctionCall","src":"13406:19:106"},"nodeType":"YulExpressionStatement","src":"13406:19:106"},{"nodeType":"YulAssignment","src":"13464:18:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"13475:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"13480:1:106","type":"","value":"2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13471:3:106"},"nodeType":"YulFunctionCall","src":"13471:11:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"13464:3:106"}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"13523:3:106"},{"name":"strLength","nodeType":"YulIdentifier","src":"13528:9:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13516:6:106"},"nodeType":"YulFunctionCall","src":"13516:22:106"},"nodeType":"YulExpressionStatement","src":"13516:22:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64159,"isOffset":false,"isSlot":false,"src":"13362:3:106","valueSize":1},{"declaration":64159,"isOffset":false,"isSlot":false,"src":"13413:3:106","valueSize":1},{"declaration":64159,"isOffset":false,"isSlot":false,"src":"13464:3:106","valueSize":1},{"declaration":64159,"isOffset":false,"isSlot":false,"src":"13475:3:106","valueSize":1},{"declaration":64159,"isOffset":false,"isSlot":false,"src":"13523:3:106","valueSize":1}],"id":64167,"nodeType":"InlineAssembly","src":"13312:257:106"}]},"documentation":{"id":64154,"nodeType":"StructuredDocumentation","src":"12985:149:106","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\" and encoded using 2 hexadecimal digits per byte."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"13148:11:106","parameters":{"id":64157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64156,"mutability":"mutable","name":"value","nameLocation":"13168:5:106","nodeType":"VariableDeclaration","scope":64169,"src":"13160:13:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":64155,"name":"address","nodeType":"ElementaryTypeName","src":"13160:7:106","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13159:15:106"},"returnParameters":{"id":64160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64159,"mutability":"mutable","name":"str","nameLocation":"13212:3:106","nodeType":"VariableDeclaration","scope":64169,"src":"13198:17:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64158,"name":"string","nodeType":"ElementaryTypeName","src":"13198:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13197:19:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64179,"nodeType":"FunctionDefinition","src":"13712:1294:106","nodes":[],"body":{"id":64178,"nodeType":"Block","src":"13798:1208:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"13860:1140:106","statements":[{"nodeType":"YulAssignment","src":"13874:18:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13887:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13881:5:106"},"nodeType":"YulFunctionCall","src":"13881:11:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"13874:3:106"}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14199:4:106","type":"","value":"0x40"},{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"14209:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"14214:4:106","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14205:3:106"},"nodeType":"YulFunctionCall","src":"14205:14:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14192:6:106"},"nodeType":"YulFunctionCall","src":"14192:28:106"},"nodeType":"YulExpressionStatement","src":"14192:28:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14299:4:106","type":"","value":"0x0f"},{"kind":"number","nodeType":"YulLiteral","src":"14305:34:106","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14292:6:106"},"nodeType":"YulFunctionCall","src":"14292:48:106"},"nodeType":"YulExpressionStatement","src":"14292:48:106"},{"nodeType":"YulAssignment","src":"14354:18:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"14365:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"14370:1:106","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14361:3:106"},"nodeType":"YulFunctionCall","src":"14361:11:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"14354:3:106"}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"14392:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"14397:2:106","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14385:6:106"},"nodeType":"YulFunctionCall","src":"14385:15:106"},"nodeType":"YulExpressionStatement","src":"14385:15:106"},{"nodeType":"YulVariableDeclaration","src":"14414:23:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"14427:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"14432:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14423:3:106"},"nodeType":"YulFunctionCall","src":"14423:14:106"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"14418:1:106","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"14461:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"14464:2:106","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14457:3:106"},"nodeType":"YulFunctionCall","src":"14457:10:106"},{"kind":"number","nodeType":"YulLiteral","src":"14469:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14450:6:106"},"nodeType":"YulFunctionCall","src":"14450:21:106"},"nodeType":"YulExpressionStatement","src":"14450:21:106"},{"nodeType":"YulAssignment","src":"14485:23:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14498:2:106","type":"","value":"96"},{"name":"value","nodeType":"YulIdentifier","src":"14502:5:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14494:3:106"},"nodeType":"YulFunctionCall","src":"14494:14:106"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"14485:5:106"}]},{"body":{"nodeType":"YulBlock","src":"14714:276:106","statements":[{"nodeType":"YulVariableDeclaration","src":"14732:26:106","value":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"14745:1:106"},{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14752:1:106"},{"name":"i","nodeType":"YulIdentifier","src":"14755:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14748:3:106"},"nodeType":"YulFunctionCall","src":"14748:9:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14741:3:106"},"nodeType":"YulFunctionCall","src":"14741:17:106"},"variables":[{"name":"p","nodeType":"YulTypedName","src":"14736:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14775:26:106","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14792:1:106"},{"name":"value","nodeType":"YulIdentifier","src":"14795:5:106"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"14787:4:106"},"nodeType":"YulFunctionCall","src":"14787:14:106"},"variables":[{"name":"temp","nodeType":"YulTypedName","src":"14779:4:106","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"p","nodeType":"YulIdentifier","src":"14830:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"14833:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14826:3:106"},"nodeType":"YulFunctionCall","src":"14826:9:106"},{"arguments":[{"arguments":[{"name":"temp","nodeType":"YulIdentifier","src":"14847:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"14853:2:106","type":"","value":"15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14843:3:106"},"nodeType":"YulFunctionCall","src":"14843:13:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14837:5:106"},"nodeType":"YulFunctionCall","src":"14837:20:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"14818:7:106"},"nodeType":"YulFunctionCall","src":"14818:40:106"},"nodeType":"YulExpressionStatement","src":"14818:40:106"},{"expression":{"arguments":[{"name":"p","nodeType":"YulIdentifier","src":"14883:1:106"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14896:1:106","type":"","value":"4"},{"name":"temp","nodeType":"YulIdentifier","src":"14899:4:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"14892:3:106"},"nodeType":"YulFunctionCall","src":"14892:12:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14886:5:106"},"nodeType":"YulFunctionCall","src":"14886:19:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"14875:7:106"},"nodeType":"YulFunctionCall","src":"14875:31:106"},"nodeType":"YulExpressionStatement","src":"14875:31:106"},{"nodeType":"YulAssignment","src":"14923:14:106","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14932:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"14935:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14928:3:106"},"nodeType":"YulFunctionCall","src":"14928:9:106"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"14923:1:106"}]},{"body":{"nodeType":"YulBlock","src":"14967:9:106","statements":[{"nodeType":"YulBreak","src":"14969:5:106"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14960:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"14963:2:106","type":"","value":"20"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14957:2:106"},"nodeType":"YulFunctionCall","src":"14957:9:106"},"nodeType":"YulIf","src":"14954:22:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"14709:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"14711:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"14694:14:106","statements":[{"nodeType":"YulVariableDeclaration","src":"14696:10:106","value":{"kind":"number","nodeType":"YulLiteral","src":"14705:1:106","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"14700:1:106","type":""}]}]},"src":"14690:300:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64175,"isOffset":false,"isSlot":false,"src":"13874:3:106","valueSize":1},{"declaration":64175,"isOffset":false,"isSlot":false,"src":"14209:3:106","valueSize":1},{"declaration":64175,"isOffset":false,"isSlot":false,"src":"14354:3:106","valueSize":1},{"declaration":64175,"isOffset":false,"isSlot":false,"src":"14365:3:106","valueSize":1},{"declaration":64175,"isOffset":false,"isSlot":false,"src":"14392:3:106","valueSize":1},{"declaration":64175,"isOffset":false,"isSlot":false,"src":"14427:3:106","valueSize":1},{"declaration":64172,"isOffset":false,"isSlot":false,"src":"14485:5:106","valueSize":1},{"declaration":64172,"isOffset":false,"isSlot":false,"src":"14502:5:106","valueSize":1},{"declaration":64172,"isOffset":false,"isSlot":false,"src":"14795:5:106","valueSize":1}],"id":64177,"nodeType":"InlineAssembly","src":"13851:1149:106"}]},"documentation":{"id":64170,"nodeType":"StructuredDocumentation","src":"13581:126:106","text":"@dev Returns the hexadecimal representation of `value`.\n The output is encoded using 2 hexadecimal digits per byte."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"13721:19:106","parameters":{"id":64173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64172,"mutability":"mutable","name":"value","nameLocation":"13749:5:106","nodeType":"VariableDeclaration","scope":64179,"src":"13741:13:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":64171,"name":"address","nodeType":"ElementaryTypeName","src":"13741:7:106","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13740:15:106"},"returnParameters":{"id":64176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64175,"mutability":"mutable","name":"str","nameLocation":"13793:3:106","nodeType":"VariableDeclaration","scope":64179,"src":"13779:17:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64174,"name":"string","nodeType":"ElementaryTypeName","src":"13779:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13778:19:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64195,"nodeType":"FunctionDefinition","src":"15143:437:106","nodes":[],"body":{"id":64194,"nodeType":"Block","src":"15224:356:106","nodes":[],"statements":[{"expression":{"id":64191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64187,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64185,"src":"15234:3:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64189,"name":"raw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64182,"src":"15260:3:106","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":64188,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[64079,64137,64179,64205],"referencedDeclaration":64205,"src":"15240:19:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure returns (string memory)"}},"id":64190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15240:24:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"15234:30:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":64192,"nodeType":"ExpressionStatement","src":"15234:30:106"},{"AST":{"nodeType":"YulBlock","src":"15326:248:106","statements":[{"nodeType":"YulVariableDeclaration","src":"15340:35:106","value":{"arguments":[{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"15367:3:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15361:5:106"},"nodeType":"YulFunctionCall","src":"15361:10:106"},{"kind":"number","nodeType":"YulLiteral","src":"15373:1:106","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15357:3:106"},"nodeType":"YulFunctionCall","src":"15357:18:106"},"variables":[{"name":"strLength","nodeType":"YulTypedName","src":"15344:9:106","type":""}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"15418:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"15423:6:106","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15411:6:106"},"nodeType":"YulFunctionCall","src":"15411:19:106"},"nodeType":"YulExpressionStatement","src":"15411:19:106"},{"nodeType":"YulAssignment","src":"15469:18:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"15480:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"15485:1:106","type":"","value":"2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15476:3:106"},"nodeType":"YulFunctionCall","src":"15476:11:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"15469:3:106"}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"15528:3:106"},{"name":"strLength","nodeType":"YulIdentifier","src":"15533:9:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15521:6:106"},"nodeType":"YulFunctionCall","src":"15521:22:106"},"nodeType":"YulExpressionStatement","src":"15521:22:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64185,"isOffset":false,"isSlot":false,"src":"15367:3:106","valueSize":1},{"declaration":64185,"isOffset":false,"isSlot":false,"src":"15418:3:106","valueSize":1},{"declaration":64185,"isOffset":false,"isSlot":false,"src":"15469:3:106","valueSize":1},{"declaration":64185,"isOffset":false,"isSlot":false,"src":"15480:3:106","valueSize":1},{"declaration":64185,"isOffset":false,"isSlot":false,"src":"15528:3:106","valueSize":1}],"id":64193,"nodeType":"InlineAssembly","src":"15317:257:106"}]},"documentation":{"id":64180,"nodeType":"StructuredDocumentation","src":"15012:126:106","text":"@dev Returns the hex encoded string from the raw bytes.\n The output is encoded using 2 hexadecimal digits per byte."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"15152:11:106","parameters":{"id":64183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64182,"mutability":"mutable","name":"raw","nameLocation":"15177:3:106","nodeType":"VariableDeclaration","scope":64195,"src":"15164:16:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":64181,"name":"bytes","nodeType":"ElementaryTypeName","src":"15164:5:106","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15163:18:106"},"returnParameters":{"id":64186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64185,"mutability":"mutable","name":"str","nameLocation":"15219:3:106","nodeType":"VariableDeclaration","scope":64195,"src":"15205:17:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64184,"name":"string","nodeType":"ElementaryTypeName","src":"15205:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15204:19:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64205,"nodeType":"FunctionDefinition","src":"15717:940:106","nodes":[],"body":{"id":64204,"nodeType":"Block","src":"15806:851:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"15868:783:106","statements":[{"nodeType":"YulVariableDeclaration","src":"15882:24:106","value":{"arguments":[{"name":"raw","nodeType":"YulIdentifier","src":"15902:3:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15896:5:106"},"nodeType":"YulFunctionCall","src":"15896:10:106"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"15886:6:106","type":""}]},{"nodeType":"YulAssignment","src":"15919:26:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15936:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15930:5:106"},"nodeType":"YulFunctionCall","src":"15930:11:106"},{"kind":"number","nodeType":"YulLiteral","src":"15943:1:106","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15926:3:106"},"nodeType":"YulFunctionCall","src":"15926:19:106"},"variableNames":[{"name":"str","nodeType":"YulIdentifier","src":"15919:3:106"}]},{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"16006:3:106"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"16015:6:106"},{"name":"length","nodeType":"YulIdentifier","src":"16023:6:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16011:3:106"},"nodeType":"YulFunctionCall","src":"16011:19:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15999:6:106"},"nodeType":"YulFunctionCall","src":"15999:32:106"},"nodeType":"YulExpressionStatement","src":"15999:32:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16145:4:106","type":"","value":"0x0f"},{"kind":"number","nodeType":"YulLiteral","src":"16151:34:106","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16138:6:106"},"nodeType":"YulFunctionCall","src":"16138:48:106"},"nodeType":"YulExpressionStatement","src":"16138:48:106"},{"nodeType":"YulVariableDeclaration","src":"16200:23:106","value":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"16213:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"16218:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16209:3:106"},"nodeType":"YulFunctionCall","src":"16209:14:106"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"16204:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16236:27:106","value":{"arguments":[{"name":"raw","nodeType":"YulIdentifier","src":"16251:3:106"},{"name":"length","nodeType":"YulIdentifier","src":"16256:6:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16247:3:106"},"nodeType":"YulFunctionCall","src":"16247:16:106"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"16240:3:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"16308:207:106","statements":[{"nodeType":"YulAssignment","src":"16326:18:106","value":{"arguments":[{"name":"raw","nodeType":"YulIdentifier","src":"16337:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"16342:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16333:3:106"},"nodeType":"YulFunctionCall","src":"16333:11:106"},"variableNames":[{"name":"raw","nodeType":"YulIdentifier","src":"16326:3:106"}]},{"expression":{"arguments":[{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"16373:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"16376:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16369:3:106"},"nodeType":"YulFunctionCall","src":"16369:9:106"},{"arguments":[{"arguments":[{"arguments":[{"name":"raw","nodeType":"YulIdentifier","src":"16396:3:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16390:5:106"},"nodeType":"YulFunctionCall","src":"16390:10:106"},{"kind":"number","nodeType":"YulLiteral","src":"16402:2:106","type":"","value":"15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16386:3:106"},"nodeType":"YulFunctionCall","src":"16386:19:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16380:5:106"},"nodeType":"YulFunctionCall","src":"16380:26:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"16361:7:106"},"nodeType":"YulFunctionCall","src":"16361:46:106"},"nodeType":"YulExpressionStatement","src":"16361:46:106"},{"expression":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"16432:1:106"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16449:1:106","type":"","value":"4"},{"arguments":[{"name":"raw","nodeType":"YulIdentifier","src":"16458:3:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16452:5:106"},"nodeType":"YulFunctionCall","src":"16452:10:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"16445:3:106"},"nodeType":"YulFunctionCall","src":"16445:18:106"},{"kind":"number","nodeType":"YulLiteral","src":"16465:2:106","type":"","value":"15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16441:3:106"},"nodeType":"YulFunctionCall","src":"16441:27:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16435:5:106"},"nodeType":"YulFunctionCall","src":"16435:34:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"16424:7:106"},"nodeType":"YulFunctionCall","src":"16424:46:106"},"nodeType":"YulExpressionStatement","src":"16424:46:106"},{"nodeType":"YulAssignment","src":"16487:14:106","value":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"16496:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"16499:1:106","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16492:3:106"},"nodeType":"YulFunctionCall","src":"16492:9:106"},"variableNames":[{"name":"o","nodeType":"YulIdentifier","src":"16487:1:106"}]}]},"condition":{"arguments":[{"arguments":[{"name":"raw","nodeType":"YulIdentifier","src":"16294:3:106"},{"name":"end","nodeType":"YulIdentifier","src":"16299:3:106"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"16291:2:106"},"nodeType":"YulFunctionCall","src":"16291:12:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16284:6:106"},"nodeType":"YulFunctionCall","src":"16284:20:106"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"16305:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"16281:2:106","statements":[]},"src":"16277:238:106"},{"expression":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"16535:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"16538:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16528:6:106"},"nodeType":"YulFunctionCall","src":"16528:12:106"},"nodeType":"YulExpressionStatement","src":"16528:12:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16598:4:106","type":"","value":"0x40"},{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"16608:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"16611:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16604:3:106"},"nodeType":"YulFunctionCall","src":"16604:12:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16591:6:106"},"nodeType":"YulFunctionCall","src":"16591:26:106"},"nodeType":"YulExpressionStatement","src":"16591:26:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64198,"isOffset":false,"isSlot":false,"src":"15902:3:106","valueSize":1},{"declaration":64198,"isOffset":false,"isSlot":false,"src":"16251:3:106","valueSize":1},{"declaration":64198,"isOffset":false,"isSlot":false,"src":"16294:3:106","valueSize":1},{"declaration":64198,"isOffset":false,"isSlot":false,"src":"16326:3:106","valueSize":1},{"declaration":64198,"isOffset":false,"isSlot":false,"src":"16337:3:106","valueSize":1},{"declaration":64198,"isOffset":false,"isSlot":false,"src":"16396:3:106","valueSize":1},{"declaration":64198,"isOffset":false,"isSlot":false,"src":"16458:3:106","valueSize":1},{"declaration":64201,"isOffset":false,"isSlot":false,"src":"15919:3:106","valueSize":1},{"declaration":64201,"isOffset":false,"isSlot":false,"src":"16006:3:106","valueSize":1},{"declaration":64201,"isOffset":false,"isSlot":false,"src":"16213:3:106","valueSize":1}],"id":64203,"nodeType":"InlineAssembly","src":"15859:792:106"}]},"documentation":{"id":64196,"nodeType":"StructuredDocumentation","src":"15586:126:106","text":"@dev Returns the hex encoded string from the raw bytes.\n The output is encoded using 2 hexadecimal digits per byte."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"15726:19:106","parameters":{"id":64199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64198,"mutability":"mutable","name":"raw","nameLocation":"15759:3:106","nodeType":"VariableDeclaration","scope":64205,"src":"15746:16:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":64197,"name":"bytes","nodeType":"ElementaryTypeName","src":"15746:5:106","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15745:18:106"},"returnParameters":{"id":64202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64201,"mutability":"mutable","name":"str","nameLocation":"15801:3:106","nodeType":"VariableDeclaration","scope":64205,"src":"15787:17:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64200,"name":"string","nodeType":"ElementaryTypeName","src":"15787:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15786:19:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64215,"nodeType":"FunctionDefinition","src":"17011:627:106","nodes":[],"body":{"id":64214,"nodeType":"Block","src":"17086:552:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"17148:484:106","statements":[{"body":{"nodeType":"YulBlock","src":"17174:448:106","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17199:4:106","type":"","value":"0x00"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17213:1:106","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"17209:3:106"},"nodeType":"YulFunctionCall","src":"17209:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"17217:3:106","type":"","value":"255"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"17205:3:106"},"nodeType":"YulFunctionCall","src":"17205:16:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17192:6:106"},"nodeType":"YulFunctionCall","src":"17192:30:106"},"nodeType":"YulExpressionStatement","src":"17192:30:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17246:4:106","type":"","value":"0x20"},{"kind":"number","nodeType":"YulLiteral","src":"17252:66:106","type":"","value":"0x0202020202020202020202020202020202020202020202020303030304040506"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17239:6:106"},"nodeType":"YulFunctionCall","src":"17239:80:106"},"nodeType":"YulExpressionStatement","src":"17239:80:106"},{"nodeType":"YulVariableDeclaration","src":"17336:21:106","value":{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"17349:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"17352:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17345:3:106"},"nodeType":"YulFunctionCall","src":"17345:12:106"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"17340:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17374:27:106","value":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"17389:1:106"},{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"17398:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17392:5:106"},"nodeType":"YulFunctionCall","src":"17392:8:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17385:3:106"},"nodeType":"YulFunctionCall","src":"17385:16:106"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"17378:3:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"17469:139:106","statements":[{"nodeType":"YulAssignment","src":"17491:47:106","value":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"17500:1:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17508:1:106","type":"","value":"0"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17521:3:106","type":"","value":"250"},{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"17532:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17526:5:106"},"nodeType":"YulFunctionCall","src":"17526:8:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"17517:3:106"},"nodeType":"YulFunctionCall","src":"17517:18:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17511:5:106"},"nodeType":"YulFunctionCall","src":"17511:25:106"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"17503:4:106"},"nodeType":"YulFunctionCall","src":"17503:34:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17496:3:106"},"nodeType":"YulFunctionCall","src":"17496:42:106"},"variableNames":[{"name":"o","nodeType":"YulIdentifier","src":"17491:1:106"}]},{"body":{"nodeType":"YulBlock","src":"17581:9:106","statements":[{"nodeType":"YulBreak","src":"17583:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"17572:1:106"},{"name":"end","nodeType":"YulIdentifier","src":"17575:3:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"17569:2:106"},"nodeType":"YulFunctionCall","src":"17569:10:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"17562:6:106"},"nodeType":"YulFunctionCall","src":"17562:18:106"},"nodeType":"YulIf","src":"17559:31:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"17438:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"17440:28:106","statements":[{"nodeType":"YulAssignment","src":"17442:24:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"17456:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"17464:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17452:3:106"},"nodeType":"YulFunctionCall","src":"17452:14:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"17442:6:106"}]}]},"pre":{"nodeType":"YulBlock","src":"17422:15:106","statements":[{"nodeType":"YulAssignment","src":"17424:11:106","value":{"kind":"number","nodeType":"YulLiteral","src":"17434:1:106","type":"","value":"1"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"17424:6:106"}]}]},"src":"17418:190:106"}]},"condition":{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"17171:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17165:5:106"},"nodeType":"YulFunctionCall","src":"17165:8:106"},"nodeType":"YulIf","src":"17162:460:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64211,"isOffset":false,"isSlot":false,"src":"17424:6:106","valueSize":1},{"declaration":64211,"isOffset":false,"isSlot":false,"src":"17442:6:106","valueSize":1},{"declaration":64211,"isOffset":false,"isSlot":false,"src":"17456:6:106","valueSize":1},{"declaration":64208,"isOffset":false,"isSlot":false,"src":"17171:1:106","valueSize":1},{"declaration":64208,"isOffset":false,"isSlot":false,"src":"17349:1:106","valueSize":1},{"declaration":64208,"isOffset":false,"isSlot":false,"src":"17398:1:106","valueSize":1}],"id":64213,"nodeType":"InlineAssembly","src":"17139:493:106"}]},"documentation":{"id":64206,"nodeType":"StructuredDocumentation","src":"16946:60:106","text":"@dev Returns the number of UTF characters in the string."},"implemented":true,"kind":"function","modifiers":[],"name":"runeCount","nameLocation":"17020:9:106","parameters":{"id":64209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64208,"mutability":"mutable","name":"s","nameLocation":"17044:1:106","nodeType":"VariableDeclaration","scope":64215,"src":"17030:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64207,"name":"string","nodeType":"ElementaryTypeName","src":"17030:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17029:17:106"},"returnParameters":{"id":64212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64211,"mutability":"mutable","name":"result","nameLocation":"17078:6:106","nodeType":"VariableDeclaration","scope":64215,"src":"17070:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64210,"name":"uint256","nodeType":"ElementaryTypeName","src":"17070:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17069:16:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64225,"nodeType":"FunctionDefinition","src":"17757:739:106","nodes":[],"body":{"id":64224,"nodeType":"Block","src":"17831:665:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"17893:597:106","statements":[{"nodeType":"YulVariableDeclaration","src":"17907:36:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17923:1:106","type":"","value":"7"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17934:1:106","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"17930:3:106"},"nodeType":"YulFunctionCall","src":"17930:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"17938:3:106","type":"","value":"255"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"17926:3:106"},"nodeType":"YulFunctionCall","src":"17926:16:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17919:3:106"},"nodeType":"YulFunctionCall","src":"17919:24:106"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"17911:4:106","type":""}]},{"nodeType":"YulAssignment","src":"17956:11:106","value":{"kind":"number","nodeType":"YulLiteral","src":"17966:1:106","type":"","value":"1"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"17956:6:106"}]},{"nodeType":"YulVariableDeclaration","src":"17980:17:106","value":{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"17995:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17989:5:106"},"nodeType":"YulFunctionCall","src":"17989:8:106"},"variables":[{"name":"n","nodeType":"YulTypedName","src":"17984:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"18015:465:106","statements":[{"nodeType":"YulVariableDeclaration","src":"18033:21:106","value":{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"18046:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"18049:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18042:3:106"},"nodeType":"YulFunctionCall","src":"18042:12:106"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"18037:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18071:20:106","value":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"18086:1:106"},{"name":"n","nodeType":"YulIdentifier","src":"18089:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18082:3:106"},"nodeType":"YulFunctionCall","src":"18082:9:106"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"18075:3:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18108:22:106","value":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"18126:3:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18120:5:106"},"nodeType":"YulFunctionCall","src":"18120:10:106"},"variables":[{"name":"last","nodeType":"YulTypedName","src":"18112:4:106","type":""}]},{"expression":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"18154:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"18159:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18147:6:106"},"nodeType":"YulFunctionCall","src":"18147:14:106"},"nodeType":"YulExpressionStatement","src":"18147:14:106"},{"body":{"nodeType":"YulBlock","src":"18190:242:106","statements":[{"body":{"nodeType":"YulBlock","src":"18235:89:106","statements":[{"nodeType":"YulAssignment","src":"18261:11:106","value":{"kind":"number","nodeType":"YulLiteral","src":"18271:1:106","type":"","value":"0"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"18261:6:106"}]},{"nodeType":"YulBreak","src":"18297:5:106"}]},"condition":{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"18219:4:106"},{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"18231:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18225:5:106"},"nodeType":"YulFunctionCall","src":"18225:8:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18215:3:106"},"nodeType":"YulFunctionCall","src":"18215:19:106"},"nodeType":"YulIf","src":"18212:112:106"},{"nodeType":"YulAssignment","src":"18345:17:106","value":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"18354:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"18357:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18350:3:106"},"nodeType":"YulFunctionCall","src":"18350:12:106"},"variableNames":[{"name":"o","nodeType":"YulIdentifier","src":"18345:1:106"}]},{"body":{"nodeType":"YulBlock","src":"18405:9:106","statements":[{"nodeType":"YulBreak","src":"18407:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"18396:1:106"},{"name":"end","nodeType":"YulIdentifier","src":"18399:3:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18393:2:106"},"nodeType":"YulFunctionCall","src":"18393:10:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18386:6:106"},"nodeType":"YulFunctionCall","src":"18386:18:106"},"nodeType":"YulIf","src":"18383:31:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"18185:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"18187:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"18182:2:106","statements":[]},"src":"18178:254:106"},{"expression":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"18456:3:106"},{"name":"last","nodeType":"YulIdentifier","src":"18461:4:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18449:6:106"},"nodeType":"YulFunctionCall","src":"18449:17:106"},"nodeType":"YulExpressionStatement","src":"18449:17:106"}]},"condition":{"name":"n","nodeType":"YulIdentifier","src":"18013:1:106"},"nodeType":"YulIf","src":"18010:470:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64221,"isOffset":false,"isSlot":false,"src":"17956:6:106","valueSize":1},{"declaration":64221,"isOffset":false,"isSlot":false,"src":"18261:6:106","valueSize":1},{"declaration":64218,"isOffset":false,"isSlot":false,"src":"17995:1:106","valueSize":1},{"declaration":64218,"isOffset":false,"isSlot":false,"src":"18046:1:106","valueSize":1}],"id":64223,"nodeType":"InlineAssembly","src":"17884:606:106"}]},"documentation":{"id":64216,"nodeType":"StructuredDocumentation","src":"17644:108:106","text":"@dev Returns if this string is a 7-bit ASCII string.\n (i.e. all characters codes are in [0..127])"},"implemented":true,"kind":"function","modifiers":[],"name":"is7BitASCII","nameLocation":"17766:11:106","parameters":{"id":64219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64218,"mutability":"mutable","name":"s","nameLocation":"17792:1:106","nodeType":"VariableDeclaration","scope":64225,"src":"17778:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64217,"name":"string","nodeType":"ElementaryTypeName","src":"17778:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17777:17:106"},"returnParameters":{"id":64222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64221,"mutability":"mutable","name":"result","nameLocation":"17823:6:106","nodeType":"VariableDeclaration","scope":64225,"src":"17818:11:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":64220,"name":"bool","nodeType":"ElementaryTypeName","src":"17818:4:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17817:13:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64239,"nodeType":"FunctionDefinition","src":"19177:3338:106","nodes":[],"body":{"id":64238,"nodeType":"Block","src":"19339:3176:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"19401:3108:106","statements":[{"nodeType":"YulVariableDeclaration","src":"19415:35:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"19442:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19436:5:106"},"nodeType":"YulFunctionCall","src":"19436:14:106"},"variables":[{"name":"subjectLength","nodeType":"YulTypedName","src":"19419:13:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19463:33:106","value":{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"19489:6:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19483:5:106"},"nodeType":"YulFunctionCall","src":"19483:13:106"},"variables":[{"name":"searchLength","nodeType":"YulTypedName","src":"19467:12:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19509:43:106","value":{"arguments":[{"name":"replacement","nodeType":"YulIdentifier","src":"19540:11:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19534:5:106"},"nodeType":"YulFunctionCall","src":"19534:18:106"},"variables":[{"name":"replacementLength","nodeType":"YulTypedName","src":"19513:17:106","type":""}]},{"nodeType":"YulAssignment","src":"19566:29:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"19581:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"19590:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19577:3:106"},"nodeType":"YulFunctionCall","src":"19577:18:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"19566:7:106"}]},{"nodeType":"YulAssignment","src":"19608:27:106","value":{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"19622:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"19630:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19618:3:106"},"nodeType":"YulFunctionCall","src":"19618:17:106"},"variableNames":[{"name":"search","nodeType":"YulIdentifier","src":"19608:6:106"}]},{"nodeType":"YulAssignment","src":"19648:37:106","value":{"arguments":[{"name":"replacement","nodeType":"YulIdentifier","src":"19667:11:106"},{"kind":"number","nodeType":"YulLiteral","src":"19680:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19663:3:106"},"nodeType":"YulFunctionCall","src":"19663:22:106"},"variableNames":[{"name":"replacement","nodeType":"YulIdentifier","src":"19648:11:106"}]},{"nodeType":"YulAssignment","src":"19698:32:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19718:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19712:5:106"},"nodeType":"YulFunctionCall","src":"19712:11:106"},{"kind":"number","nodeType":"YulLiteral","src":"19725:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19708:3:106"},"nodeType":"YulFunctionCall","src":"19708:22:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"19698:6:106"}]},{"nodeType":"YulVariableDeclaration","src":"19744:45:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"19766:7:106"},{"name":"subjectLength","nodeType":"YulIdentifier","src":"19775:13:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19762:3:106"},"nodeType":"YulFunctionCall","src":"19762:27:106"},"variables":[{"name":"subjectEnd","nodeType":"YulTypedName","src":"19748:10:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"19845:1923:106","statements":[{"nodeType":"YulVariableDeclaration","src":"19863:61:106","value":{"arguments":[{"arguments":[{"name":"subjectEnd","nodeType":"YulIdentifier","src":"19895:10:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"19907:12:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19891:3:106"},"nodeType":"YulFunctionCall","src":"19891:29:106"},{"kind":"number","nodeType":"YulLiteral","src":"19922:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19887:3:106"},"nodeType":"YulFunctionCall","src":"19887:37:106"},"variables":[{"name":"subjectSearchEnd","nodeType":"YulTypedName","src":"19867:16:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19941:10:106","value":{"kind":"number","nodeType":"YulLiteral","src":"19950:1:106","type":"","value":"0"},"variables":[{"name":"h","nodeType":"YulTypedName","src":"19945:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"20002:40:106","statements":[{"nodeType":"YulAssignment","src":"20004:36:106","value":{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"20019:6:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"20027:12:106"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"20009:9:106"},"nodeType":"YulFunctionCall","src":"20009:31:106"},"variableNames":[{"name":"h","nodeType":"YulIdentifier","src":"20004:1:106"}]}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nodeType":"YulIdentifier","src":"19981:12:106"},{"kind":"number","nodeType":"YulLiteral","src":"19995:4:106","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19978:2:106"},"nodeType":"YulFunctionCall","src":"19978:22:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19971:6:106"},"nodeType":"YulFunctionCall","src":"19971:30:106"},"nodeType":"YulIf","src":"19968:74:106"},{"nodeType":"YulVariableDeclaration","src":"20059:51:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20072:1:106","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20079:4:106","type":"","value":"0x20"},{"arguments":[{"name":"searchLength","nodeType":"YulIdentifier","src":"20089:12:106"},{"kind":"number","nodeType":"YulLiteral","src":"20103:4:106","type":"","value":"0x1f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20085:3:106"},"nodeType":"YulFunctionCall","src":"20085:23:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20075:3:106"},"nodeType":"YulFunctionCall","src":"20075:34:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20068:3:106"},"nodeType":"YulFunctionCall","src":"20068:42:106"},"variables":[{"name":"m","nodeType":"YulTypedName","src":"20063:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20127:22:106","value":{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"20142:6:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20136:5:106"},"nodeType":"YulFunctionCall","src":"20136:13:106"},"variables":[{"name":"s","nodeType":"YulTypedName","src":"20131:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"20178:1576:106","statements":[{"nodeType":"YulVariableDeclaration","src":"20200:23:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"20215:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20209:5:106"},"nodeType":"YulFunctionCall","src":"20209:14:106"},"variables":[{"name":"t","nodeType":"YulTypedName","src":"20204:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"20398:1137:106","statements":[{"body":{"nodeType":"YulBlock","src":"20429:428:106","statements":[{"body":{"nodeType":"YulBlock","src":"20510:321:106","statements":[{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"20551:6:106"},{"name":"t","nodeType":"YulIdentifier","src":"20559:1:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20544:6:106"},"nodeType":"YulFunctionCall","src":"20544:17:106"},"nodeType":"YulExpressionStatement","src":"20544:17:106"},{"nodeType":"YulAssignment","src":"20594:24:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"20608:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"20616:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20604:3:106"},"nodeType":"YulFunctionCall","src":"20604:14:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"20594:6:106"}]},{"nodeType":"YulAssignment","src":"20651:26:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"20666:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"20675:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20662:3:106"},"nodeType":"YulFunctionCall","src":"20662:15:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"20651:7:106"}]},{"body":{"nodeType":"YulBlock","src":"20751:9:106","statements":[{"nodeType":"YulBreak","src":"20753:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"20723:7:106"},{"name":"subjectSearchEnd","nodeType":"YulIdentifier","src":"20732:16:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20720:2:106"},"nodeType":"YulFunctionCall","src":"20720:29:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20713:6:106"},"nodeType":"YulFunctionCall","src":"20713:37:106"},"nodeType":"YulIf","src":"20710:50:106"},{"nodeType":"YulContinue","src":"20793:8:106"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"20482:7:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"20491:12:106"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"20472:9:106"},"nodeType":"YulFunctionCall","src":"20472:32:106"},{"name":"h","nodeType":"YulIdentifier","src":"20506:1:106"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"20469:2:106"},"nodeType":"YulFunctionCall","src":"20469:39:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20462:6:106"},"nodeType":"YulFunctionCall","src":"20462:47:106"},"nodeType":"YulIf","src":"20459:372:106"}]},"condition":{"name":"h","nodeType":"YulIdentifier","src":"20427:1:106"},"nodeType":"YulIf","src":"20424:433:106"},{"body":{"nodeType":"YulBlock","src":"20976:226:106","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"21017:6:106"},{"name":"o","nodeType":"YulIdentifier","src":"21025:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21013:3:106"},"nodeType":"YulFunctionCall","src":"21013:14:106"},{"arguments":[{"arguments":[{"name":"replacement","nodeType":"YulIdentifier","src":"21039:11:106"},{"name":"o","nodeType":"YulIdentifier","src":"21052:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21035:3:106"},"nodeType":"YulFunctionCall","src":"21035:19:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21029:5:106"},"nodeType":"YulFunctionCall","src":"21029:26:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21006:6:106"},"nodeType":"YulFunctionCall","src":"21006:50:106"},"nodeType":"YulExpressionStatement","src":"21006:50:106"},{"nodeType":"YulAssignment","src":"21085:17:106","value":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"21094:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"21097:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21090:3:106"},"nodeType":"YulFunctionCall","src":"21090:12:106"},"variableNames":[{"name":"o","nodeType":"YulIdentifier","src":"21085:1:106"}]},{"body":{"nodeType":"YulBlock","src":"21167:9:106","statements":[{"nodeType":"YulBreak","src":"21169:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"21144:1:106"},{"name":"replacementLength","nodeType":"YulIdentifier","src":"21147:17:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21141:2:106"},"nodeType":"YulFunctionCall","src":"21141:24:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21134:6:106"},"nodeType":"YulFunctionCall","src":"21134:32:106"},"nodeType":"YulIf","src":"21131:45:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"20971:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"20973:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"20956:14:106","statements":[{"nodeType":"YulVariableDeclaration","src":"20958:10:106","value":{"kind":"number","nodeType":"YulLiteral","src":"20967:1:106","type":"","value":"0"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"20962:1:106","type":""}]}]},"src":"20952:250:106"},{"nodeType":"YulAssignment","src":"21227:40:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"21241:6:106"},{"name":"replacementLength","nodeType":"YulIdentifier","src":"21249:17:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21237:3:106"},"nodeType":"YulFunctionCall","src":"21237:30:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"21227:6:106"}]},{"nodeType":"YulAssignment","src":"21292:37:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"21307:7:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"21316:12:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21303:3:106"},"nodeType":"YulFunctionCall","src":"21303:26:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"21292:7:106"}]},{"body":{"nodeType":"YulBlock","src":"21370:143:106","statements":[{"body":{"nodeType":"YulBlock","src":"21441:9:106","statements":[{"nodeType":"YulBreak","src":"21443:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"21413:7:106"},{"name":"subjectSearchEnd","nodeType":"YulIdentifier","src":"21422:16:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21410:2:106"},"nodeType":"YulFunctionCall","src":"21410:29:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21403:6:106"},"nodeType":"YulFunctionCall","src":"21403:37:106"},"nodeType":"YulIf","src":"21400:50:106"},{"nodeType":"YulContinue","src":"21479:8:106"}]},"condition":{"name":"searchLength","nodeType":"YulIdentifier","src":"21357:12:106"},"nodeType":"YulIf","src":"21354:159:106"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nodeType":"YulIdentifier","src":"20383:1:106"},{"arguments":[{"name":"t","nodeType":"YulIdentifier","src":"20390:1:106"},{"name":"s","nodeType":"YulIdentifier","src":"20393:1:106"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"20386:3:106"},"nodeType":"YulFunctionCall","src":"20386:9:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"20379:3:106"},"nodeType":"YulFunctionCall","src":"20379:17:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20372:6:106"},"nodeType":"YulFunctionCall","src":"20372:25:106"},"nodeType":"YulIf","src":"20369:1166:106"},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"21563:6:106"},{"name":"t","nodeType":"YulIdentifier","src":"21571:1:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21556:6:106"},"nodeType":"YulFunctionCall","src":"21556:17:106"},"nodeType":"YulExpressionStatement","src":"21556:17:106"},{"nodeType":"YulAssignment","src":"21594:24:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"21608:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"21616:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21604:3:106"},"nodeType":"YulFunctionCall","src":"21604:14:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"21594:6:106"}]},{"nodeType":"YulAssignment","src":"21639:26:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"21654:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"21663:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21650:3:106"},"nodeType":"YulFunctionCall","src":"21650:15:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"21639:7:106"}]},{"body":{"nodeType":"YulBlock","src":"21727:9:106","statements":[{"nodeType":"YulBreak","src":"21729:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"21699:7:106"},{"name":"subjectSearchEnd","nodeType":"YulIdentifier","src":"21708:16:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21696:2:106"},"nodeType":"YulFunctionCall","src":"21696:29:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21689:6:106"},"nodeType":"YulFunctionCall","src":"21689:37:106"},"nodeType":"YulIf","src":"21686:50:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"20173:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"20175:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"20170:2:106","statements":[]},"src":"20166:1588:106"}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nodeType":"YulIdentifier","src":"19815:12:106"},{"name":"subjectLength","nodeType":"YulIdentifier","src":"19829:13:106"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19812:2:106"},"nodeType":"YulFunctionCall","src":"19812:31:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19805:6:106"},"nodeType":"YulFunctionCall","src":"19805:39:106"},"nodeType":"YulIf","src":"19802:1966:106"},{"nodeType":"YulVariableDeclaration","src":"21782:29:106","value":{"name":"result","nodeType":"YulIdentifier","src":"21805:6:106"},"variables":[{"name":"resultRemainder","nodeType":"YulTypedName","src":"21786:15:106","type":""}]},{"nodeType":"YulAssignment","src":"21824:32:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21844:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21838:5:106"},"nodeType":"YulFunctionCall","src":"21838:11:106"},{"kind":"number","nodeType":"YulLiteral","src":"21851:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21834:3:106"},"nodeType":"YulFunctionCall","src":"21834:22:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"21824:6:106"}]},{"nodeType":"YulVariableDeclaration","src":"21869:68:106","value":{"arguments":[{"arguments":[{"name":"resultRemainder","nodeType":"YulIdentifier","src":"21886:15:106"},{"name":"result","nodeType":"YulIdentifier","src":"21903:6:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21882:3:106"},"nodeType":"YulFunctionCall","src":"21882:28:106"},{"arguments":[{"name":"subjectEnd","nodeType":"YulIdentifier","src":"21916:10:106"},{"name":"subject","nodeType":"YulIdentifier","src":"21928:7:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21912:3:106"},"nodeType":"YulFunctionCall","src":"21912:24:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21878:3:106"},"nodeType":"YulFunctionCall","src":"21878:59:106"},"variables":[{"name":"k","nodeType":"YulTypedName","src":"21873:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"22047:179:106","statements":[{"expression":{"arguments":[{"name":"resultRemainder","nodeType":"YulIdentifier","src":"22072:15:106"},{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"22095:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22089:5:106"},"nodeType":"YulFunctionCall","src":"22089:14:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22065:6:106"},"nodeType":"YulFunctionCall","src":"22065:39:106"},"nodeType":"YulExpressionStatement","src":"22065:39:106"},{"nodeType":"YulAssignment","src":"22121:45:106","value":{"arguments":[{"name":"resultRemainder","nodeType":"YulIdentifier","src":"22144:15:106"},{"kind":"number","nodeType":"YulLiteral","src":"22161:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22140:3:106"},"nodeType":"YulFunctionCall","src":"22140:26:106"},"variableNames":[{"name":"resultRemainder","nodeType":"YulIdentifier","src":"22121:15:106"}]},{"nodeType":"YulAssignment","src":"22183:29:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"22198:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"22207:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22194:3:106"},"nodeType":"YulFunctionCall","src":"22194:18:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"22183:7:106"}]}]},"condition":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"22023:7:106"},{"name":"subjectEnd","nodeType":"YulIdentifier","src":"22032:10:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"22020:2:106"},"nodeType":"YulFunctionCall","src":"22020:23:106"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"22044:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"22017:2:106","statements":[]},"src":"22013:213:106"},{"nodeType":"YulAssignment","src":"22239:27:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"22253:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"22261:4:106","type":"","value":"0x20"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22249:3:106"},"nodeType":"YulFunctionCall","src":"22249:17:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"22239:6:106"}]},{"nodeType":"YulVariableDeclaration","src":"22279:37:106","value":{"arguments":[{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"22299:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"22307:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22295:3:106"},"nodeType":"YulFunctionCall","src":"22295:17:106"},{"name":"k","nodeType":"YulIdentifier","src":"22314:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22291:3:106"},"nodeType":"YulFunctionCall","src":"22291:25:106"},"variables":[{"name":"last","nodeType":"YulTypedName","src":"22283:4:106","type":""}]},{"expression":{"arguments":[{"name":"last","nodeType":"YulIdentifier","src":"22374:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"22380:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22367:6:106"},"nodeType":"YulFunctionCall","src":"22367:15:106"},"nodeType":"YulExpressionStatement","src":"22367:15:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22402:4:106","type":"","value":"0x40"},{"arguments":[{"name":"last","nodeType":"YulIdentifier","src":"22412:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"22418:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22408:3:106"},"nodeType":"YulFunctionCall","src":"22408:15:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22395:6:106"},"nodeType":"YulFunctionCall","src":"22395:29:106"},"nodeType":"YulExpressionStatement","src":"22395:29:106"},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"22468:6:106"},{"name":"k","nodeType":"YulIdentifier","src":"22476:1:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22461:6:106"},"nodeType":"YulFunctionCall","src":"22461:17:106"},"nodeType":"YulExpressionStatement","src":"22461:17:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64232,"isOffset":false,"isSlot":false,"src":"19540:11:106","valueSize":1},{"declaration":64232,"isOffset":false,"isSlot":false,"src":"19648:11:106","valueSize":1},{"declaration":64232,"isOffset":false,"isSlot":false,"src":"19667:11:106","valueSize":1},{"declaration":64232,"isOffset":false,"isSlot":false,"src":"21039:11:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"19698:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"20551:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"20594:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"20608:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"21017:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"21227:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"21241:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"21563:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"21594:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"21608:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"21805:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"21824:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"21903:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"22239:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"22253:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"22299:6:106","valueSize":1},{"declaration":64235,"isOffset":false,"isSlot":false,"src":"22468:6:106","valueSize":1},{"declaration":64230,"isOffset":false,"isSlot":false,"src":"19489:6:106","valueSize":1},{"declaration":64230,"isOffset":false,"isSlot":false,"src":"19608:6:106","valueSize":1},{"declaration":64230,"isOffset":false,"isSlot":false,"src":"19622:6:106","valueSize":1},{"declaration":64230,"isOffset":false,"isSlot":false,"src":"20019:6:106","valueSize":1},{"declaration":64230,"isOffset":false,"isSlot":false,"src":"20142:6:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"19442:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"19566:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"19581:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"19766:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"20215:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"20482:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"20651:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"20666:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"20723:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"21292:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"21307:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"21413:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"21639:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"21654:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"21699:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"21928:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"22023:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"22095:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"22183:7:106","valueSize":1},{"declaration":64228,"isOffset":false,"isSlot":false,"src":"22198:7:106","valueSize":1}],"id":64237,"nodeType":"InlineAssembly","src":"19392:3117:106"}]},"documentation":{"id":64226,"nodeType":"StructuredDocumentation","src":"19089:83:106","text":"@dev Returns `subject` all occurrences of `search` replaced with `replacement`."},"implemented":true,"kind":"function","modifiers":[],"name":"replace","nameLocation":"19186:7:106","parameters":{"id":64233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64228,"mutability":"mutable","name":"subject","nameLocation":"19208:7:106","nodeType":"VariableDeclaration","scope":64239,"src":"19194:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64227,"name":"string","nodeType":"ElementaryTypeName","src":"19194:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64230,"mutability":"mutable","name":"search","nameLocation":"19231:6:106","nodeType":"VariableDeclaration","scope":64239,"src":"19217:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64229,"name":"string","nodeType":"ElementaryTypeName","src":"19217:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64232,"mutability":"mutable","name":"replacement","nameLocation":"19253:11:106","nodeType":"VariableDeclaration","scope":64239,"src":"19239:25:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64231,"name":"string","nodeType":"ElementaryTypeName","src":"19239:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19193:72:106"},"returnParameters":{"id":64236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64235,"mutability":"mutable","name":"result","nameLocation":"19327:6:106","nodeType":"VariableDeclaration","scope":64239,"src":"19313:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64234,"name":"string","nodeType":"ElementaryTypeName","src":"19313:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19312:22:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64253,"nodeType":"FunctionDefinition","src":"22750:2065:106","nodes":[],"body":{"id":64252,"nodeType":"Block","src":"22893:1922:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"22955:1854:106","statements":[{"body":{"nodeType":"YulBlock","src":"23018:1781:106","statements":[{"body":{"nodeType":"YulBlock","src":"23061:237:106","statements":[{"body":{"nodeType":"YulBlock","src":"23118:92:106","statements":[{"nodeType":"YulAssignment","src":"23144:14:106","value":{"name":"from","nodeType":"YulIdentifier","src":"23154:4:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"23144:6:106"}]},{"nodeType":"YulBreak","src":"23183:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"from","nodeType":"YulIdentifier","src":"23096:4:106"},{"name":"subjectLength","nodeType":"YulIdentifier","src":"23102:13:106"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23093:2:106"},"nodeType":"YulFunctionCall","src":"23093:23:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23086:6:106"},"nodeType":"YulFunctionCall","src":"23086:31:106"},"nodeType":"YulIf","src":"23083:127:106"},{"nodeType":"YulAssignment","src":"23231:23:106","value":{"name":"subjectLength","nodeType":"YulIdentifier","src":"23241:13:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"23231:6:106"}]},{"nodeType":"YulBreak","src":"23275:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"23052:6:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23046:5:106"},"nodeType":"YulFunctionCall","src":"23046:13:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23039:6:106"},"nodeType":"YulFunctionCall","src":"23039:21:106"},"nodeType":"YulIf","src":"23036:262:106"},{"nodeType":"YulVariableDeclaration","src":"23315:33:106","value":{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"23341:6:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23335:5:106"},"nodeType":"YulFunctionCall","src":"23335:13:106"},"variables":[{"name":"searchLength","nodeType":"YulTypedName","src":"23319:12:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"23365:38:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"23389:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"23398:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23385:3:106"},"nodeType":"YulFunctionCall","src":"23385:18:106"},"variables":[{"name":"subjectStart","nodeType":"YulTypedName","src":"23369:12:106","type":""}]},{"nodeType":"YulAssignment","src":"23421:16:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23435:1:106","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"23431:3:106"},"nodeType":"YulFunctionCall","src":"23431:6:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"23421:6:106"}]},{"nodeType":"YulAssignment","src":"23485:34:106","value":{"arguments":[{"name":"subjectStart","nodeType":"YulIdentifier","src":"23500:12:106"},{"name":"from","nodeType":"YulIdentifier","src":"23514:4:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23496:3:106"},"nodeType":"YulFunctionCall","src":"23496:23:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"23485:7:106"}]},{"nodeType":"YulVariableDeclaration","src":"23536:70:106","value":{"arguments":[{"arguments":[{"arguments":[{"name":"subjectStart","nodeType":"YulIdentifier","src":"23559:12:106"},{"name":"subjectLength","nodeType":"YulIdentifier","src":"23573:13:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23555:3:106"},"nodeType":"YulFunctionCall","src":"23555:32:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"23589:12:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23551:3:106"},"nodeType":"YulFunctionCall","src":"23551:51:106"},{"kind":"number","nodeType":"YulLiteral","src":"23604:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23547:3:106"},"nodeType":"YulFunctionCall","src":"23547:59:106"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"23540:3:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"23624:51:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23637:1:106","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23644:4:106","type":"","value":"0x20"},{"arguments":[{"name":"searchLength","nodeType":"YulIdentifier","src":"23654:12:106"},{"kind":"number","nodeType":"YulLiteral","src":"23668:4:106","type":"","value":"0x1f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23650:3:106"},"nodeType":"YulFunctionCall","src":"23650:23:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23640:3:106"},"nodeType":"YulFunctionCall","src":"23640:34:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23633:3:106"},"nodeType":"YulFunctionCall","src":"23633:42:106"},"variables":[{"name":"m","nodeType":"YulTypedName","src":"23628:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"23692:33:106","value":{"arguments":[{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"23711:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"23719:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23707:3:106"},"nodeType":"YulFunctionCall","src":"23707:17:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23701:5:106"},"nodeType":"YulFunctionCall","src":"23701:24:106"},"variables":[{"name":"s","nodeType":"YulTypedName","src":"23696:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"23801:9:106","statements":[{"nodeType":"YulBreak","src":"23803:5:106"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"23760:7:106"},{"name":"end","nodeType":"YulIdentifier","src":"23769:3:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"23757:2:106"},"nodeType":"YulFunctionCall","src":"23757:16:106"},{"arguments":[{"name":"from","nodeType":"YulIdentifier","src":"23778:4:106"},{"name":"subjectLength","nodeType":"YulIdentifier","src":"23784:13:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"23775:2:106"},"nodeType":"YulFunctionCall","src":"23775:23:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23753:3:106"},"nodeType":"YulFunctionCall","src":"23753:46:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23746:6:106"},"nodeType":"YulFunctionCall","src":"23746:54:106"},"nodeType":"YulIf","src":"23743:67:106"},{"body":{"nodeType":"YulBlock","src":"23862:571:106","statements":[{"body":{"nodeType":"YulBlock","src":"23949:440:106","statements":[{"body":{"nodeType":"YulBlock","src":"24017:237:106","statements":[{"body":{"nodeType":"YulBlock","src":"24090:138:106","statements":[{"nodeType":"YulAssignment","src":"24124:36:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"24138:7:106"},{"name":"subjectStart","nodeType":"YulIdentifier","src":"24147:12:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24134:3:106"},"nodeType":"YulFunctionCall","src":"24134:26:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"24124:6:106"}]},{"nodeType":"YulBreak","src":"24193:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"24063:7:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"24072:12:106"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"24053:9:106"},"nodeType":"YulFunctionCall","src":"24053:32:106"},{"name":"h","nodeType":"YulIdentifier","src":"24087:1:106"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"24050:2:106"},"nodeType":"YulFunctionCall","src":"24050:39:106"},"nodeType":"YulIf","src":"24047:181:106"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nodeType":"YulIdentifier","src":"23989:1:106"},{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"24002:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23996:5:106"},"nodeType":"YulFunctionCall","src":"23996:14:106"},{"name":"s","nodeType":"YulIdentifier","src":"24012:1:106"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"23992:3:106"},"nodeType":"YulFunctionCall","src":"23992:22:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"23985:3:106"},"nodeType":"YulFunctionCall","src":"23985:30:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23978:6:106"},"nodeType":"YulFunctionCall","src":"23978:38:106"},"nodeType":"YulIf","src":"23975:279:106"},{"nodeType":"YulAssignment","src":"24279:26:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"24294:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"24303:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24290:3:106"},"nodeType":"YulFunctionCall","src":"24290:15:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"24279:7:106"}]},{"body":{"nodeType":"YulBlock","src":"24358:9:106","statements":[{"nodeType":"YulBreak","src":"24360:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"24343:7:106"},{"name":"end","nodeType":"YulIdentifier","src":"24352:3:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"24340:2:106"},"nodeType":"YulFunctionCall","src":"24340:16:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24333:6:106"},"nodeType":"YulFunctionCall","src":"24333:24:106"},"nodeType":"YulIf","src":"24330:37:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"23944:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"23946:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"23888:55:106","statements":[{"nodeType":"YulVariableDeclaration","src":"23890:51:106","value":{"arguments":[{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"23913:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"23921:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23909:3:106"},"nodeType":"YulFunctionCall","src":"23909:17:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"23928:12:106"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"23899:9:106"},"nodeType":"YulFunctionCall","src":"23899:42:106"},"variables":[{"name":"h","nodeType":"YulTypedName","src":"23894:1:106","type":""}]}]},"src":"23884:505:106"},{"nodeType":"YulBreak","src":"24410:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nodeType":"YulIdentifier","src":"23841:12:106"},{"kind":"number","nodeType":"YulLiteral","src":"23855:4:106","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"23838:2:106"},"nodeType":"YulFunctionCall","src":"23838:22:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23831:6:106"},"nodeType":"YulFunctionCall","src":"23831:30:106"},"nodeType":"YulIf","src":"23828:605:106"},{"body":{"nodeType":"YulBlock","src":"24462:301:106","statements":[{"body":{"nodeType":"YulBlock","src":"24526:114:106","statements":[{"nodeType":"YulAssignment","src":"24552:36:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"24566:7:106"},{"name":"subjectStart","nodeType":"YulIdentifier","src":"24575:12:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24562:3:106"},"nodeType":"YulFunctionCall","src":"24562:26:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"24552:6:106"}]},{"nodeType":"YulBreak","src":"24613:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nodeType":"YulIdentifier","src":"24498:1:106"},{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"24511:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24505:5:106"},"nodeType":"YulFunctionCall","src":"24505:14:106"},{"name":"s","nodeType":"YulIdentifier","src":"24521:1:106"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"24501:3:106"},"nodeType":"YulFunctionCall","src":"24501:22:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"24494:3:106"},"nodeType":"YulFunctionCall","src":"24494:30:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24487:6:106"},"nodeType":"YulFunctionCall","src":"24487:38:106"},"nodeType":"YulIf","src":"24484:156:106"},{"nodeType":"YulAssignment","src":"24661:26:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"24676:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"24685:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24672:3:106"},"nodeType":"YulFunctionCall","src":"24672:15:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"24661:7:106"}]},{"body":{"nodeType":"YulBlock","src":"24736:9:106","statements":[{"nodeType":"YulBreak","src":"24738:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"24721:7:106"},{"name":"end","nodeType":"YulIdentifier","src":"24730:3:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"24718:2:106"},"nodeType":"YulFunctionCall","src":"24718:16:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24711:6:106"},"nodeType":"YulFunctionCall","src":"24711:24:106"},"nodeType":"YulIf","src":"24708:37:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"24457:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"24459:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"24454:2:106","statements":[]},"src":"24450:313:106"},{"nodeType":"YulBreak","src":"24780:5:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"23013:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"23015:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"22973:39:106","statements":[{"nodeType":"YulVariableDeclaration","src":"22975:35:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"23002:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22996:5:106"},"nodeType":"YulFunctionCall","src":"22996:14:106"},"variables":[{"name":"subjectLength","nodeType":"YulTypedName","src":"22979:13:106","type":""}]}]},"src":"22969:1830:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64246,"isOffset":false,"isSlot":false,"src":"23096:4:106","valueSize":1},{"declaration":64246,"isOffset":false,"isSlot":false,"src":"23154:4:106","valueSize":1},{"declaration":64246,"isOffset":false,"isSlot":false,"src":"23514:4:106","valueSize":1},{"declaration":64246,"isOffset":false,"isSlot":false,"src":"23778:4:106","valueSize":1},{"declaration":64249,"isOffset":false,"isSlot":false,"src":"23144:6:106","valueSize":1},{"declaration":64249,"isOffset":false,"isSlot":false,"src":"23231:6:106","valueSize":1},{"declaration":64249,"isOffset":false,"isSlot":false,"src":"23421:6:106","valueSize":1},{"declaration":64249,"isOffset":false,"isSlot":false,"src":"24124:6:106","valueSize":1},{"declaration":64249,"isOffset":false,"isSlot":false,"src":"24552:6:106","valueSize":1},{"declaration":64244,"isOffset":false,"isSlot":false,"src":"23052:6:106","valueSize":1},{"declaration":64244,"isOffset":false,"isSlot":false,"src":"23341:6:106","valueSize":1},{"declaration":64244,"isOffset":false,"isSlot":false,"src":"23711:6:106","valueSize":1},{"declaration":64244,"isOffset":false,"isSlot":false,"src":"23913:6:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"23002:7:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"23389:7:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"23485:7:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"23760:7:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"24002:7:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"24063:7:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"24138:7:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"24279:7:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"24294:7:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"24343:7:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"24511:7:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"24566:7:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"24661:7:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"24676:7:106","valueSize":1},{"declaration":64242,"isOffset":false,"isSlot":false,"src":"24721:7:106","valueSize":1}],"id":64251,"nodeType":"InlineAssembly","src":"22946:1863:106"}]},"documentation":{"id":64240,"nodeType":"StructuredDocumentation","src":"22521:224:106","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from left to right, starting from `from`.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"implemented":true,"kind":"function","modifiers":[],"name":"indexOf","nameLocation":"22759:7:106","parameters":{"id":64247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64242,"mutability":"mutable","name":"subject","nameLocation":"22781:7:106","nodeType":"VariableDeclaration","scope":64253,"src":"22767:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64241,"name":"string","nodeType":"ElementaryTypeName","src":"22767:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64244,"mutability":"mutable","name":"search","nameLocation":"22804:6:106","nodeType":"VariableDeclaration","scope":64253,"src":"22790:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64243,"name":"string","nodeType":"ElementaryTypeName","src":"22790:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64246,"mutability":"mutable","name":"from","nameLocation":"22820:4:106","nodeType":"VariableDeclaration","scope":64253,"src":"22812:12:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64245,"name":"uint256","nodeType":"ElementaryTypeName","src":"22812:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22766:59:106"},"returnParameters":{"id":64250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64249,"mutability":"mutable","name":"result","nameLocation":"22881:6:106","nodeType":"VariableDeclaration","scope":64253,"src":"22873:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64248,"name":"uint256","nodeType":"ElementaryTypeName","src":"22873:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22872:16:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64272,"nodeType":"FunctionDefinition","src":"25028:182:106","nodes":[],"body":{"id":64271,"nodeType":"Block","src":"25157:53:106","nodes":[],"statements":[{"expression":{"id":64269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64263,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64261,"src":"25167:6:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64265,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64256,"src":"25184:7:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":64266,"name":"search","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64258,"src":"25193:6:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"30","id":64267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25201:1:106","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":64264,"name":"indexOf","nodeType":"Identifier","overloadedDeclarations":[64253,64272],"referencedDeclaration":64253,"src":"25176:7:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (string memory,string memory,uint256) pure returns (uint256)"}},"id":64268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25176:27:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25167:36:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":64270,"nodeType":"ExpressionStatement","src":"25167:36:106"}]},"documentation":{"id":64254,"nodeType":"StructuredDocumentation","src":"24821:202:106","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from left to right.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"implemented":true,"kind":"function","modifiers":[],"name":"indexOf","nameLocation":"25037:7:106","parameters":{"id":64259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64256,"mutability":"mutable","name":"subject","nameLocation":"25059:7:106","nodeType":"VariableDeclaration","scope":64272,"src":"25045:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64255,"name":"string","nodeType":"ElementaryTypeName","src":"25045:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64258,"mutability":"mutable","name":"search","nameLocation":"25082:6:106","nodeType":"VariableDeclaration","scope":64272,"src":"25068:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64257,"name":"string","nodeType":"ElementaryTypeName","src":"25068:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25044:45:106"},"returnParameters":{"id":64262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64261,"mutability":"mutable","name":"result","nameLocation":"25145:6:106","nodeType":"VariableDeclaration","scope":64272,"src":"25137:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64260,"name":"uint256","nodeType":"ElementaryTypeName","src":"25137:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25136:16:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64286,"nodeType":"FunctionDefinition","src":"25445:1332:106","nodes":[],"body":{"id":64285,"nodeType":"Block","src":"25592:1185:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"25654:1117:106","statements":[{"body":{"nodeType":"YulBlock","src":"25680:1081:106","statements":[{"nodeType":"YulAssignment","src":"25698:16:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25712:1:106","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25708:3:106"},"nodeType":"YulFunctionCall","src":"25708:6:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"25698:6:106"}]},{"nodeType":"YulVariableDeclaration","src":"25761:33:106","value":{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"25787:6:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25781:5:106"},"nodeType":"YulFunctionCall","src":"25781:13:106"},"variables":[{"name":"searchLength","nodeType":"YulTypedName","src":"25765:12:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"25847:9:106","statements":[{"nodeType":"YulBreak","src":"25849:5:106"}]},"condition":{"arguments":[{"name":"searchLength","nodeType":"YulIdentifier","src":"25817:12:106"},{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"25837:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25831:5:106"},"nodeType":"YulFunctionCall","src":"25831:14:106"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25814:2:106"},"nodeType":"YulFunctionCall","src":"25814:32:106"},"nodeType":"YulIf","src":"25811:45:106"},{"nodeType":"YulVariableDeclaration","src":"25873:15:106","value":{"name":"result","nodeType":"YulIdentifier","src":"25882:6:106"},"variables":[{"name":"w","nodeType":"YulTypedName","src":"25877:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"25906:48:106","value":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"25931:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25925:5:106"},"nodeType":"YulFunctionCall","src":"25925:14:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"25941:12:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25921:3:106"},"nodeType":"YulFunctionCall","src":"25921:33:106"},"variables":[{"name":"fromMax","nodeType":"YulTypedName","src":"25910:7:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"26000:19:106","statements":[{"nodeType":"YulAssignment","src":"26002:15:106","value":{"name":"fromMax","nodeType":"YulIdentifier","src":"26010:7:106"},"variableNames":[{"name":"from","nodeType":"YulIdentifier","src":"26002:4:106"}]}]},"condition":{"arguments":[{"arguments":[{"name":"fromMax","nodeType":"YulIdentifier","src":"25984:7:106"},{"name":"from","nodeType":"YulIdentifier","src":"25993:4:106"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25981:2:106"},"nodeType":"YulFunctionCall","src":"25981:17:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25974:6:106"},"nodeType":"YulFunctionCall","src":"25974:25:106"},"nodeType":"YulIf","src":"25971:48:106"},{"nodeType":"YulVariableDeclaration","src":"26037:37:106","value":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"26056:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"26065:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26052:3:106"},"nodeType":"YulFunctionCall","src":"26052:18:106"},{"name":"w","nodeType":"YulIdentifier","src":"26072:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26048:3:106"},"nodeType":"YulFunctionCall","src":"26048:26:106"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"26041:3:106","type":""}]},{"nodeType":"YulAssignment","src":"26091:40:106","value":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"26110:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"26119:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26106:3:106"},"nodeType":"YulFunctionCall","src":"26106:18:106"},{"name":"from","nodeType":"YulIdentifier","src":"26126:4:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26102:3:106"},"nodeType":"YulFunctionCall","src":"26102:29:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"26091:7:106"}]},{"body":{"nodeType":"YulBlock","src":"26176:9:106","statements":[{"nodeType":"YulBreak","src":"26178:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"26161:7:106"},{"name":"end","nodeType":"YulIdentifier","src":"26170:3:106"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"26158:2:106"},"nodeType":"YulFunctionCall","src":"26158:16:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"26151:6:106"},"nodeType":"YulFunctionCall","src":"26151:24:106"},"nodeType":"YulIf","src":"26148:37:106"},{"body":{"nodeType":"YulBlock","src":"26402:323:106","statements":[{"body":{"nodeType":"YulBlock","src":"26467:113:106","statements":[{"nodeType":"YulAssignment","src":"26493:35:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"26507:7:106"},{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"26520:3:106"},{"kind":"number","nodeType":"YulLiteral","src":"26525:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26516:3:106"},"nodeType":"YulFunctionCall","src":"26516:11:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26503:3:106"},"nodeType":"YulFunctionCall","src":"26503:25:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"26493:6:106"}]},{"nodeType":"YulBreak","src":"26553:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"26440:7:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"26449:12:106"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"26430:9:106"},"nodeType":"YulFunctionCall","src":"26430:32:106"},{"name":"h","nodeType":"YulIdentifier","src":"26464:1:106"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"26427:2:106"},"nodeType":"YulFunctionCall","src":"26427:39:106"},"nodeType":"YulIf","src":"26424:156:106"},{"nodeType":"YulAssignment","src":"26601:26:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"26616:7:106"},{"name":"w","nodeType":"YulIdentifier","src":"26625:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26612:3:106"},"nodeType":"YulFunctionCall","src":"26612:15:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"26601:7:106"}]},{"body":{"nodeType":"YulBlock","src":"26698:9:106","statements":[{"nodeType":"YulBreak","src":"26700:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"26683:7:106"},{"name":"end","nodeType":"YulIdentifier","src":"26692:3:106"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"26680:2:106"},"nodeType":"YulFunctionCall","src":"26680:16:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"26673:6:106"},"nodeType":"YulFunctionCall","src":"26673:24:106"},"nodeType":"YulIf","src":"26670:37:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"26397:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"26399:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"26341:55:106","statements":[{"nodeType":"YulVariableDeclaration","src":"26343:51:106","value":{"arguments":[{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"26366:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"26374:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26362:3:106"},"nodeType":"YulFunctionCall","src":"26362:17:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"26381:12:106"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"26352:9:106"},"nodeType":"YulFunctionCall","src":"26352:42:106"},"variables":[{"name":"h","nodeType":"YulTypedName","src":"26347:1:106","type":""}]}]},"src":"26337:388:106"},{"nodeType":"YulBreak","src":"26742:5:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"25675:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"25677:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"25672:2:106","statements":[]},"src":"25668:1093:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64279,"isOffset":false,"isSlot":false,"src":"25993:4:106","valueSize":1},{"declaration":64279,"isOffset":false,"isSlot":false,"src":"26002:4:106","valueSize":1},{"declaration":64279,"isOffset":false,"isSlot":false,"src":"26126:4:106","valueSize":1},{"declaration":64282,"isOffset":false,"isSlot":false,"src":"25698:6:106","valueSize":1},{"declaration":64282,"isOffset":false,"isSlot":false,"src":"25882:6:106","valueSize":1},{"declaration":64282,"isOffset":false,"isSlot":false,"src":"26493:6:106","valueSize":1},{"declaration":64277,"isOffset":false,"isSlot":false,"src":"25787:6:106","valueSize":1},{"declaration":64277,"isOffset":false,"isSlot":false,"src":"26366:6:106","valueSize":1},{"declaration":64275,"isOffset":false,"isSlot":false,"src":"25837:7:106","valueSize":1},{"declaration":64275,"isOffset":false,"isSlot":false,"src":"25931:7:106","valueSize":1},{"declaration":64275,"isOffset":false,"isSlot":false,"src":"26056:7:106","valueSize":1},{"declaration":64275,"isOffset":false,"isSlot":false,"src":"26091:7:106","valueSize":1},{"declaration":64275,"isOffset":false,"isSlot":false,"src":"26110:7:106","valueSize":1},{"declaration":64275,"isOffset":false,"isSlot":false,"src":"26161:7:106","valueSize":1},{"declaration":64275,"isOffset":false,"isSlot":false,"src":"26440:7:106","valueSize":1},{"declaration":64275,"isOffset":false,"isSlot":false,"src":"26507:7:106","valueSize":1},{"declaration":64275,"isOffset":false,"isSlot":false,"src":"26601:7:106","valueSize":1},{"declaration":64275,"isOffset":false,"isSlot":false,"src":"26616:7:106","valueSize":1},{"declaration":64275,"isOffset":false,"isSlot":false,"src":"26683:7:106","valueSize":1}],"id":64284,"nodeType":"InlineAssembly","src":"25645:1126:106"}]},"documentation":{"id":64273,"nodeType":"StructuredDocumentation","src":"25216:224:106","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from right to left, starting from `from`.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"implemented":true,"kind":"function","modifiers":[],"name":"lastIndexOf","nameLocation":"25454:11:106","parameters":{"id":64280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64275,"mutability":"mutable","name":"subject","nameLocation":"25480:7:106","nodeType":"VariableDeclaration","scope":64286,"src":"25466:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64274,"name":"string","nodeType":"ElementaryTypeName","src":"25466:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64277,"mutability":"mutable","name":"search","nameLocation":"25503:6:106","nodeType":"VariableDeclaration","scope":64286,"src":"25489:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64276,"name":"string","nodeType":"ElementaryTypeName","src":"25489:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64279,"mutability":"mutable","name":"from","nameLocation":"25519:4:106","nodeType":"VariableDeclaration","scope":64286,"src":"25511:12:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64278,"name":"uint256","nodeType":"ElementaryTypeName","src":"25511:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25465:59:106"},"returnParameters":{"id":64283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64282,"mutability":"mutable","name":"result","nameLocation":"25580:6:106","nodeType":"VariableDeclaration","scope":64286,"src":"25572:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64281,"name":"uint256","nodeType":"ElementaryTypeName","src":"25572:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25571:16:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64312,"nodeType":"FunctionDefinition","src":"26990:208:106","nodes":[],"body":{"id":64311,"nodeType":"Block","src":"27123:75:106","nodes":[],"statements":[{"expression":{"id":64309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64296,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64294,"src":"27133:6:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64298,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64289,"src":"27154:7:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":64299,"name":"search","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64291,"src":"27163:6:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":64305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"27186:2:106","subExpression":{"hexValue":"31","id":64304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27187:1:106","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":64303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27179:6:106","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":64302,"name":"int256","nodeType":"ElementaryTypeName","src":"27179:6:106","typeDescriptions":{}}},"id":64306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27179:10:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":64301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27171:7:106","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":64300,"name":"uint256","nodeType":"ElementaryTypeName","src":"27171:7:106","typeDescriptions":{}}},"id":64307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27171:19:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":64297,"name":"lastIndexOf","nodeType":"Identifier","overloadedDeclarations":[64286,64312],"referencedDeclaration":64286,"src":"27142:11:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (string memory,string memory,uint256) pure returns (uint256)"}},"id":64308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27142:49:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27133:58:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":64310,"nodeType":"ExpressionStatement","src":"27133:58:106"}]},"documentation":{"id":64287,"nodeType":"StructuredDocumentation","src":"26783:202:106","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from right to left.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"implemented":true,"kind":"function","modifiers":[],"name":"lastIndexOf","nameLocation":"26999:11:106","parameters":{"id":64292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64289,"mutability":"mutable","name":"subject","nameLocation":"27025:7:106","nodeType":"VariableDeclaration","scope":64312,"src":"27011:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64288,"name":"string","nodeType":"ElementaryTypeName","src":"27011:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64291,"mutability":"mutable","name":"search","nameLocation":"27048:6:106","nodeType":"VariableDeclaration","scope":64312,"src":"27034:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64290,"name":"string","nodeType":"ElementaryTypeName","src":"27034:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27010:45:106"},"returnParameters":{"id":64295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64294,"mutability":"mutable","name":"result","nameLocation":"27111:6:106","nodeType":"VariableDeclaration","scope":64312,"src":"27103:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64293,"name":"uint256","nodeType":"ElementaryTypeName","src":"27103:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27102:16:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64330,"nodeType":"FunctionDefinition","src":"27282:153:106","nodes":[],"body":{"id":64329,"nodeType":"Block","src":"27374:61:106","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":64327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":64323,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64315,"src":"27399:7:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":64324,"name":"search","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64317,"src":"27408:6:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":64322,"name":"indexOf","nodeType":"Identifier","overloadedDeclarations":[64253,64272],"referencedDeclaration":64272,"src":"27391:7:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory,string memory) pure returns (uint256)"}},"id":64325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27391:24:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":64326,"name":"NOT_FOUND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64005,"src":"27419:9:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27391:37:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":64321,"id":64328,"nodeType":"Return","src":"27384:44:106"}]},"documentation":{"id":64313,"nodeType":"StructuredDocumentation","src":"27204:73:106","text":"@dev Returns true if `search` is found in `subject`, false otherwise."},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"27291:8:106","parameters":{"id":64318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64315,"mutability":"mutable","name":"subject","nameLocation":"27314:7:106","nodeType":"VariableDeclaration","scope":64330,"src":"27300:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64314,"name":"string","nodeType":"ElementaryTypeName","src":"27300:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64317,"mutability":"mutable","name":"search","nameLocation":"27337:6:106","nodeType":"VariableDeclaration","scope":64330,"src":"27323:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64316,"name":"string","nodeType":"ElementaryTypeName","src":"27323:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27299:45:106"},"returnParameters":{"id":64321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64320,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":64330,"src":"27368:4:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":64319,"name":"bool","nodeType":"ElementaryTypeName","src":"27368:4:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27367:6:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64342,"nodeType":"FunctionDefinition","src":"27502:628:106","nodes":[],"body":{"id":64341,"nodeType":"Block","src":"27631:499:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"27693:431:106","statements":[{"nodeType":"YulVariableDeclaration","src":"27707:33:106","value":{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"27733:6:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"27727:5:106"},"nodeType":"YulFunctionCall","src":"27727:13:106"},"variables":[{"name":"searchLength","nodeType":"YulTypedName","src":"27711:12:106","type":""}]},{"nodeType":"YulAssignment","src":"27862:252:106","value":{"arguments":[{"arguments":[{"arguments":[{"name":"searchLength","nodeType":"YulIdentifier","src":"27903:12:106"},{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"27923:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"27917:5:106"},"nodeType":"YulFunctionCall","src":"27917:14:106"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"27900:2:106"},"nodeType":"YulFunctionCall","src":"27900:32:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27893:6:106"},"nodeType":"YulFunctionCall","src":"27893:40:106"},{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"27989:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"27998:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27985:3:106"},"nodeType":"YulFunctionCall","src":"27985:18:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"28005:12:106"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"27975:9:106"},"nodeType":"YulFunctionCall","src":"27975:43:106"},{"arguments":[{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"28054:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"28062:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28050:3:106"},"nodeType":"YulFunctionCall","src":"28050:17:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"28069:12:106"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"28040:9:106"},"nodeType":"YulFunctionCall","src":"28040:42:106"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"27951:2:106"},"nodeType":"YulFunctionCall","src":"27951:149:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27872:3:106"},"nodeType":"YulFunctionCall","src":"27872:242:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"27862:6:106"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64338,"isOffset":false,"isSlot":false,"src":"27862:6:106","valueSize":1},{"declaration":64335,"isOffset":false,"isSlot":false,"src":"27733:6:106","valueSize":1},{"declaration":64335,"isOffset":false,"isSlot":false,"src":"28054:6:106","valueSize":1},{"declaration":64333,"isOffset":false,"isSlot":false,"src":"27923:7:106","valueSize":1},{"declaration":64333,"isOffset":false,"isSlot":false,"src":"27989:7:106","valueSize":1}],"id":64340,"nodeType":"InlineAssembly","src":"27684:440:106"}]},"documentation":{"id":64331,"nodeType":"StructuredDocumentation","src":"27441:56:106","text":"@dev Returns whether `subject` starts with `search`."},"implemented":true,"kind":"function","modifiers":[],"name":"startsWith","nameLocation":"27511:10:106","parameters":{"id":64336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64333,"mutability":"mutable","name":"subject","nameLocation":"27536:7:106","nodeType":"VariableDeclaration","scope":64342,"src":"27522:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64332,"name":"string","nodeType":"ElementaryTypeName","src":"27522:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64335,"mutability":"mutable","name":"search","nameLocation":"27559:6:106","nodeType":"VariableDeclaration","scope":64342,"src":"27545:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64334,"name":"string","nodeType":"ElementaryTypeName","src":"27545:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27521:45:106"},"returnParameters":{"id":64339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64338,"mutability":"mutable","name":"result","nameLocation":"27619:6:106","nodeType":"VariableDeclaration","scope":64342,"src":"27614:11:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":64337,"name":"bool","nodeType":"ElementaryTypeName","src":"27614:4:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27613:13:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64354,"nodeType":"FunctionDefinition","src":"28195:989:106","nodes":[],"body":{"id":64353,"nodeType":"Block","src":"28322:862:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"28384:794:106","statements":[{"nodeType":"YulVariableDeclaration","src":"28398:33:106","value":{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"28424:6:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"28418:5:106"},"nodeType":"YulFunctionCall","src":"28418:13:106"},"variables":[{"name":"searchLength","nodeType":"YulTypedName","src":"28402:12:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28444:35:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"28471:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"28465:5:106"},"nodeType":"YulFunctionCall","src":"28465:14:106"},"variables":[{"name":"subjectLength","nodeType":"YulTypedName","src":"28448:13:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28554:58:106","value":{"arguments":[{"arguments":[{"name":"searchLength","nodeType":"YulIdentifier","src":"28583:12:106"},{"name":"subjectLength","nodeType":"YulIdentifier","src":"28597:13:106"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"28580:2:106"},"nodeType":"YulFunctionCall","src":"28580:31:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"28573:6:106"},"nodeType":"YulFunctionCall","src":"28573:39:106"},"variables":[{"name":"withinRange","nodeType":"YulTypedName","src":"28558:11:106","type":""}]},{"nodeType":"YulAssignment","src":"28734:434:106","value":{"arguments":[{"name":"withinRange","nodeType":"YulIdentifier","src":"28765:11:106"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"28945:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"28954:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28941:3:106"},"nodeType":"YulFunctionCall","src":"28941:18:106"},{"arguments":[{"name":"withinRange","nodeType":"YulIdentifier","src":"28965:11:106"},{"arguments":[{"name":"subjectLength","nodeType":"YulIdentifier","src":"28982:13:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"28997:12:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"28978:3:106"},"nodeType":"YulFunctionCall","src":"28978:32:106"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"28961:3:106"},"nodeType":"YulFunctionCall","src":"28961:50:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28937:3:106"},"nodeType":"YulFunctionCall","src":"28937:75:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"29038:12:106"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"28818:9:106"},"nodeType":"YulFunctionCall","src":"28818:254:106"},{"arguments":[{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"29108:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"29116:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29104:3:106"},"nodeType":"YulFunctionCall","src":"29104:17:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"29123:12:106"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"29094:9:106"},"nodeType":"YulFunctionCall","src":"29094:42:106"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"28794:2:106"},"nodeType":"YulFunctionCall","src":"28794:360:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"28744:3:106"},"nodeType":"YulFunctionCall","src":"28744:424:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"28734:6:106"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64350,"isOffset":false,"isSlot":false,"src":"28734:6:106","valueSize":1},{"declaration":64347,"isOffset":false,"isSlot":false,"src":"28424:6:106","valueSize":1},{"declaration":64347,"isOffset":false,"isSlot":false,"src":"29108:6:106","valueSize":1},{"declaration":64345,"isOffset":false,"isSlot":false,"src":"28471:7:106","valueSize":1},{"declaration":64345,"isOffset":false,"isSlot":false,"src":"28945:7:106","valueSize":1}],"id":64352,"nodeType":"InlineAssembly","src":"28375:803:106"}]},"documentation":{"id":64343,"nodeType":"StructuredDocumentation","src":"28136:54:106","text":"@dev Returns whether `subject` ends with `search`."},"implemented":true,"kind":"function","modifiers":[],"name":"endsWith","nameLocation":"28204:8:106","parameters":{"id":64348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64345,"mutability":"mutable","name":"subject","nameLocation":"28227:7:106","nodeType":"VariableDeclaration","scope":64354,"src":"28213:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64344,"name":"string","nodeType":"ElementaryTypeName","src":"28213:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64347,"mutability":"mutable","name":"search","nameLocation":"28250:6:106","nodeType":"VariableDeclaration","scope":64354,"src":"28236:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64346,"name":"string","nodeType":"ElementaryTypeName","src":"28236:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28212:45:106"},"returnParameters":{"id":64351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64350,"mutability":"mutable","name":"result","nameLocation":"28310:6:106","nodeType":"VariableDeclaration","scope":64354,"src":"28305:11:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":64349,"name":"bool","nodeType":"ElementaryTypeName","src":"28305:4:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28304:13:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64366,"nodeType":"FunctionDefinition","src":"29239:1282:106","nodes":[],"body":{"id":64365,"nodeType":"Block","src":"29366:1155:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"29428:1087:106","statements":[{"nodeType":"YulVariableDeclaration","src":"29442:35:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"29469:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"29463:5:106"},"nodeType":"YulFunctionCall","src":"29463:14:106"},"variables":[{"name":"subjectLength","nodeType":"YulTypedName","src":"29446:13:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"29542:963:106","statements":[{"nodeType":"YulAssignment","src":"29560:29:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"29575:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"29584:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29571:3:106"},"nodeType":"YulFunctionCall","src":"29571:18:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"29560:7:106"}]},{"nodeType":"YulAssignment","src":"29606:21:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29622:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"29616:5:106"},"nodeType":"YulFunctionCall","src":"29616:11:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"29606:6:106"}]},{"nodeType":"YulVariableDeclaration","src":"29644:31:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"29662:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"29670:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29658:3:106"},"nodeType":"YulFunctionCall","src":"29658:17:106"},"variables":[{"name":"output","nodeType":"YulTypedName","src":"29648:6:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"29704:475:106","statements":[{"body":{"nodeType":"YulBlock","src":"29812:202:106","statements":[{"expression":{"arguments":[{"arguments":[{"name":"output","nodeType":"YulIdentifier","src":"29849:6:106"},{"name":"o","nodeType":"YulIdentifier","src":"29857:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29845:3:106"},"nodeType":"YulFunctionCall","src":"29845:14:106"},{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"29871:7:106"},{"name":"o","nodeType":"YulIdentifier","src":"29880:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29867:3:106"},"nodeType":"YulFunctionCall","src":"29867:15:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"29861:5:106"},"nodeType":"YulFunctionCall","src":"29861:22:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29838:6:106"},"nodeType":"YulFunctionCall","src":"29838:46:106"},"nodeType":"YulExpressionStatement","src":"29838:46:106"},{"nodeType":"YulAssignment","src":"29909:17:106","value":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"29918:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"29921:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29914:3:106"},"nodeType":"YulFunctionCall","src":"29914:12:106"},"variableNames":[{"name":"o","nodeType":"YulIdentifier","src":"29909:1:106"}]},{"body":{"nodeType":"YulBlock","src":"29983:9:106","statements":[{"nodeType":"YulBreak","src":"29985:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"29964:1:106"},{"name":"subjectLength","nodeType":"YulIdentifier","src":"29967:13:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"29961:2:106"},"nodeType":"YulFunctionCall","src":"29961:20:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"29954:6:106"},"nodeType":"YulFunctionCall","src":"29954:28:106"},"nodeType":"YulIf","src":"29951:41:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"29807:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"29809:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"29792:14:106","statements":[{"nodeType":"YulVariableDeclaration","src":"29794:10:106","value":{"kind":"number","nodeType":"YulLiteral","src":"29803:1:106","type":"","value":"0"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"29798:1:106","type":""}]}]},"src":"29788:226:106"},{"nodeType":"YulAssignment","src":"30035:36:106","value":{"arguments":[{"name":"output","nodeType":"YulIdentifier","src":"30049:6:106"},{"name":"subjectLength","nodeType":"YulIdentifier","src":"30057:13:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30045:3:106"},"nodeType":"YulFunctionCall","src":"30045:26:106"},"variableNames":[{"name":"output","nodeType":"YulIdentifier","src":"30035:6:106"}]},{"nodeType":"YulAssignment","src":"30092:22:106","value":{"arguments":[{"name":"times","nodeType":"YulIdentifier","src":"30105:5:106"},{"kind":"number","nodeType":"YulLiteral","src":"30112:1:106","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30101:3:106"},"nodeType":"YulFunctionCall","src":"30101:13:106"},"variableNames":[{"name":"times","nodeType":"YulIdentifier","src":"30092:5:106"}]},{"body":{"nodeType":"YulBlock","src":"30152:9:106","statements":[{"nodeType":"YulBreak","src":"30154:5:106"}]},"condition":{"arguments":[{"name":"times","nodeType":"YulIdentifier","src":"30145:5:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"30138:6:106"},"nodeType":"YulFunctionCall","src":"30138:13:106"},"nodeType":"YulIf","src":"30135:26:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"29699:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"29701:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"29696:2:106","statements":[]},"src":"29692:487:106"},{"expression":{"arguments":[{"name":"output","nodeType":"YulIdentifier","src":"30203:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"30211:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30196:6:106"},"nodeType":"YulFunctionCall","src":"30196:17:106"},"nodeType":"YulExpressionStatement","src":"30196:17:106"},{"nodeType":"YulVariableDeclaration","src":"30268:50:106","value":{"arguments":[{"name":"output","nodeType":"YulIdentifier","src":"30292:6:106"},{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"30304:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"30312:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30300:3:106"},"nodeType":"YulFunctionCall","src":"30300:17:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30288:3:106"},"nodeType":"YulFunctionCall","src":"30288:30:106"},"variables":[{"name":"resultLength","nodeType":"YulTypedName","src":"30272:12:106","type":""}]},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"30342:6:106"},{"name":"resultLength","nodeType":"YulIdentifier","src":"30350:12:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30335:6:106"},"nodeType":"YulFunctionCall","src":"30335:28:106"},"nodeType":"YulExpressionStatement","src":"30335:28:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"30448:4:106","type":"","value":"0x40"},{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"30458:6:106"},{"arguments":[{"name":"resultLength","nodeType":"YulIdentifier","src":"30470:12:106"},{"kind":"number","nodeType":"YulLiteral","src":"30484:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30466:3:106"},"nodeType":"YulFunctionCall","src":"30466:23:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30454:3:106"},"nodeType":"YulFunctionCall","src":"30454:36:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30441:6:106"},"nodeType":"YulFunctionCall","src":"30441:50:106"},"nodeType":"YulExpressionStatement","src":"30441:50:106"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"times","nodeType":"YulIdentifier","src":"29510:5:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"29503:6:106"},"nodeType":"YulFunctionCall","src":"29503:13:106"},{"arguments":[{"name":"subjectLength","nodeType":"YulIdentifier","src":"29525:13:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"29518:6:106"},"nodeType":"YulFunctionCall","src":"29518:21:106"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"29500:2:106"},"nodeType":"YulFunctionCall","src":"29500:40:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"29493:6:106"},"nodeType":"YulFunctionCall","src":"29493:48:106"},"nodeType":"YulIf","src":"29490:1015:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64362,"isOffset":false,"isSlot":false,"src":"29606:6:106","valueSize":1},{"declaration":64362,"isOffset":false,"isSlot":false,"src":"29662:6:106","valueSize":1},{"declaration":64362,"isOffset":false,"isSlot":false,"src":"30304:6:106","valueSize":1},{"declaration":64362,"isOffset":false,"isSlot":false,"src":"30342:6:106","valueSize":1},{"declaration":64362,"isOffset":false,"isSlot":false,"src":"30458:6:106","valueSize":1},{"declaration":64357,"isOffset":false,"isSlot":false,"src":"29469:7:106","valueSize":1},{"declaration":64357,"isOffset":false,"isSlot":false,"src":"29560:7:106","valueSize":1},{"declaration":64357,"isOffset":false,"isSlot":false,"src":"29575:7:106","valueSize":1},{"declaration":64357,"isOffset":false,"isSlot":false,"src":"29871:7:106","valueSize":1},{"declaration":64359,"isOffset":false,"isSlot":false,"src":"29510:5:106","valueSize":1},{"declaration":64359,"isOffset":false,"isSlot":false,"src":"30092:5:106","valueSize":1},{"declaration":64359,"isOffset":false,"isSlot":false,"src":"30105:5:106","valueSize":1},{"declaration":64359,"isOffset":false,"isSlot":false,"src":"30145:5:106","valueSize":1}],"id":64364,"nodeType":"InlineAssembly","src":"29419:1096:106"}]},"documentation":{"id":64355,"nodeType":"StructuredDocumentation","src":"29190:44:106","text":"@dev Returns `subject` repeated `times`."},"implemented":true,"kind":"function","modifiers":[],"name":"repeat","nameLocation":"29248:6:106","parameters":{"id":64360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64357,"mutability":"mutable","name":"subject","nameLocation":"29269:7:106","nodeType":"VariableDeclaration","scope":64366,"src":"29255:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64356,"name":"string","nodeType":"ElementaryTypeName","src":"29255:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64359,"mutability":"mutable","name":"times","nameLocation":"29286:5:106","nodeType":"VariableDeclaration","scope":64366,"src":"29278:13:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64358,"name":"uint256","nodeType":"ElementaryTypeName","src":"29278:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29254:38:106"},"returnParameters":{"id":64363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64362,"mutability":"mutable","name":"result","nameLocation":"29354:6:106","nodeType":"VariableDeclaration","scope":64366,"src":"29340:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64361,"name":"string","nodeType":"ElementaryTypeName","src":"29340:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29339:22:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64380,"nodeType":"FunctionDefinition","src":"30654:1307:106","nodes":[],"body":{"id":64379,"nodeType":"Block","src":"30793:1168:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"30855:1100:106","statements":[{"nodeType":"YulVariableDeclaration","src":"30869:35:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"30896:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30890:5:106"},"nodeType":"YulFunctionCall","src":"30890:14:106"},"variables":[{"name":"subjectLength","nodeType":"YulTypedName","src":"30873:13:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"30951:24:106","statements":[{"nodeType":"YulAssignment","src":"30953:20:106","value":{"name":"subjectLength","nodeType":"YulIdentifier","src":"30960:13:106"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"30953:3:106"}]}]},"condition":{"arguments":[{"arguments":[{"name":"subjectLength","nodeType":"YulIdentifier","src":"30930:13:106"},{"name":"end","nodeType":"YulIdentifier","src":"30945:3:106"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"30927:2:106"},"nodeType":"YulFunctionCall","src":"30927:22:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"30920:6:106"},"nodeType":"YulFunctionCall","src":"30920:30:106"},"nodeType":"YulIf","src":"30917:58:106"},{"body":{"nodeType":"YulBlock","src":"31024:26:106","statements":[{"nodeType":"YulAssignment","src":"31026:22:106","value":{"name":"subjectLength","nodeType":"YulIdentifier","src":"31035:13:106"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"31026:5:106"}]}]},"condition":{"arguments":[{"arguments":[{"name":"subjectLength","nodeType":"YulIdentifier","src":"31001:13:106"},{"name":"start","nodeType":"YulIdentifier","src":"31016:5:106"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"30998:2:106"},"nodeType":"YulFunctionCall","src":"30998:24:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"30991:6:106"},"nodeType":"YulFunctionCall","src":"30991:32:106"},"nodeType":"YulIf","src":"30988:62:106"},{"body":{"nodeType":"YulBlock","src":"31081:864:106","statements":[{"nodeType":"YulAssignment","src":"31099:21:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31115:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"31109:5:106"},"nodeType":"YulFunctionCall","src":"31109:11:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"31099:6:106"}]},{"nodeType":"YulVariableDeclaration","src":"31137:35:106","value":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"31161:3:106"},{"name":"start","nodeType":"YulIdentifier","src":"31166:5:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"31157:3:106"},"nodeType":"YulFunctionCall","src":"31157:15:106"},"variables":[{"name":"resultLength","nodeType":"YulTypedName","src":"31141:12:106","type":""}]},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"31196:6:106"},{"name":"resultLength","nodeType":"YulIdentifier","src":"31204:12:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31189:6:106"},"nodeType":"YulFunctionCall","src":"31189:28:106"},"nodeType":"YulExpressionStatement","src":"31189:28:106"},{"nodeType":"YulAssignment","src":"31234:30:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"31249:7:106"},{"name":"start","nodeType":"YulIdentifier","src":"31258:5:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31245:3:106"},"nodeType":"YulFunctionCall","src":"31245:19:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"31234:7:106"}]},{"nodeType":"YulVariableDeclaration","src":"31281:18:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31294:4:106","type":"","value":"0x1f"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"31290:3:106"},"nodeType":"YulFunctionCall","src":"31290:9:106"},"variables":[{"name":"w","nodeType":"YulTypedName","src":"31285:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"31439:183:106","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"31472:6:106"},{"name":"o","nodeType":"YulIdentifier","src":"31480:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31468:3:106"},"nodeType":"YulFunctionCall","src":"31468:14:106"},{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"31494:7:106"},{"name":"o","nodeType":"YulIdentifier","src":"31503:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31490:3:106"},"nodeType":"YulFunctionCall","src":"31490:15:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"31484:5:106"},"nodeType":"YulFunctionCall","src":"31484:22:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31461:6:106"},"nodeType":"YulFunctionCall","src":"31461:46:106"},"nodeType":"YulExpressionStatement","src":"31461:46:106"},{"nodeType":"YulAssignment","src":"31528:14:106","value":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"31537:1:106"},{"name":"w","nodeType":"YulIdentifier","src":"31540:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31533:3:106"},"nodeType":"YulFunctionCall","src":"31533:9:106"},"variableNames":[{"name":"o","nodeType":"YulIdentifier","src":"31528:1:106"}]},{"body":{"nodeType":"YulBlock","src":"31595:9:106","statements":[{"nodeType":"YulBreak","src":"31597:5:106"}]},"condition":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"31592:1:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"31585:6:106"},"nodeType":"YulFunctionCall","src":"31585:9:106"},"nodeType":"YulIf","src":"31582:22:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"31434:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"31436:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"31389:44:106","statements":[{"nodeType":"YulVariableDeclaration","src":"31391:40:106","value":{"arguments":[{"arguments":[{"name":"resultLength","nodeType":"YulIdentifier","src":"31408:12:106"},{"kind":"number","nodeType":"YulLiteral","src":"31422:4:106","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31404:3:106"},"nodeType":"YulFunctionCall","src":"31404:23:106"},{"name":"w","nodeType":"YulIdentifier","src":"31429:1:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"31400:3:106"},"nodeType":"YulFunctionCall","src":"31400:31:106"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"31395:1:106","type":""}]}]},"src":"31385:237:106"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"31708:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"31716:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31704:3:106"},"nodeType":"YulFunctionCall","src":"31704:17:106"},{"name":"resultLength","nodeType":"YulIdentifier","src":"31723:12:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31700:3:106"},"nodeType":"YulFunctionCall","src":"31700:36:106"},{"kind":"number","nodeType":"YulLiteral","src":"31738:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31693:6:106"},"nodeType":"YulFunctionCall","src":"31693:47:106"},"nodeType":"YulExpressionStatement","src":"31693:47:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31880:4:106","type":"","value":"0x40"},{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"31890:6:106"},{"arguments":[{"arguments":[{"name":"resultLength","nodeType":"YulIdentifier","src":"31906:12:106"},{"kind":"number","nodeType":"YulLiteral","src":"31920:4:106","type":"","value":"0x3f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31902:3:106"},"nodeType":"YulFunctionCall","src":"31902:23:106"},{"name":"w","nodeType":"YulIdentifier","src":"31927:1:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"31898:3:106"},"nodeType":"YulFunctionCall","src":"31898:31:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31886:3:106"},"nodeType":"YulFunctionCall","src":"31886:44:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31873:6:106"},"nodeType":"YulFunctionCall","src":"31873:58:106"},"nodeType":"YulExpressionStatement","src":"31873:58:106"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"31069:5:106"},{"name":"end","nodeType":"YulIdentifier","src":"31076:3:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"31066:2:106"},"nodeType":"YulFunctionCall","src":"31066:14:106"},"nodeType":"YulIf","src":"31063:882:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64373,"isOffset":false,"isSlot":false,"src":"30945:3:106","valueSize":1},{"declaration":64373,"isOffset":false,"isSlot":false,"src":"30953:3:106","valueSize":1},{"declaration":64373,"isOffset":false,"isSlot":false,"src":"31076:3:106","valueSize":1},{"declaration":64373,"isOffset":false,"isSlot":false,"src":"31161:3:106","valueSize":1},{"declaration":64376,"isOffset":false,"isSlot":false,"src":"31099:6:106","valueSize":1},{"declaration":64376,"isOffset":false,"isSlot":false,"src":"31196:6:106","valueSize":1},{"declaration":64376,"isOffset":false,"isSlot":false,"src":"31472:6:106","valueSize":1},{"declaration":64376,"isOffset":false,"isSlot":false,"src":"31708:6:106","valueSize":1},{"declaration":64376,"isOffset":false,"isSlot":false,"src":"31890:6:106","valueSize":1},{"declaration":64371,"isOffset":false,"isSlot":false,"src":"31016:5:106","valueSize":1},{"declaration":64371,"isOffset":false,"isSlot":false,"src":"31026:5:106","valueSize":1},{"declaration":64371,"isOffset":false,"isSlot":false,"src":"31069:5:106","valueSize":1},{"declaration":64371,"isOffset":false,"isSlot":false,"src":"31166:5:106","valueSize":1},{"declaration":64371,"isOffset":false,"isSlot":false,"src":"31258:5:106","valueSize":1},{"declaration":64369,"isOffset":false,"isSlot":false,"src":"30896:7:106","valueSize":1},{"declaration":64369,"isOffset":false,"isSlot":false,"src":"31234:7:106","valueSize":1},{"declaration":64369,"isOffset":false,"isSlot":false,"src":"31249:7:106","valueSize":1},{"declaration":64369,"isOffset":false,"isSlot":false,"src":"31494:7:106","valueSize":1}],"id":64378,"nodeType":"InlineAssembly","src":"30846:1109:106"}]},"documentation":{"id":64367,"nodeType":"StructuredDocumentation","src":"30527:122:106","text":"@dev Returns a copy of `subject` sliced from `start` to `end` (exclusive).\n `start` and `end` are byte offsets."},"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"30663:5:106","parameters":{"id":64374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64369,"mutability":"mutable","name":"subject","nameLocation":"30683:7:106","nodeType":"VariableDeclaration","scope":64380,"src":"30669:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64368,"name":"string","nodeType":"ElementaryTypeName","src":"30669:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64371,"mutability":"mutable","name":"start","nameLocation":"30700:5:106","nodeType":"VariableDeclaration","scope":64380,"src":"30692:13:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64370,"name":"uint256","nodeType":"ElementaryTypeName","src":"30692:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":64373,"mutability":"mutable","name":"end","nameLocation":"30715:3:106","nodeType":"VariableDeclaration","scope":64380,"src":"30707:11:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64372,"name":"uint256","nodeType":"ElementaryTypeName","src":"30707:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30668:51:106"},"returnParameters":{"id":64377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64376,"mutability":"mutable","name":"result","nameLocation":"30781:6:106","nodeType":"VariableDeclaration","scope":64380,"src":"30767:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64375,"name":"string","nodeType":"ElementaryTypeName","src":"30767:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30766:22:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64406,"nodeType":"FunctionDefinition","src":"32088:194:106","nodes":[],"body":{"id":64405,"nodeType":"Block","src":"32214:68:106","nodes":[],"statements":[{"expression":{"id":64403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64390,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64388,"src":"32224:6:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64392,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64383,"src":"32239:7:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":64393,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64385,"src":"32248:5:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":64399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"32270:2:106","subExpression":{"hexValue":"31","id":64398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32271:1:106","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":64397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32263:6:106","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":64396,"name":"int256","nodeType":"ElementaryTypeName","src":"32263:6:106","typeDescriptions":{}}},"id":64400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32263:10:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":64395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32255:7:106","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":64394,"name":"uint256","nodeType":"ElementaryTypeName","src":"32255:7:106","typeDescriptions":{}}},"id":64401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32255:19:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":64391,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[64380,64406],"referencedDeclaration":64380,"src":"32233:5:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,uint256,uint256) pure returns (string memory)"}},"id":64402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32233:42:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"32224:51:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":64404,"nodeType":"ExpressionStatement","src":"32224:51:106"}]},"documentation":{"id":64381,"nodeType":"StructuredDocumentation","src":"31967:116:106","text":"@dev Returns a copy of `subject` sliced from `start` to the end of the string.\n `start` is a byte offset."},"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"32097:5:106","parameters":{"id":64386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64383,"mutability":"mutable","name":"subject","nameLocation":"32117:7:106","nodeType":"VariableDeclaration","scope":64406,"src":"32103:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64382,"name":"string","nodeType":"ElementaryTypeName","src":"32103:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64385,"mutability":"mutable","name":"start","nameLocation":"32134:5:106","nodeType":"VariableDeclaration","scope":64406,"src":"32126:13:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64384,"name":"uint256","nodeType":"ElementaryTypeName","src":"32126:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32102:38:106"},"returnParameters":{"id":64389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64388,"mutability":"mutable","name":"result","nameLocation":"32202:6:106","nodeType":"VariableDeclaration","scope":64406,"src":"32188:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64387,"name":"string","nodeType":"ElementaryTypeName","src":"32188:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32187:22:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64419,"nodeType":"FunctionDefinition","src":"32389:2575:106","nodes":[],"body":{"id":64418,"nodeType":"Block","src":"32529:2435:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"32591:2367:106","statements":[{"nodeType":"YulVariableDeclaration","src":"32605:35:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"32632:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"32626:5:106"},"nodeType":"YulFunctionCall","src":"32626:14:106"},"variables":[{"name":"subjectLength","nodeType":"YulTypedName","src":"32609:13:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"32653:33:106","value":{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"32679:6:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"32673:5:106"},"nodeType":"YulFunctionCall","src":"32673:13:106"},"variables":[{"name":"searchLength","nodeType":"YulTypedName","src":"32657:12:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"32743:2205:106","statements":[{"nodeType":"YulAssignment","src":"32761:29:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"32776:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"32785:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32772:3:106"},"nodeType":"YulFunctionCall","src":"32772:18:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"32761:7:106"}]},{"nodeType":"YulAssignment","src":"32807:27:106","value":{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"32821:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"32829:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32817:3:106"},"nodeType":"YulFunctionCall","src":"32817:17:106"},"variableNames":[{"name":"search","nodeType":"YulIdentifier","src":"32807:6:106"}]},{"nodeType":"YulAssignment","src":"32851:32:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32871:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"32865:5:106"},"nodeType":"YulFunctionCall","src":"32865:11:106"},{"kind":"number","nodeType":"YulLiteral","src":"32878:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32861:3:106"},"nodeType":"YulFunctionCall","src":"32861:22:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"32851:6:106"}]},{"nodeType":"YulVariableDeclaration","src":"32901:27:106","value":{"name":"subject","nodeType":"YulIdentifier","src":"32921:7:106"},"variables":[{"name":"subjectStart","nodeType":"YulTypedName","src":"32905:12:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"32945:78:106","value":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"32981:7:106"},{"name":"subjectLength","nodeType":"YulIdentifier","src":"32990:13:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32977:3:106"},"nodeType":"YulFunctionCall","src":"32977:27:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"33006:12:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"32973:3:106"},"nodeType":"YulFunctionCall","src":"32973:46:106"},{"kind":"number","nodeType":"YulLiteral","src":"33021:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32969:3:106"},"nodeType":"YulFunctionCall","src":"32969:54:106"},"variables":[{"name":"subjectSearchEnd","nodeType":"YulTypedName","src":"32949:16:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"33040:10:106","value":{"kind":"number","nodeType":"YulLiteral","src":"33049:1:106","type":"","value":"0"},"variables":[{"name":"h","nodeType":"YulTypedName","src":"33044:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"33101:40:106","statements":[{"nodeType":"YulAssignment","src":"33103:36:106","value":{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"33118:6:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"33126:12:106"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"33108:9:106"},"nodeType":"YulFunctionCall","src":"33108:31:106"},"variableNames":[{"name":"h","nodeType":"YulIdentifier","src":"33103:1:106"}]}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nodeType":"YulIdentifier","src":"33080:12:106"},{"kind":"number","nodeType":"YulLiteral","src":"33094:4:106","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"33077:2:106"},"nodeType":"YulFunctionCall","src":"33077:22:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"33070:6:106"},"nodeType":"YulFunctionCall","src":"33070:30:106"},"nodeType":"YulIf","src":"33067:74:106"},{"nodeType":"YulVariableDeclaration","src":"33158:51:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33171:1:106","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33178:4:106","type":"","value":"0x20"},{"arguments":[{"name":"searchLength","nodeType":"YulIdentifier","src":"33188:12:106"},{"kind":"number","nodeType":"YulLiteral","src":"33202:4:106","type":"","value":"0x1f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"33184:3:106"},"nodeType":"YulFunctionCall","src":"33184:23:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"33174:3:106"},"nodeType":"YulFunctionCall","src":"33174:34:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"33167:3:106"},"nodeType":"YulFunctionCall","src":"33167:42:106"},"variables":[{"name":"m","nodeType":"YulTypedName","src":"33162:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"33226:22:106","value":{"arguments":[{"name":"search","nodeType":"YulIdentifier","src":"33241:6:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"33235:5:106"},"nodeType":"YulFunctionCall","src":"33235:13:106"},"variables":[{"name":"s","nodeType":"YulTypedName","src":"33230:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"33277:1206:106","statements":[{"nodeType":"YulVariableDeclaration","src":"33299:23:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"33314:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"33308:5:106"},"nodeType":"YulFunctionCall","src":"33308:14:106"},"variables":[{"name":"t","nodeType":"YulTypedName","src":"33303:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"33497:850:106","statements":[{"body":{"nodeType":"YulBlock","src":"33528:321:106","statements":[{"body":{"nodeType":"YulBlock","src":"33609:214:106","statements":[{"nodeType":"YulAssignment","src":"33643:26:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"33658:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"33667:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33654:3:106"},"nodeType":"YulFunctionCall","src":"33654:15:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"33643:7:106"}]},{"body":{"nodeType":"YulBlock","src":"33743:9:106","statements":[{"nodeType":"YulBreak","src":"33745:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"33715:7:106"},{"name":"subjectSearchEnd","nodeType":"YulIdentifier","src":"33724:16:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"33712:2:106"},"nodeType":"YulFunctionCall","src":"33712:29:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"33705:6:106"},"nodeType":"YulFunctionCall","src":"33705:37:106"},"nodeType":"YulIf","src":"33702:50:106"},{"nodeType":"YulContinue","src":"33785:8:106"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"33581:7:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"33590:12:106"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"33571:9:106"},"nodeType":"YulFunctionCall","src":"33571:32:106"},{"name":"h","nodeType":"YulIdentifier","src":"33605:1:106"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"33568:2:106"},"nodeType":"YulFunctionCall","src":"33568:39:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"33561:6:106"},"nodeType":"YulFunctionCall","src":"33561:47:106"},"nodeType":"YulIf","src":"33558:265:106"}]},"condition":{"name":"h","nodeType":"YulIdentifier","src":"33526:1:106"},"nodeType":"YulIf","src":"33523:326:106"},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"33928:6:106"},{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"33940:7:106"},{"name":"subjectStart","nodeType":"YulIdentifier","src":"33949:12:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"33936:3:106"},"nodeType":"YulFunctionCall","src":"33936:26:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33921:6:106"},"nodeType":"YulFunctionCall","src":"33921:42:106"},"nodeType":"YulExpressionStatement","src":"33921:42:106"},{"nodeType":"YulAssignment","src":"33988:27:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"34002:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"34010:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33998:3:106"},"nodeType":"YulFunctionCall","src":"33998:17:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"33988:6:106"}]},{"nodeType":"YulAssignment","src":"34104:37:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"34119:7:106"},{"name":"searchLength","nodeType":"YulIdentifier","src":"34128:12:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34115:3:106"},"nodeType":"YulFunctionCall","src":"34115:26:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"34104:7:106"}]},{"body":{"nodeType":"YulBlock","src":"34182:143:106","statements":[{"body":{"nodeType":"YulBlock","src":"34253:9:106","statements":[{"nodeType":"YulBreak","src":"34255:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"34225:7:106"},{"name":"subjectSearchEnd","nodeType":"YulIdentifier","src":"34234:16:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"34222:2:106"},"nodeType":"YulFunctionCall","src":"34222:29:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"34215:6:106"},"nodeType":"YulFunctionCall","src":"34215:37:106"},"nodeType":"YulIf","src":"34212:50:106"},{"nodeType":"YulContinue","src":"34291:8:106"}]},"condition":{"name":"searchLength","nodeType":"YulIdentifier","src":"34169:12:106"},"nodeType":"YulIf","src":"34166:159:106"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nodeType":"YulIdentifier","src":"33482:1:106"},{"arguments":[{"name":"t","nodeType":"YulIdentifier","src":"33489:1:106"},{"name":"s","nodeType":"YulIdentifier","src":"33492:1:106"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"33485:3:106"},"nodeType":"YulFunctionCall","src":"33485:9:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"33478:3:106"},"nodeType":"YulFunctionCall","src":"33478:17:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"33471:6:106"},"nodeType":"YulFunctionCall","src":"33471:25:106"},"nodeType":"YulIf","src":"33468:879:106"},{"nodeType":"YulAssignment","src":"34368:26:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"34383:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"34392:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34379:3:106"},"nodeType":"YulFunctionCall","src":"34379:15:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"34368:7:106"}]},{"body":{"nodeType":"YulBlock","src":"34456:9:106","statements":[{"nodeType":"YulBreak","src":"34458:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"34428:7:106"},{"name":"subjectSearchEnd","nodeType":"YulIdentifier","src":"34437:16:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"34425:2:106"},"nodeType":"YulFunctionCall","src":"34425:29:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"34418:6:106"},"nodeType":"YulFunctionCall","src":"34418:37:106"},"nodeType":"YulIf","src":"34415:50:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"33272:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"33274:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"33269:2:106","statements":[]},"src":"33265:1218:106"},{"nodeType":"YulVariableDeclaration","src":"34500:23:106","value":{"name":"result","nodeType":"YulIdentifier","src":"34517:6:106"},"variables":[{"name":"resultEnd","nodeType":"YulTypedName","src":"34504:9:106","type":""}]},{"nodeType":"YulAssignment","src":"34603:21:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"34619:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34613:5:106"},"nodeType":"YulFunctionCall","src":"34613:11:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"34603:6:106"}]},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"34697:6:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"34709:1:106","type":"","value":"5"},{"arguments":[{"name":"resultEnd","nodeType":"YulIdentifier","src":"34716:9:106"},{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"34731:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"34739:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34727:3:106"},"nodeType":"YulFunctionCall","src":"34727:17:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"34712:3:106"},"nodeType":"YulFunctionCall","src":"34712:33:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"34705:3:106"},"nodeType":"YulFunctionCall","src":"34705:41:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34690:6:106"},"nodeType":"YulFunctionCall","src":"34690:57:106"},"nodeType":"YulExpressionStatement","src":"34690:57:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"34907:4:106","type":"","value":"0x40"},{"arguments":[{"name":"resultEnd","nodeType":"YulIdentifier","src":"34917:9:106"},{"kind":"number","nodeType":"YulLiteral","src":"34928:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34913:3:106"},"nodeType":"YulFunctionCall","src":"34913:20:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34900:6:106"},"nodeType":"YulFunctionCall","src":"34900:34:106"},"nodeType":"YulExpressionStatement","src":"34900:34:106"}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nodeType":"YulIdentifier","src":"32713:12:106"},{"name":"subjectLength","nodeType":"YulIdentifier","src":"32727:13:106"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"32710:2:106"},"nodeType":"YulFunctionCall","src":"32710:31:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"32703:6:106"},"nodeType":"YulFunctionCall","src":"32703:39:106"},"nodeType":"YulIf","src":"32700:2248:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64415,"isOffset":false,"isSlot":false,"src":"32851:6:106","valueSize":1},{"declaration":64415,"isOffset":false,"isSlot":false,"src":"33928:6:106","valueSize":1},{"declaration":64415,"isOffset":false,"isSlot":false,"src":"33988:6:106","valueSize":1},{"declaration":64415,"isOffset":false,"isSlot":false,"src":"34002:6:106","valueSize":1},{"declaration":64415,"isOffset":false,"isSlot":false,"src":"34517:6:106","valueSize":1},{"declaration":64415,"isOffset":false,"isSlot":false,"src":"34603:6:106","valueSize":1},{"declaration":64415,"isOffset":false,"isSlot":false,"src":"34697:6:106","valueSize":1},{"declaration":64415,"isOffset":false,"isSlot":false,"src":"34731:6:106","valueSize":1},{"declaration":64411,"isOffset":false,"isSlot":false,"src":"32679:6:106","valueSize":1},{"declaration":64411,"isOffset":false,"isSlot":false,"src":"32807:6:106","valueSize":1},{"declaration":64411,"isOffset":false,"isSlot":false,"src":"32821:6:106","valueSize":1},{"declaration":64411,"isOffset":false,"isSlot":false,"src":"33118:6:106","valueSize":1},{"declaration":64411,"isOffset":false,"isSlot":false,"src":"33241:6:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"32632:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"32761:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"32776:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"32921:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"32981:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"33314:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"33581:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"33643:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"33658:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"33715:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"33940:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"34104:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"34119:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"34225:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"34368:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"34383:7:106","valueSize":1},{"declaration":64409,"isOffset":false,"isSlot":false,"src":"34428:7:106","valueSize":1}],"id":64417,"nodeType":"InlineAssembly","src":"32582:2376:106"}]},"documentation":{"id":64407,"nodeType":"StructuredDocumentation","src":"32288:96:106","text":"@dev Returns all the indices of `search` in `subject`.\n The indices are byte offsets."},"implemented":true,"kind":"function","modifiers":[],"name":"indicesOf","nameLocation":"32398:9:106","parameters":{"id":64412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64409,"mutability":"mutable","name":"subject","nameLocation":"32422:7:106","nodeType":"VariableDeclaration","scope":64419,"src":"32408:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64408,"name":"string","nodeType":"ElementaryTypeName","src":"32408:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64411,"mutability":"mutable","name":"search","nameLocation":"32445:6:106","nodeType":"VariableDeclaration","scope":64419,"src":"32431:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64410,"name":"string","nodeType":"ElementaryTypeName","src":"32431:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32407:45:106"},"returnParameters":{"id":64416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64415,"mutability":"mutable","name":"result","nameLocation":"32517:6:106","nodeType":"VariableDeclaration","scope":64419,"src":"32500:23:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":64413,"name":"uint256","nodeType":"ElementaryTypeName","src":"32500:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":64414,"nodeType":"ArrayTypeName","src":"32500:9:106","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"32499:25:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64442,"nodeType":"FunctionDefinition","src":"35068:2085:106","nodes":[],"body":{"id":64441,"nodeType":"Block","src":"35206:1947:106","nodes":[],"statements":[{"assignments":[64434],"declarations":[{"constant":false,"id":64434,"mutability":"mutable","name":"indices","nameLocation":"35233:7:106","nodeType":"VariableDeclaration","scope":64441,"src":"35216:24:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":64432,"name":"uint256","nodeType":"ElementaryTypeName","src":"35216:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":64433,"nodeType":"ArrayTypeName","src":"35216:9:106","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":64439,"initialValue":{"arguments":[{"id":64436,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64422,"src":"35253:7:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":64437,"name":"delimiter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64424,"src":"35262:9:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":64435,"name":"indicesOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64419,"src":"35243:9:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (uint256[] memory)"}},"id":64438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35243:29:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"35216:56:106"},{"AST":{"nodeType":"YulBlock","src":"35334:1813:106","statements":[{"nodeType":"YulVariableDeclaration","src":"35348:18:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"35361:4:106","type":"","value":"0x1f"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"35357:3:106"},"nodeType":"YulFunctionCall","src":"35357:9:106"},"variables":[{"name":"w","nodeType":"YulTypedName","src":"35352:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"35379:34:106","value":{"arguments":[{"name":"indices","nodeType":"YulIdentifier","src":"35399:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"35408:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35395:3:106"},"nodeType":"YulFunctionCall","src":"35395:18:106"},"variables":[{"name":"indexPtr","nodeType":"YulTypedName","src":"35383:8:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"35426:63:106","value":{"arguments":[{"name":"indexPtr","nodeType":"YulIdentifier","src":"35448:8:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"35462:1:106","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"indices","nodeType":"YulIdentifier","src":"35475:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35469:5:106"},"nodeType":"YulFunctionCall","src":"35469:14:106"},{"kind":"number","nodeType":"YulLiteral","src":"35485:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35465:3:106"},"nodeType":"YulFunctionCall","src":"35465:22:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"35458:3:106"},"nodeType":"YulFunctionCall","src":"35458:30:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35444:3:106"},"nodeType":"YulFunctionCall","src":"35444:45:106"},"variables":[{"name":"indicesEnd","nodeType":"YulTypedName","src":"35430:10:106","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"indicesEnd","nodeType":"YulIdentifier","src":"35513:10:106"},{"name":"w","nodeType":"YulIdentifier","src":"35525:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35509:3:106"},"nodeType":"YulFunctionCall","src":"35509:18:106"},{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"35535:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35529:5:106"},"nodeType":"YulFunctionCall","src":"35529:14:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35502:6:106"},"nodeType":"YulFunctionCall","src":"35502:42:106"},"nodeType":"YulExpressionStatement","src":"35502:42:106"},{"expression":{"arguments":[{"name":"indices","nodeType":"YulIdentifier","src":"35564:7:106"},{"arguments":[{"arguments":[{"name":"indices","nodeType":"YulIdentifier","src":"35583:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35577:5:106"},"nodeType":"YulFunctionCall","src":"35577:14:106"},{"kind":"number","nodeType":"YulLiteral","src":"35593:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35573:3:106"},"nodeType":"YulFunctionCall","src":"35573:22:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35557:6:106"},"nodeType":"YulFunctionCall","src":"35557:39:106"},"nodeType":"YulExpressionStatement","src":"35557:39:106"},{"nodeType":"YulVariableDeclaration","src":"35609:18:106","value":{"kind":"number","nodeType":"YulLiteral","src":"35626:1:106","type":"","value":"0"},"variables":[{"name":"prevIndex","nodeType":"YulTypedName","src":"35613:9:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"35652:1299:106","statements":[{"nodeType":"YulVariableDeclaration","src":"35670:28:106","value":{"arguments":[{"name":"indexPtr","nodeType":"YulIdentifier","src":"35689:8:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35683:5:106"},"nodeType":"YulFunctionCall","src":"35683:15:106"},"variables":[{"name":"index","nodeType":"YulTypedName","src":"35674:5:106","type":""}]},{"expression":{"arguments":[{"name":"indexPtr","nodeType":"YulIdentifier","src":"35722:8:106"},{"kind":"number","nodeType":"YulLiteral","src":"35732:4:106","type":"","value":"0x60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35715:6:106"},"nodeType":"YulFunctionCall","src":"35715:22:106"},"nodeType":"YulExpressionStatement","src":"35715:22:106"},{"body":{"nodeType":"YulBlock","src":"35786:983:106","statements":[{"nodeType":"YulVariableDeclaration","src":"35808:26:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"35829:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35823:5:106"},"nodeType":"YulFunctionCall","src":"35823:11:106"},"variables":[{"name":"element","nodeType":"YulTypedName","src":"35812:7:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"35855:42:106","value":{"arguments":[{"name":"index","nodeType":"YulIdentifier","src":"35880:5:106"},{"name":"prevIndex","nodeType":"YulIdentifier","src":"35887:9:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"35876:3:106"},"nodeType":"YulFunctionCall","src":"35876:21:106"},"variables":[{"name":"elementLength","nodeType":"YulTypedName","src":"35859:13:106","type":""}]},{"expression":{"arguments":[{"name":"element","nodeType":"YulIdentifier","src":"35925:7:106"},{"name":"elementLength","nodeType":"YulIdentifier","src":"35934:13:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35918:6:106"},"nodeType":"YulFunctionCall","src":"35918:30:106"},"nodeType":"YulExpressionStatement","src":"35918:30:106"},{"body":{"nodeType":"YulBlock","src":"36097:216:106","statements":[{"expression":{"arguments":[{"arguments":[{"name":"element","nodeType":"YulIdentifier","src":"36134:7:106"},{"name":"o","nodeType":"YulIdentifier","src":"36143:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36130:3:106"},"nodeType":"YulFunctionCall","src":"36130:15:106"},{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"36161:7:106"},{"name":"prevIndex","nodeType":"YulIdentifier","src":"36170:9:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36157:3:106"},"nodeType":"YulFunctionCall","src":"36157:23:106"},{"name":"o","nodeType":"YulIdentifier","src":"36182:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36153:3:106"},"nodeType":"YulFunctionCall","src":"36153:31:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"36147:5:106"},"nodeType":"YulFunctionCall","src":"36147:38:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36123:6:106"},"nodeType":"YulFunctionCall","src":"36123:63:106"},"nodeType":"YulExpressionStatement","src":"36123:63:106"},{"nodeType":"YulAssignment","src":"36211:14:106","value":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"36220:1:106"},{"name":"w","nodeType":"YulIdentifier","src":"36223:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36216:3:106"},"nodeType":"YulFunctionCall","src":"36216:9:106"},"variableNames":[{"name":"o","nodeType":"YulIdentifier","src":"36211:1:106"}]},{"body":{"nodeType":"YulBlock","src":"36282:9:106","statements":[{"nodeType":"YulBreak","src":"36284:5:106"}]},"condition":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"36279:1:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"36272:6:106"},"nodeType":"YulFunctionCall","src":"36272:9:106"},"nodeType":"YulIf","src":"36269:22:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"36092:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"36094:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"36046:45:106","statements":[{"nodeType":"YulVariableDeclaration","src":"36048:41:106","value":{"arguments":[{"arguments":[{"name":"elementLength","nodeType":"YulIdentifier","src":"36065:13:106"},{"kind":"number","nodeType":"YulLiteral","src":"36080:4:106","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36061:3:106"},"nodeType":"YulFunctionCall","src":"36061:24:106"},{"name":"w","nodeType":"YulIdentifier","src":"36087:1:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"36057:3:106"},"nodeType":"YulFunctionCall","src":"36057:32:106"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"36052:1:106","type":""}]}]},"src":"36042:271:106"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"element","nodeType":"YulIdentifier","src":"36407:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"36416:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36403:3:106"},"nodeType":"YulFunctionCall","src":"36403:18:106"},{"name":"elementLength","nodeType":"YulIdentifier","src":"36423:13:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36399:3:106"},"nodeType":"YulFunctionCall","src":"36399:38:106"},{"kind":"number","nodeType":"YulLiteral","src":"36439:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36392:6:106"},"nodeType":"YulFunctionCall","src":"36392:49:106"},"nodeType":"YulExpressionStatement","src":"36392:49:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36593:4:106","type":"","value":"0x40"},{"arguments":[{"name":"element","nodeType":"YulIdentifier","src":"36603:7:106"},{"arguments":[{"arguments":[{"name":"elementLength","nodeType":"YulIdentifier","src":"36620:13:106"},{"kind":"number","nodeType":"YulLiteral","src":"36635:4:106","type":"","value":"0x3f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36616:3:106"},"nodeType":"YulFunctionCall","src":"36616:24:106"},{"name":"w","nodeType":"YulIdentifier","src":"36642:1:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"36612:3:106"},"nodeType":"YulFunctionCall","src":"36612:32:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36599:3:106"},"nodeType":"YulFunctionCall","src":"36599:46:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36586:6:106"},"nodeType":"YulFunctionCall","src":"36586:60:106"},"nodeType":"YulExpressionStatement","src":"36586:60:106"},{"expression":{"arguments":[{"name":"indexPtr","nodeType":"YulIdentifier","src":"36733:8:106"},{"name":"element","nodeType":"YulIdentifier","src":"36743:7:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36726:6:106"},"nodeType":"YulFunctionCall","src":"36726:25:106"},"nodeType":"YulExpressionStatement","src":"36726:25:106"}]},"condition":{"arguments":[{"arguments":[{"name":"index","nodeType":"YulIdentifier","src":"35767:5:106"},{"name":"prevIndex","nodeType":"YulIdentifier","src":"35774:9:106"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"35764:2:106"},"nodeType":"YulFunctionCall","src":"35764:20:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"35757:6:106"},"nodeType":"YulFunctionCall","src":"35757:28:106"},"nodeType":"YulIf","src":"35754:1015:106"},{"nodeType":"YulAssignment","src":"36786:41:106","value":{"arguments":[{"name":"index","nodeType":"YulIdentifier","src":"36803:5:106"},{"arguments":[{"name":"delimiter","nodeType":"YulIdentifier","src":"36816:9:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"36810:5:106"},"nodeType":"YulFunctionCall","src":"36810:16:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36799:3:106"},"nodeType":"YulFunctionCall","src":"36799:28:106"},"variableNames":[{"name":"prevIndex","nodeType":"YulIdentifier","src":"36786:9:106"}]},{"nodeType":"YulAssignment","src":"36844:31:106","value":{"arguments":[{"name":"indexPtr","nodeType":"YulIdentifier","src":"36860:8:106"},{"kind":"number","nodeType":"YulLiteral","src":"36870:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36856:3:106"},"nodeType":"YulFunctionCall","src":"36856:19:106"},"variableNames":[{"name":"indexPtr","nodeType":"YulIdentifier","src":"36844:8:106"}]},{"body":{"nodeType":"YulBlock","src":"36928:9:106","statements":[{"nodeType":"YulBreak","src":"36930:5:106"}]},"condition":{"arguments":[{"arguments":[{"name":"indexPtr","nodeType":"YulIdentifier","src":"36905:8:106"},{"name":"indicesEnd","nodeType":"YulIdentifier","src":"36915:10:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"36902:2:106"},"nodeType":"YulFunctionCall","src":"36902:24:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"36895:6:106"},"nodeType":"YulFunctionCall","src":"36895:32:106"},"nodeType":"YulIf","src":"36892:45:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"35647:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"35649:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"35644:2:106","statements":[]},"src":"35640:1311:106"},{"nodeType":"YulAssignment","src":"36964:17:106","value":{"name":"indices","nodeType":"YulIdentifier","src":"36974:7:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"36964:6:106"}]},{"body":{"nodeType":"YulBlock","src":"37022:115:106","statements":[{"nodeType":"YulAssignment","src":"37040:28:106","value":{"arguments":[{"name":"indices","nodeType":"YulIdentifier","src":"37054:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"37063:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37050:3:106"},"nodeType":"YulFunctionCall","src":"37050:18:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"37040:6:106"}]},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"37092:6:106"},{"arguments":[{"arguments":[{"name":"indices","nodeType":"YulIdentifier","src":"37110:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37104:5:106"},"nodeType":"YulFunctionCall","src":"37104:14:106"},{"kind":"number","nodeType":"YulLiteral","src":"37120:1:106","type":"","value":"2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"37100:3:106"},"nodeType":"YulFunctionCall","src":"37100:22:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37085:6:106"},"nodeType":"YulFunctionCall","src":"37085:38:106"},"nodeType":"YulExpressionStatement","src":"37085:38:106"}]},"condition":{"arguments":[{"arguments":[{"name":"delimiter","nodeType":"YulIdentifier","src":"37010:9:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37004:5:106"},"nodeType":"YulFunctionCall","src":"37004:16:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"36997:6:106"},"nodeType":"YulFunctionCall","src":"36997:24:106"},"nodeType":"YulIf","src":"36994:143:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64424,"isOffset":false,"isSlot":false,"src":"36816:9:106","valueSize":1},{"declaration":64424,"isOffset":false,"isSlot":false,"src":"37010:9:106","valueSize":1},{"declaration":64434,"isOffset":false,"isSlot":false,"src":"35399:7:106","valueSize":1},{"declaration":64434,"isOffset":false,"isSlot":false,"src":"35475:7:106","valueSize":1},{"declaration":64434,"isOffset":false,"isSlot":false,"src":"35564:7:106","valueSize":1},{"declaration":64434,"isOffset":false,"isSlot":false,"src":"35583:7:106","valueSize":1},{"declaration":64434,"isOffset":false,"isSlot":false,"src":"36974:7:106","valueSize":1},{"declaration":64434,"isOffset":false,"isSlot":false,"src":"37054:7:106","valueSize":1},{"declaration":64434,"isOffset":false,"isSlot":false,"src":"37110:7:106","valueSize":1},{"declaration":64428,"isOffset":false,"isSlot":false,"src":"36964:6:106","valueSize":1},{"declaration":64428,"isOffset":false,"isSlot":false,"src":"37040:6:106","valueSize":1},{"declaration":64428,"isOffset":false,"isSlot":false,"src":"37092:6:106","valueSize":1},{"declaration":64422,"isOffset":false,"isSlot":false,"src":"35535:7:106","valueSize":1},{"declaration":64422,"isOffset":false,"isSlot":false,"src":"36161:7:106","valueSize":1}],"id":64440,"nodeType":"InlineAssembly","src":"35325:1822:106"}]},"documentation":{"id":64420,"nodeType":"StructuredDocumentation","src":"34970:93:106","text":"@dev Returns a arrays of strings based on the `delimiter` inside of the `subject` string."},"implemented":true,"kind":"function","modifiers":[],"name":"split","nameLocation":"35077:5:106","parameters":{"id":64425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64422,"mutability":"mutable","name":"subject","nameLocation":"35097:7:106","nodeType":"VariableDeclaration","scope":64442,"src":"35083:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64421,"name":"string","nodeType":"ElementaryTypeName","src":"35083:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64424,"mutability":"mutable","name":"delimiter","nameLocation":"35120:9:106","nodeType":"VariableDeclaration","scope":64442,"src":"35106:23:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64423,"name":"string","nodeType":"ElementaryTypeName","src":"35106:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35082:48:106"},"returnParameters":{"id":64429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64428,"mutability":"mutable","name":"result","nameLocation":"35194:6:106","nodeType":"VariableDeclaration","scope":64442,"src":"35178:22:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":64426,"name":"string","nodeType":"ElementaryTypeName","src":"35178:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":64427,"nodeType":"ArrayTypeName","src":"35178:8:106","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"35177:24:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64454,"nodeType":"FunctionDefinition","src":"37304:1365:106","nodes":[],"body":{"id":64453,"nodeType":"Block","src":"37427:1242:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"37489:1174:106","statements":[{"nodeType":"YulVariableDeclaration","src":"37503:18:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37516:4:106","type":"","value":"0x1f"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"37512:3:106"},"nodeType":"YulFunctionCall","src":"37512:9:106"},"variables":[{"name":"w","nodeType":"YulTypedName","src":"37507:1:106","type":""}]},{"nodeType":"YulAssignment","src":"37534:21:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37550:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37544:5:106"},"nodeType":"YulFunctionCall","src":"37544:11:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"37534:6:106"}]},{"nodeType":"YulVariableDeclaration","src":"37568:23:106","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"37589:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37583:5:106"},"nodeType":"YulFunctionCall","src":"37583:8:106"},"variables":[{"name":"aLength","nodeType":"YulTypedName","src":"37572:7:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"37708:161:106","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"37737:6:106"},{"name":"o","nodeType":"YulIdentifier","src":"37745:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37733:3:106"},"nodeType":"YulFunctionCall","src":"37733:14:106"},{"arguments":[{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"37759:1:106"},{"name":"o","nodeType":"YulIdentifier","src":"37762:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37755:3:106"},"nodeType":"YulFunctionCall","src":"37755:9:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37749:5:106"},"nodeType":"YulFunctionCall","src":"37749:16:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37726:6:106"},"nodeType":"YulFunctionCall","src":"37726:40:106"},"nodeType":"YulExpressionStatement","src":"37726:40:106"},{"nodeType":"YulAssignment","src":"37783:14:106","value":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"37792:1:106"},{"name":"w","nodeType":"YulIdentifier","src":"37795:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37788:3:106"},"nodeType":"YulFunctionCall","src":"37788:9:106"},"variableNames":[{"name":"o","nodeType":"YulIdentifier","src":"37783:1:106"}]},{"body":{"nodeType":"YulBlock","src":"37846:9:106","statements":[{"nodeType":"YulBreak","src":"37848:5:106"}]},"condition":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"37843:1:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37836:6:106"},"nodeType":"YulFunctionCall","src":"37836:9:106"},"nodeType":"YulIf","src":"37833:22:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"37703:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"37705:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"37663:39:106","statements":[{"nodeType":"YulVariableDeclaration","src":"37665:35:106","value":{"arguments":[{"arguments":[{"name":"aLength","nodeType":"YulIdentifier","src":"37682:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"37691:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37678:3:106"},"nodeType":"YulFunctionCall","src":"37678:18:106"},{"name":"w","nodeType":"YulIdentifier","src":"37698:1:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"37674:3:106"},"nodeType":"YulFunctionCall","src":"37674:26:106"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"37669:1:106","type":""}]}]},"src":"37659:210:106"},{"nodeType":"YulVariableDeclaration","src":"37882:23:106","value":{"arguments":[{"name":"b","nodeType":"YulIdentifier","src":"37903:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37897:5:106"},"nodeType":"YulFunctionCall","src":"37897:8:106"},"variables":[{"name":"bLength","nodeType":"YulTypedName","src":"37886:7:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"37918:34:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"37936:6:106"},{"name":"aLength","nodeType":"YulIdentifier","src":"37944:7:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37932:3:106"},"nodeType":"YulFunctionCall","src":"37932:20:106"},"variables":[{"name":"output","nodeType":"YulTypedName","src":"37922:6:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"38069:161:106","statements":[{"expression":{"arguments":[{"arguments":[{"name":"output","nodeType":"YulIdentifier","src":"38098:6:106"},{"name":"o","nodeType":"YulIdentifier","src":"38106:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38094:3:106"},"nodeType":"YulFunctionCall","src":"38094:14:106"},{"arguments":[{"arguments":[{"name":"b","nodeType":"YulIdentifier","src":"38120:1:106"},{"name":"o","nodeType":"YulIdentifier","src":"38123:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38116:3:106"},"nodeType":"YulFunctionCall","src":"38116:9:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38110:5:106"},"nodeType":"YulFunctionCall","src":"38110:16:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38087:6:106"},"nodeType":"YulFunctionCall","src":"38087:40:106"},"nodeType":"YulExpressionStatement","src":"38087:40:106"},{"nodeType":"YulAssignment","src":"38144:14:106","value":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"38153:1:106"},{"name":"w","nodeType":"YulIdentifier","src":"38156:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38149:3:106"},"nodeType":"YulFunctionCall","src":"38149:9:106"},"variableNames":[{"name":"o","nodeType":"YulIdentifier","src":"38144:1:106"}]},{"body":{"nodeType":"YulBlock","src":"38207:9:106","statements":[{"nodeType":"YulBreak","src":"38209:5:106"}]},"condition":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"38204:1:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"38197:6:106"},"nodeType":"YulFunctionCall","src":"38197:9:106"},"nodeType":"YulIf","src":"38194:22:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"38064:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"38066:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"38024:39:106","statements":[{"nodeType":"YulVariableDeclaration","src":"38026:35:106","value":{"arguments":[{"arguments":[{"name":"bLength","nodeType":"YulIdentifier","src":"38043:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"38052:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38039:3:106"},"nodeType":"YulFunctionCall","src":"38039:18:106"},{"name":"w","nodeType":"YulIdentifier","src":"38059:1:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"38035:3:106"},"nodeType":"YulFunctionCall","src":"38035:26:106"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"38030:1:106","type":""}]}]},"src":"38020:210:106"},{"nodeType":"YulVariableDeclaration","src":"38243:40:106","value":{"arguments":[{"name":"aLength","nodeType":"YulIdentifier","src":"38266:7:106"},{"name":"bLength","nodeType":"YulIdentifier","src":"38275:7:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38262:3:106"},"nodeType":"YulFunctionCall","src":"38262:21:106"},"variables":[{"name":"totalLength","nodeType":"YulTypedName","src":"38247:11:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"38296:47:106","value":{"arguments":[{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"38316:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"38324:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38312:3:106"},"nodeType":"YulFunctionCall","src":"38312:17:106"},{"name":"totalLength","nodeType":"YulIdentifier","src":"38331:11:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38308:3:106"},"nodeType":"YulFunctionCall","src":"38308:35:106"},"variables":[{"name":"last","nodeType":"YulTypedName","src":"38300:4:106","type":""}]},{"expression":{"arguments":[{"name":"last","nodeType":"YulIdentifier","src":"38413:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"38419:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38406:6:106"},"nodeType":"YulFunctionCall","src":"38406:15:106"},"nodeType":"YulExpressionStatement","src":"38406:15:106"},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"38475:6:106"},{"name":"totalLength","nodeType":"YulIdentifier","src":"38483:11:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38468:6:106"},"nodeType":"YulFunctionCall","src":"38468:27:106"},"nodeType":"YulExpressionStatement","src":"38468:27:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38623:4:106","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"last","nodeType":"YulIdentifier","src":"38637:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"38643:4:106","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38633:3:106"},"nodeType":"YulFunctionCall","src":"38633:15:106"},{"name":"w","nodeType":"YulIdentifier","src":"38650:1:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"38629:3:106"},"nodeType":"YulFunctionCall","src":"38629:23:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38616:6:106"},"nodeType":"YulFunctionCall","src":"38616:37:106"},"nodeType":"YulExpressionStatement","src":"38616:37:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64445,"isOffset":false,"isSlot":false,"src":"37589:1:106","valueSize":1},{"declaration":64445,"isOffset":false,"isSlot":false,"src":"37759:1:106","valueSize":1},{"declaration":64447,"isOffset":false,"isSlot":false,"src":"37903:1:106","valueSize":1},{"declaration":64447,"isOffset":false,"isSlot":false,"src":"38120:1:106","valueSize":1},{"declaration":64450,"isOffset":false,"isSlot":false,"src":"37534:6:106","valueSize":1},{"declaration":64450,"isOffset":false,"isSlot":false,"src":"37737:6:106","valueSize":1},{"declaration":64450,"isOffset":false,"isSlot":false,"src":"37936:6:106","valueSize":1},{"declaration":64450,"isOffset":false,"isSlot":false,"src":"38316:6:106","valueSize":1},{"declaration":64450,"isOffset":false,"isSlot":false,"src":"38475:6:106","valueSize":1}],"id":64452,"nodeType":"InlineAssembly","src":"37480:1183:106"}]},"documentation":{"id":64443,"nodeType":"StructuredDocumentation","src":"37159:140:106","text":"@dev Returns a concatenated string of `a` and `b`.\n Cheaper than `string.concat()` and does not de-align the free memory pointer."},"implemented":true,"kind":"function","modifiers":[],"name":"concat","nameLocation":"37313:6:106","parameters":{"id":64448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64445,"mutability":"mutable","name":"a","nameLocation":"37334:1:106","nodeType":"VariableDeclaration","scope":64454,"src":"37320:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64444,"name":"string","nodeType":"ElementaryTypeName","src":"37320:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64447,"mutability":"mutable","name":"b","nameLocation":"37351:1:106","nodeType":"VariableDeclaration","scope":64454,"src":"37337:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64446,"name":"string","nodeType":"ElementaryTypeName","src":"37337:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37319:34:106"},"returnParameters":{"id":64451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64450,"mutability":"mutable","name":"result","nameLocation":"37415:6:106","nodeType":"VariableDeclaration","scope":64454,"src":"37401:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64449,"name":"string","nodeType":"ElementaryTypeName","src":"37401:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37400:22:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64466,"nodeType":"FunctionDefinition","src":"38827:1059:106","nodes":[],"body":{"id":64465,"nodeType":"Block","src":"38953:933:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"39015:865:106","statements":[{"nodeType":"YulVariableDeclaration","src":"39029:28:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"39049:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39043:5:106"},"nodeType":"YulFunctionCall","src":"39043:14:106"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"39033:6:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"39080:790:106","statements":[{"nodeType":"YulAssignment","src":"39098:32:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"39118:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39112:5:106"},"nodeType":"YulFunctionCall","src":"39112:11:106"},{"kind":"number","nodeType":"YulLiteral","src":"39125:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39108:3:106"},"nodeType":"YulFunctionCall","src":"39108:22:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"39098:6:106"}]},{"nodeType":"YulAssignment","src":"39147:26:106","value":{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"39162:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"39171:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39158:3:106"},"nodeType":"YulFunctionCall","src":"39158:15:106"},"variableNames":[{"name":"subject","nodeType":"YulIdentifier","src":"39147:7:106"}]},{"nodeType":"YulVariableDeclaration","src":"39190:53:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"39211:2:106","type":"","value":"70"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"39219:1:106","type":"","value":"5"},{"name":"toUpper","nodeType":"YulIdentifier","src":"39222:7:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"39215:3:106"},"nodeType":"YulFunctionCall","src":"39215:15:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39207:3:106"},"nodeType":"YulFunctionCall","src":"39207:24:106"},{"kind":"number","nodeType":"YulLiteral","src":"39233:9:106","type":"","value":"0x3ffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"39203:3:106"},"nodeType":"YulFunctionCall","src":"39203:40:106"},"variables":[{"name":"flags","nodeType":"YulTypedName","src":"39194:5:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"39260:15:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"39273:1:106","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"39269:3:106"},"nodeType":"YulFunctionCall","src":"39269:6:106"},"variables":[{"name":"w","nodeType":"YulTypedName","src":"39264:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"39321:238:106","statements":[{"nodeType":"YulAssignment","src":"39343:14:106","value":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"39352:1:106"},{"name":"w","nodeType":"YulIdentifier","src":"39355:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39348:3:106"},"nodeType":"YulFunctionCall","src":"39348:9:106"},"variableNames":[{"name":"o","nodeType":"YulIdentifier","src":"39343:1:106"}]},{"nodeType":"YulVariableDeclaration","src":"39378:42:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"39391:4:106","type":"","value":"0xff"},{"arguments":[{"arguments":[{"name":"subject","nodeType":"YulIdentifier","src":"39407:7:106"},{"name":"o","nodeType":"YulIdentifier","src":"39416:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39403:3:106"},"nodeType":"YulFunctionCall","src":"39403:15:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39397:5:106"},"nodeType":"YulFunctionCall","src":"39397:22:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"39387:3:106"},"nodeType":"YulFunctionCall","src":"39387:33:106"},"variables":[{"name":"b","nodeType":"YulTypedName","src":"39382:1:106","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"39453:6:106"},{"name":"o","nodeType":"YulIdentifier","src":"39461:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39449:3:106"},"nodeType":"YulFunctionCall","src":"39449:14:106"},{"arguments":[{"name":"b","nodeType":"YulIdentifier","src":"39469:1:106"},{"arguments":[{"arguments":[{"name":"b","nodeType":"YulIdentifier","src":"39480:1:106"},{"name":"flags","nodeType":"YulIdentifier","src":"39483:5:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"39476:3:106"},"nodeType":"YulFunctionCall","src":"39476:13:106"},{"kind":"number","nodeType":"YulLiteral","src":"39491:4:106","type":"","value":"0x20"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"39472:3:106"},"nodeType":"YulFunctionCall","src":"39472:24:106"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"39465:3:106"},"nodeType":"YulFunctionCall","src":"39465:32:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"39441:7:106"},"nodeType":"YulFunctionCall","src":"39441:57:106"},"nodeType":"YulExpressionStatement","src":"39441:57:106"},{"body":{"nodeType":"YulBlock","src":"39532:9:106","statements":[{"nodeType":"YulBreak","src":"39534:5:106"}]},"condition":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"39529:1:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"39522:6:106"},"nodeType":"YulFunctionCall","src":"39522:9:106"},"nodeType":"YulIf","src":"39519:22:106"}]},"condition":{"kind":"number","nodeType":"YulLiteral","src":"39316:1:106","type":"","value":"1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"39318:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"39296:19:106","statements":[{"nodeType":"YulVariableDeclaration","src":"39298:15:106","value":{"name":"length","nodeType":"YulIdentifier","src":"39307:6:106"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"39302:1:106","type":""}]}]},"src":"39292:267:106"},{"nodeType":"YulAssignment","src":"39576:21:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"39592:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39586:5:106"},"nodeType":"YulFunctionCall","src":"39586:11:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"39576:6:106"}]},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"39621:6:106"},{"name":"length","nodeType":"YulIdentifier","src":"39629:6:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39614:6:106"},"nodeType":"YulFunctionCall","src":"39614:22:106"},"nodeType":"YulExpressionStatement","src":"39614:22:106"},{"nodeType":"YulVariableDeclaration","src":"39674:42:106","value":{"arguments":[{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"39694:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"39702:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39690:3:106"},"nodeType":"YulFunctionCall","src":"39690:17:106"},{"name":"length","nodeType":"YulIdentifier","src":"39709:6:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39686:3:106"},"nodeType":"YulFunctionCall","src":"39686:30:106"},"variables":[{"name":"last","nodeType":"YulTypedName","src":"39678:4:106","type":""}]},{"expression":{"arguments":[{"name":"last","nodeType":"YulIdentifier","src":"39740:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"39746:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39733:6:106"},"nodeType":"YulFunctionCall","src":"39733:15:106"},"nodeType":"YulExpressionStatement","src":"39733:15:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"39810:4:106","type":"","value":"0x40"},{"arguments":[{"name":"last","nodeType":"YulIdentifier","src":"39820:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"39826:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39816:3:106"},"nodeType":"YulFunctionCall","src":"39816:15:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39803:6:106"},"nodeType":"YulFunctionCall","src":"39803:29:106"},"nodeType":"YulExpressionStatement","src":"39803:29:106"}]},"condition":{"name":"length","nodeType":"YulIdentifier","src":"39073:6:106"},"nodeType":"YulIf","src":"39070:800:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64462,"isOffset":false,"isSlot":false,"src":"39098:6:106","valueSize":1},{"declaration":64462,"isOffset":false,"isSlot":false,"src":"39453:6:106","valueSize":1},{"declaration":64462,"isOffset":false,"isSlot":false,"src":"39576:6:106","valueSize":1},{"declaration":64462,"isOffset":false,"isSlot":false,"src":"39621:6:106","valueSize":1},{"declaration":64462,"isOffset":false,"isSlot":false,"src":"39694:6:106","valueSize":1},{"declaration":64457,"isOffset":false,"isSlot":false,"src":"39049:7:106","valueSize":1},{"declaration":64457,"isOffset":false,"isSlot":false,"src":"39147:7:106","valueSize":1},{"declaration":64457,"isOffset":false,"isSlot":false,"src":"39162:7:106","valueSize":1},{"declaration":64457,"isOffset":false,"isSlot":false,"src":"39407:7:106","valueSize":1},{"declaration":64459,"isOffset":false,"isSlot":false,"src":"39222:7:106","valueSize":1}],"id":64464,"nodeType":"InlineAssembly","src":"39006:874:106"}]},"documentation":{"id":64455,"nodeType":"StructuredDocumentation","src":"38675:147:106","text":"@dev Returns a copy of the string in either lowercase or UPPERCASE.\n WARNING! This function is only compatible with 7-bit ASCII strings."},"implemented":true,"kind":"function","modifiers":[],"name":"toCase","nameLocation":"38836:6:106","parameters":{"id":64460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64457,"mutability":"mutable","name":"subject","nameLocation":"38857:7:106","nodeType":"VariableDeclaration","scope":64466,"src":"38843:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64456,"name":"string","nodeType":"ElementaryTypeName","src":"38843:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64459,"mutability":"mutable","name":"toUpper","nameLocation":"38871:7:106","nodeType":"VariableDeclaration","scope":64466,"src":"38866:12:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":64458,"name":"bool","nodeType":"ElementaryTypeName","src":"38866:4:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38842:37:106"},"returnParameters":{"id":64463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64462,"mutability":"mutable","name":"result","nameLocation":"38941:6:106","nodeType":"VariableDeclaration","scope":64466,"src":"38927:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64461,"name":"string","nodeType":"ElementaryTypeName","src":"38927:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38926:22:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64476,"nodeType":"FunctionDefinition","src":"40019:458:106","nodes":[],"body":{"id":64475,"nodeType":"Block","src":"40100:377:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"40162:309:106","statements":[{"nodeType":"YulAssignment","src":"40176:21:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"40192:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40186:5:106"},"nodeType":"YulFunctionCall","src":"40186:11:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"40176:6:106"}]},{"nodeType":"YulVariableDeclaration","src":"40210:10:106","value":{"kind":"number","nodeType":"YulLiteral","src":"40219:1:106","type":"","value":"0"},"variables":[{"name":"n","nodeType":"YulTypedName","src":"40214:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"40270:2:106","statements":[]},"condition":{"arguments":[{"name":"n","nodeType":"YulIdentifier","src":"40245:1:106"},{"name":"s","nodeType":"YulIdentifier","src":"40248:1:106"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"40240:4:106"},"nodeType":"YulFunctionCall","src":"40240:10:106"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"40251:18:106","statements":[{"nodeType":"YulAssignment","src":"40253:14:106","value":{"arguments":[{"name":"n","nodeType":"YulIdentifier","src":"40262:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"40265:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40258:3:106"},"nodeType":"YulFunctionCall","src":"40258:9:106"},"variableNames":[{"name":"n","nodeType":"YulIdentifier","src":"40253:1:106"}]}]},"pre":{"nodeType":"YulBlock","src":"40237:2:106","statements":[]},"src":"40233:39:106"},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"40310:6:106"},{"name":"n","nodeType":"YulIdentifier","src":"40318:1:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40303:6:106"},"nodeType":"YulFunctionCall","src":"40303:17:106"},"nodeType":"YulExpressionStatement","src":"40303:17:106"},{"nodeType":"YulVariableDeclaration","src":"40333:26:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"40346:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"40354:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40342:3:106"},"nodeType":"YulFunctionCall","src":"40342:17:106"},"variables":[{"name":"o","nodeType":"YulTypedName","src":"40337:1:106","type":""}]},{"expression":{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"40379:1:106"},{"name":"s","nodeType":"YulIdentifier","src":"40382:1:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40372:6:106"},"nodeType":"YulFunctionCall","src":"40372:12:106"},"nodeType":"YulExpressionStatement","src":"40372:12:106"},{"expression":{"arguments":[{"arguments":[{"name":"o","nodeType":"YulIdentifier","src":"40408:1:106"},{"name":"n","nodeType":"YulIdentifier","src":"40411:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40404:3:106"},"nodeType":"YulFunctionCall","src":"40404:9:106"},{"kind":"number","nodeType":"YulLiteral","src":"40415:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40397:6:106"},"nodeType":"YulFunctionCall","src":"40397:20:106"},"nodeType":"YulExpressionStatement","src":"40397:20:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"40437:4:106","type":"","value":"0x40"},{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"40447:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"40455:4:106","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40443:3:106"},"nodeType":"YulFunctionCall","src":"40443:17:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40430:6:106"},"nodeType":"YulFunctionCall","src":"40430:31:106"},"nodeType":"YulExpressionStatement","src":"40430:31:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64472,"isOffset":false,"isSlot":false,"src":"40176:6:106","valueSize":1},{"declaration":64472,"isOffset":false,"isSlot":false,"src":"40310:6:106","valueSize":1},{"declaration":64472,"isOffset":false,"isSlot":false,"src":"40346:6:106","valueSize":1},{"declaration":64472,"isOffset":false,"isSlot":false,"src":"40447:6:106","valueSize":1},{"declaration":64469,"isOffset":false,"isSlot":false,"src":"40248:1:106","valueSize":1},{"declaration":64469,"isOffset":false,"isSlot":false,"src":"40382:1:106","valueSize":1}],"id":64474,"nodeType":"InlineAssembly","src":"40153:318:106"}]},"documentation":{"id":64467,"nodeType":"StructuredDocumentation","src":"39892:122:106","text":"@dev Returns a string from a small bytes32 string.\n `s` must be null-terminated, or behavior will be undefined."},"implemented":true,"kind":"function","modifiers":[],"name":"fromSmallString","nameLocation":"40028:15:106","parameters":{"id":64470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64469,"mutability":"mutable","name":"s","nameLocation":"40052:1:106","nodeType":"VariableDeclaration","scope":64476,"src":"40044:9:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":64468,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40044:7:106","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40043:11:106"},"returnParameters":{"id":64473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64472,"mutability":"mutable","name":"result","nameLocation":"40092:6:106","nodeType":"VariableDeclaration","scope":64476,"src":"40078:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64471,"name":"string","nodeType":"ElementaryTypeName","src":"40078:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40077:22:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64486,"nodeType":"FunctionDefinition","src":"40573:339:106","nodes":[],"body":{"id":64485,"nodeType":"Block","src":"40653:259:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"40715:191:106","statements":[{"body":{"nodeType":"YulBlock","src":"40781:2:106","statements":[]},"condition":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"40741:6:106"},{"name":"s","nodeType":"YulIdentifier","src":"40749:1:106"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"40736:4:106"},"nodeType":"YulFunctionCall","src":"40736:15:106"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"40752:28:106","statements":[{"nodeType":"YulAssignment","src":"40754:24:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"40768:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"40776:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40764:3:106"},"nodeType":"YulFunctionCall","src":"40764:14:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"40754:6:106"}]}]},"pre":{"nodeType":"YulBlock","src":"40733:2:106","statements":[]},"src":"40729:54:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"40821:4:106","type":"","value":"0x00"},{"name":"s","nodeType":"YulIdentifier","src":"40827:1:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40814:6:106"},"nodeType":"YulFunctionCall","src":"40814:15:106"},"nodeType":"YulExpressionStatement","src":"40814:15:106"},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"40849:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"40857:4:106","type":"","value":"0x00"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40842:6:106"},"nodeType":"YulFunctionCall","src":"40842:20:106"},"nodeType":"YulExpressionStatement","src":"40842:20:106"},{"nodeType":"YulAssignment","src":"40875:21:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"40891:4:106","type":"","value":"0x00"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40885:5:106"},"nodeType":"YulFunctionCall","src":"40885:11:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"40875:6:106"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64482,"isOffset":false,"isSlot":false,"src":"40741:6:106","valueSize":1},{"declaration":64482,"isOffset":false,"isSlot":false,"src":"40754:6:106","valueSize":1},{"declaration":64482,"isOffset":false,"isSlot":false,"src":"40768:6:106","valueSize":1},{"declaration":64482,"isOffset":false,"isSlot":false,"src":"40849:6:106","valueSize":1},{"declaration":64482,"isOffset":false,"isSlot":false,"src":"40875:6:106","valueSize":1},{"declaration":64479,"isOffset":false,"isSlot":false,"src":"40749:1:106","valueSize":1},{"declaration":64479,"isOffset":false,"isSlot":false,"src":"40827:1:106","valueSize":1}],"id":64484,"nodeType":"InlineAssembly","src":"40706:200:106"}]},"documentation":{"id":64477,"nodeType":"StructuredDocumentation","src":"40483:85:106","text":"@dev Returns the small string, with all bytes after the first null byte zeroized."},"implemented":true,"kind":"function","modifiers":[],"name":"normalizeSmallString","nameLocation":"40582:20:106","parameters":{"id":64480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64479,"mutability":"mutable","name":"s","nameLocation":"40611:1:106","nodeType":"VariableDeclaration","scope":64486,"src":"40603:9:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":64478,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40603:7:106","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40602:11:106"},"returnParameters":{"id":64483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64482,"mutability":"mutable","name":"result","nameLocation":"40645:6:106","nodeType":"VariableDeclaration","scope":64486,"src":"40637:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":64481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40637:7:106","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40636:16:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64496,"nodeType":"FunctionDefinition","src":"40996:422:106","nodes":[],"body":{"id":64495,"nodeType":"Block","src":"41075:343:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"41137:275:106","statements":[{"nodeType":"YulAssignment","src":"41151:18:106","value":{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"41167:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"41161:5:106"},"nodeType":"YulFunctionCall","src":"41161:8:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"41151:6:106"}]},{"body":{"nodeType":"YulBlock","src":"41208:120:106","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"41233:4:106","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"41239:10:106","type":"","value":"0xec92f9a3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41226:6:106"},"nodeType":"YulFunctionCall","src":"41226:24:106"},"nodeType":"YulExpressionStatement","src":"41226:24:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"41303:4:106","type":"","value":"0x1c"},{"kind":"number","nodeType":"YulLiteral","src":"41309:4:106","type":"","value":"0x04"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"41296:6:106"},"nodeType":"YulFunctionCall","src":"41296:18:106"},"nodeType":"YulExpressionStatement","src":"41296:18:106"}]},"condition":{"arguments":[{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"41195:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"41203:2:106","type":"","value":"33"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"41192:2:106"},"nodeType":"YulFunctionCall","src":"41192:14:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"41185:6:106"},"nodeType":"YulFunctionCall","src":"41185:22:106"},"nodeType":"YulIf","src":"41182:146:106"},{"nodeType":"YulAssignment","src":"41341:61:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"41359:1:106","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"41366:2:106","type":"","value":"32"},{"name":"result","nodeType":"YulIdentifier","src":"41370:6:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"41362:3:106"},"nodeType":"YulFunctionCall","src":"41362:15:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"41355:3:106"},"nodeType":"YulFunctionCall","src":"41355:23:106"},{"arguments":[{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"41390:1:106"},{"name":"result","nodeType":"YulIdentifier","src":"41393:6:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41386:3:106"},"nodeType":"YulFunctionCall","src":"41386:14:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"41380:5:106"},"nodeType":"YulFunctionCall","src":"41380:21:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"41351:3:106"},"nodeType":"YulFunctionCall","src":"41351:51:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"41341:6:106"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64492,"isOffset":false,"isSlot":false,"src":"41151:6:106","valueSize":1},{"declaration":64492,"isOffset":false,"isSlot":false,"src":"41195:6:106","valueSize":1},{"declaration":64492,"isOffset":false,"isSlot":false,"src":"41341:6:106","valueSize":1},{"declaration":64492,"isOffset":false,"isSlot":false,"src":"41370:6:106","valueSize":1},{"declaration":64492,"isOffset":false,"isSlot":false,"src":"41393:6:106","valueSize":1},{"declaration":64489,"isOffset":false,"isSlot":false,"src":"41167:1:106","valueSize":1},{"declaration":64489,"isOffset":false,"isSlot":false,"src":"41390:1:106","valueSize":1}],"id":64494,"nodeType":"InlineAssembly","src":"41128:284:106"}]},"documentation":{"id":64487,"nodeType":"StructuredDocumentation","src":"40918:73:106","text":"@dev Returns the string as a normalized null-terminated small string."},"implemented":true,"kind":"function","modifiers":[],"name":"toSmallString","nameLocation":"41005:13:106","parameters":{"id":64490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64489,"mutability":"mutable","name":"s","nameLocation":"41033:1:106","nodeType":"VariableDeclaration","scope":64496,"src":"41019:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64488,"name":"string","nodeType":"ElementaryTypeName","src":"41019:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41018:17:106"},"returnParameters":{"id":64493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64492,"mutability":"mutable","name":"result","nameLocation":"41067:6:106","nodeType":"VariableDeclaration","scope":64496,"src":"41059:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":64491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41059:7:106","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41058:16:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64512,"nodeType":"FunctionDefinition","src":"41554:131:106","nodes":[],"body":{"id":64511,"nodeType":"Block","src":"41637:48:106","nodes":[],"statements":[{"expression":{"id":64509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64504,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64502,"src":"41647:6:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64506,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64499,"src":"41663:7:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":64507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"41672:5:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64505,"name":"toCase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64466,"src":"41656:6:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,bool) pure returns (string memory)"}},"id":64508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41656:22:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"41647:31:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":64510,"nodeType":"ExpressionStatement","src":"41647:31:106"}]},"documentation":{"id":64497,"nodeType":"StructuredDocumentation","src":"41424:125:106","text":"@dev Returns a lowercased copy of the string.\n WARNING! This function is only compatible with 7-bit ASCII strings."},"implemented":true,"kind":"function","modifiers":[],"name":"lower","nameLocation":"41563:5:106","parameters":{"id":64500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64499,"mutability":"mutable","name":"subject","nameLocation":"41583:7:106","nodeType":"VariableDeclaration","scope":64512,"src":"41569:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64498,"name":"string","nodeType":"ElementaryTypeName","src":"41569:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41568:23:106"},"returnParameters":{"id":64503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64502,"mutability":"mutable","name":"result","nameLocation":"41629:6:106","nodeType":"VariableDeclaration","scope":64512,"src":"41615:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64501,"name":"string","nodeType":"ElementaryTypeName","src":"41615:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41614:22:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64528,"nodeType":"FunctionDefinition","src":"41822:130:106","nodes":[],"body":{"id":64527,"nodeType":"Block","src":"41905:47:106","nodes":[],"statements":[{"expression":{"id":64525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64520,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64518,"src":"41915:6:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64522,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64515,"src":"41931:7:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"74727565","id":64523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"41940:4:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64521,"name":"toCase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64466,"src":"41924:6:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,bool) pure returns (string memory)"}},"id":64524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41924:21:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"41915:30:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":64526,"nodeType":"ExpressionStatement","src":"41915:30:106"}]},"documentation":{"id":64513,"nodeType":"StructuredDocumentation","src":"41691:126:106","text":"@dev Returns an UPPERCASED copy of the string.\n WARNING! This function is only compatible with 7-bit ASCII strings."},"implemented":true,"kind":"function","modifiers":[],"name":"upper","nameLocation":"41831:5:106","parameters":{"id":64516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64515,"mutability":"mutable","name":"subject","nameLocation":"41851:7:106","nodeType":"VariableDeclaration","scope":64528,"src":"41837:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64514,"name":"string","nodeType":"ElementaryTypeName","src":"41837:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41836:23:106"},"returnParameters":{"id":64519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64518,"mutability":"mutable","name":"result","nameLocation":"41897:6:106","nodeType":"VariableDeclaration","scope":64528,"src":"41883:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64517,"name":"string","nodeType":"ElementaryTypeName","src":"41883:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41882:22:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64538,"nodeType":"FunctionDefinition","src":"42019:1454:106","nodes":[],"body":{"id":64537,"nodeType":"Block","src":"42101:1372:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"42163:1304:106","statements":[{"nodeType":"YulVariableDeclaration","src":"42177:27:106","value":{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"42192:1:106"},{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"42201:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"42195:5:106"},"nodeType":"YulFunctionCall","src":"42195:8:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42188:3:106"},"nodeType":"YulFunctionCall","src":"42188:16:106"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"42181:3:106","type":""}]},{"nodeType":"YulAssignment","src":"42217:32:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42237:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"42231:5:106"},"nodeType":"YulFunctionCall","src":"42231:11:106"},{"kind":"number","nodeType":"YulLiteral","src":"42244:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42227:3:106"},"nodeType":"YulFunctionCall","src":"42227:22:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"42217:6:106"}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42443:4:106","type":"","value":"0x1f"},{"kind":"number","nodeType":"YulLiteral","src":"42449:8:106","type":"","value":"0x900094"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42436:6:106"},"nodeType":"YulFunctionCall","src":"42436:22:106"},"nodeType":"YulExpressionStatement","src":"42436:22:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42478:4:106","type":"","value":"0x08"},{"kind":"number","nodeType":"YulLiteral","src":"42484:14:106","type":"","value":"0xc0000000a6ab"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42471:6:106"},"nodeType":"YulFunctionCall","src":"42471:28:106"},"nodeType":"YulExpressionStatement","src":"42471:28:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42591:4:106","type":"","value":"0x00"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42601:2:106","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"42605:50:106","type":"","value":"0x2671756f743b26616d703b262333393b266c743b2667743b"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"42597:3:106"},"nodeType":"YulFunctionCall","src":"42597:59:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42584:6:106"},"nodeType":"YulFunctionCall","src":"42584:73:106"},"nodeType":"YulExpressionStatement","src":"42584:73:106"},{"body":{"nodeType":"YulBlock","src":"42699:483:106","statements":[{"nodeType":"YulAssignment","src":"42717:14:106","value":{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"42726:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"42729:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42722:3:106"},"nodeType":"YulFunctionCall","src":"42722:9:106"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"42717:1:106"}]},{"nodeType":"YulVariableDeclaration","src":"42748:28:106","value":{"arguments":[{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"42767:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"42761:5:106"},"nodeType":"YulFunctionCall","src":"42761:8:106"},{"kind":"number","nodeType":"YulLiteral","src":"42771:4:106","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"42757:3:106"},"nodeType":"YulFunctionCall","src":"42757:19:106"},"variables":[{"name":"c","nodeType":"YulTypedName","src":"42752:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"42891:132:106","statements":[{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"42921:6:106"},{"name":"c","nodeType":"YulIdentifier","src":"42929:1:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"42913:7:106"},"nodeType":"YulFunctionCall","src":"42913:18:106"},"nodeType":"YulExpressionStatement","src":"42913:18:106"},{"nodeType":"YulAssignment","src":"42952:24:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"42966:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"42974:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42962:3:106"},"nodeType":"YulFunctionCall","src":"42962:14:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"42952:6:106"}]},{"nodeType":"YulContinue","src":"42997:8:106"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"c","nodeType":"YulIdentifier","src":"42863:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"42866:1:106","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"42859:3:106"},"nodeType":"YulFunctionCall","src":"42859:9:106"},{"kind":"number","nodeType":"YulLiteral","src":"42870:18:106","type":"","value":"0x500000c400000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"42855:3:106"},"nodeType":"YulFunctionCall","src":"42855:34:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"42848:6:106"},"nodeType":"YulFunctionCall","src":"42848:42:106"},"nodeType":"YulIf","src":"42845:178:106"},{"nodeType":"YulVariableDeclaration","src":"43040:27:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43053:3:106","type":"","value":"248"},{"arguments":[{"name":"c","nodeType":"YulIdentifier","src":"43064:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"43058:5:106"},"nodeType":"YulFunctionCall","src":"43058:8:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"43049:3:106"},"nodeType":"YulFunctionCall","src":"43049:18:106"},"variables":[{"name":"t","nodeType":"YulTypedName","src":"43044:1:106","type":""}]},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"43091:6:106"},{"arguments":[{"arguments":[{"name":"t","nodeType":"YulIdentifier","src":"43109:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"43112:4:106","type":"","value":"0x1f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"43105:3:106"},"nodeType":"YulFunctionCall","src":"43105:12:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"43099:5:106"},"nodeType":"YulFunctionCall","src":"43099:19:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43084:6:106"},"nodeType":"YulFunctionCall","src":"43084:35:106"},"nodeType":"YulExpressionStatement","src":"43084:35:106"},{"nodeType":"YulAssignment","src":"43136:32:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"43150:6:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43162:1:106","type":"","value":"5"},{"name":"t","nodeType":"YulIdentifier","src":"43165:1:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"43158:3:106"},"nodeType":"YulFunctionCall","src":"43158:9:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43146:3:106"},"nodeType":"YulFunctionCall","src":"43146:22:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"43136:6:106"}]}]},"condition":{"arguments":[{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"42687:1:106"},{"name":"end","nodeType":"YulIdentifier","src":"42690:3:106"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"42684:2:106"},"nodeType":"YulFunctionCall","src":"42684:10:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"42677:6:106"},"nodeType":"YulFunctionCall","src":"42677:18:106"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"42696:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"42674:2:106","statements":[]},"src":"42670:512:106"},{"nodeType":"YulVariableDeclaration","src":"43195:18:106","value":{"name":"result","nodeType":"YulIdentifier","src":"43207:6:106"},"variables":[{"name":"last","nodeType":"YulTypedName","src":"43199:4:106","type":""}]},{"expression":{"arguments":[{"name":"last","nodeType":"YulIdentifier","src":"43233:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"43239:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43226:6:106"},"nodeType":"YulFunctionCall","src":"43226:15:106"},"nodeType":"YulExpressionStatement","src":"43226:15:106"},{"nodeType":"YulAssignment","src":"43292:21:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43308:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"43302:5:106"},"nodeType":"YulFunctionCall","src":"43302:11:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"43292:6:106"}]},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"43333:6:106"},{"arguments":[{"name":"last","nodeType":"YulIdentifier","src":"43345:4:106"},{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"43355:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"43363:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43351:3:106"},"nodeType":"YulFunctionCall","src":"43351:17:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"43341:3:106"},"nodeType":"YulFunctionCall","src":"43341:28:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43326:6:106"},"nodeType":"YulFunctionCall","src":"43326:44:106"},"nodeType":"YulExpressionStatement","src":"43326:44:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43411:4:106","type":"","value":"0x40"},{"arguments":[{"name":"last","nodeType":"YulIdentifier","src":"43421:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"43427:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43417:3:106"},"nodeType":"YulFunctionCall","src":"43417:15:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43404:6:106"},"nodeType":"YulFunctionCall","src":"43404:29:106"},"nodeType":"YulExpressionStatement","src":"43404:29:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64534,"isOffset":false,"isSlot":false,"src":"42217:6:106","valueSize":1},{"declaration":64534,"isOffset":false,"isSlot":false,"src":"42921:6:106","valueSize":1},{"declaration":64534,"isOffset":false,"isSlot":false,"src":"42952:6:106","valueSize":1},{"declaration":64534,"isOffset":false,"isSlot":false,"src":"42966:6:106","valueSize":1},{"declaration":64534,"isOffset":false,"isSlot":false,"src":"43091:6:106","valueSize":1},{"declaration":64534,"isOffset":false,"isSlot":false,"src":"43136:6:106","valueSize":1},{"declaration":64534,"isOffset":false,"isSlot":false,"src":"43150:6:106","valueSize":1},{"declaration":64534,"isOffset":false,"isSlot":false,"src":"43207:6:106","valueSize":1},{"declaration":64534,"isOffset":false,"isSlot":false,"src":"43292:6:106","valueSize":1},{"declaration":64534,"isOffset":false,"isSlot":false,"src":"43333:6:106","valueSize":1},{"declaration":64534,"isOffset":false,"isSlot":false,"src":"43355:6:106","valueSize":1},{"declaration":64531,"isOffset":false,"isSlot":false,"src":"42192:1:106","valueSize":1},{"declaration":64531,"isOffset":false,"isSlot":false,"src":"42201:1:106","valueSize":1},{"declaration":64531,"isOffset":false,"isSlot":false,"src":"42687:1:106","valueSize":1},{"declaration":64531,"isOffset":false,"isSlot":false,"src":"42717:1:106","valueSize":1},{"declaration":64531,"isOffset":false,"isSlot":false,"src":"42726:1:106","valueSize":1},{"declaration":64531,"isOffset":false,"isSlot":false,"src":"42767:1:106","valueSize":1}],"id":64536,"nodeType":"InlineAssembly","src":"42154:1313:106"}]},"documentation":{"id":64529,"nodeType":"StructuredDocumentation","src":"41958:56:106","text":"@dev Escapes the string to be used within HTML tags."},"implemented":true,"kind":"function","modifiers":[],"name":"escapeHTML","nameLocation":"42028:10:106","parameters":{"id":64532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64531,"mutability":"mutable","name":"s","nameLocation":"42053:1:106","nodeType":"VariableDeclaration","scope":64538,"src":"42039:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64530,"name":"string","nodeType":"ElementaryTypeName","src":"42039:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42038:17:106"},"returnParameters":{"id":64535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64534,"mutability":"mutable","name":"result","nameLocation":"42093:6:106","nodeType":"VariableDeclaration","scope":64538,"src":"42079:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64533,"name":"string","nodeType":"ElementaryTypeName","src":"42079:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42078:22:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64550,"nodeType":"FunctionDefinition","src":"43638:2391:106","nodes":[],"body":{"id":64549,"nodeType":"Block","src":"43770:2259:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"43832:2191:106","statements":[{"nodeType":"YulVariableDeclaration","src":"43846:27:106","value":{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"43861:1:106"},{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"43870:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"43864:5:106"},"nodeType":"YulFunctionCall","src":"43864:8:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43857:3:106"},"nodeType":"YulFunctionCall","src":"43857:16:106"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"43850:3:106","type":""}]},{"nodeType":"YulAssignment","src":"43886:32:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43906:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"43900:5:106"},"nodeType":"YulFunctionCall","src":"43900:11:106"},{"kind":"number","nodeType":"YulLiteral","src":"43913:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43896:3:106"},"nodeType":"YulFunctionCall","src":"43896:22:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"43886:6:106"}]},{"body":{"nodeType":"YulBlock","src":"43950:92:106","statements":[{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"43976:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"43984:2:106","type":"","value":"34"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"43968:7:106"},"nodeType":"YulFunctionCall","src":"43968:19:106"},"nodeType":"YulExpressionStatement","src":"43968:19:106"},{"nodeType":"YulAssignment","src":"44004:24:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"44018:1:106","type":"","value":"1"},{"name":"result","nodeType":"YulIdentifier","src":"44021:6:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44014:3:106"},"nodeType":"YulFunctionCall","src":"44014:14:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"44004:6:106"}]}]},"condition":{"name":"addDoubleQuotes","nodeType":"YulIdentifier","src":"43934:15:106"},"nodeType":"YulIf","src":"43931:111:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"44289:4:106","type":"","value":"0x15"},{"kind":"number","nodeType":"YulLiteral","src":"44295:58:106","type":"","value":"0x5c75303030303031323334353637383961626364656662746e006672"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"44282:6:106"},"nodeType":"YulFunctionCall","src":"44282:72:106"},"nodeType":"YulExpressionStatement","src":"44282:72:106"},{"nodeType":"YulVariableDeclaration","src":"44419:39:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"44435:4:106","type":"","value":"0x22"},{"kind":"number","nodeType":"YulLiteral","src":"44441:1:106","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"44431:3:106"},"nodeType":"YulFunctionCall","src":"44431:12:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"44449:4:106","type":"","value":"0x5c"},{"kind":"number","nodeType":"YulLiteral","src":"44455:1:106","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"44445:3:106"},"nodeType":"YulFunctionCall","src":"44445:12:106"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"44428:2:106"},"nodeType":"YulFunctionCall","src":"44428:30:106"},"variables":[{"name":"e","nodeType":"YulTypedName","src":"44423:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"44500:1114:106","statements":[{"nodeType":"YulAssignment","src":"44518:14:106","value":{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"44527:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"44530:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44523:3:106"},"nodeType":"YulFunctionCall","src":"44523:9:106"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"44518:1:106"}]},{"nodeType":"YulVariableDeclaration","src":"44549:28:106","value":{"arguments":[{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"44568:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"44562:5:106"},"nodeType":"YulFunctionCall","src":"44562:8:106"},{"kind":"number","nodeType":"YulLiteral","src":"44572:4:106","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"44558:3:106"},"nodeType":"YulFunctionCall","src":"44558:19:106"},"variables":[{"name":"c","nodeType":"YulTypedName","src":"44553:1:106","type":""}]},{"body":{"nodeType":"YulBlock","src":"44617:438:106","statements":[{"body":{"nodeType":"YulBlock","src":"44668:197:106","statements":[{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"44751:6:106"},{"name":"c","nodeType":"YulIdentifier","src":"44759:1:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"44743:7:106"},"nodeType":"YulFunctionCall","src":"44743:18:106"},"nodeType":"YulExpressionStatement","src":"44743:18:106"},{"nodeType":"YulAssignment","src":"44786:24:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"44800:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"44808:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44796:3:106"},"nodeType":"YulFunctionCall","src":"44796:14:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"44786:6:106"}]},{"nodeType":"YulContinue","src":"44835:8:106"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"c","nodeType":"YulIdentifier","src":"44657:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"44660:1:106","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"44653:3:106"},"nodeType":"YulFunctionCall","src":"44653:9:106"},{"name":"e","nodeType":"YulIdentifier","src":"44664:1:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"44649:3:106"},"nodeType":"YulFunctionCall","src":"44649:17:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"44642:6:106"},"nodeType":"YulFunctionCall","src":"44642:25:106"},"nodeType":"YulIf","src":"44639:226:106"},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"44894:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"44902:4:106","type":"","value":"0x5c"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"44886:7:106"},"nodeType":"YulFunctionCall","src":"44886:21:106"},"nodeType":"YulExpressionStatement","src":"44886:21:106"},{"expression":{"arguments":[{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"44949:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"44957:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44945:3:106"},"nodeType":"YulFunctionCall","src":"44945:14:106"},{"name":"c","nodeType":"YulIdentifier","src":"44961:1:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"44937:7:106"},"nodeType":"YulFunctionCall","src":"44937:26:106"},"nodeType":"YulExpressionStatement","src":"44937:26:106"},{"nodeType":"YulAssignment","src":"44984:24:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"44998:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"45006:1:106","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44994:3:106"},"nodeType":"YulFunctionCall","src":"44994:14:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"44984:6:106"}]},{"nodeType":"YulContinue","src":"45029:8:106"}]},"condition":{"arguments":[{"arguments":[{"name":"c","nodeType":"YulIdentifier","src":"44607:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"44610:4:106","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"44604:2:106"},"nodeType":"YulFunctionCall","src":"44604:11:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"44597:6:106"},"nodeType":"YulFunctionCall","src":"44597:19:106"},"nodeType":"YulIf","src":"44594:461:106"},{"body":{"nodeType":"YulBlock","src":"45106:348:106","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"45196:4:106","type":"","value":"0x1d"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"45212:1:106","type":"","value":"4"},{"name":"c","nodeType":"YulIdentifier","src":"45215:1:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"45208:3:106"},"nodeType":"YulFunctionCall","src":"45208:9:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"45202:5:106"},"nodeType":"YulFunctionCall","src":"45202:16:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"45188:7:106"},"nodeType":"YulFunctionCall","src":"45188:31:106"},"nodeType":"YulExpressionStatement","src":"45188:31:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"45262:4:106","type":"","value":"0x1e"},{"arguments":[{"arguments":[{"name":"c","nodeType":"YulIdentifier","src":"45278:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"45281:2:106","type":"","value":"15"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"45274:3:106"},"nodeType":"YulFunctionCall","src":"45274:10:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"45268:5:106"},"nodeType":"YulFunctionCall","src":"45268:17:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"45254:7:106"},"nodeType":"YulFunctionCall","src":"45254:32:106"},"nodeType":"YulExpressionStatement","src":"45254:32:106"},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"45328:6:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"45342:4:106","type":"","value":"0x19"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"45336:5:106"},"nodeType":"YulFunctionCall","src":"45336:11:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"45321:6:106"},"nodeType":"YulFunctionCall","src":"45321:27:106"},"nodeType":"YulExpressionStatement","src":"45321:27:106"},{"nodeType":"YulAssignment","src":"45383:24:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"45397:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"45405:1:106","type":"","value":"6"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"45393:3:106"},"nodeType":"YulFunctionCall","src":"45393:14:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"45383:6:106"}]},{"nodeType":"YulContinue","src":"45428:8:106"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"c","nodeType":"YulIdentifier","src":"45090:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"45093:1:106","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"45086:3:106"},"nodeType":"YulFunctionCall","src":"45086:9:106"},{"kind":"number","nodeType":"YulLiteral","src":"45097:6:106","type":"","value":"0x3700"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"45082:3:106"},"nodeType":"YulFunctionCall","src":"45082:22:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"45075:6:106"},"nodeType":"YulFunctionCall","src":"45075:30:106"},"nodeType":"YulIf","src":"45072:382:106"},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"45479:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"45487:4:106","type":"","value":"0x5c"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"45471:7:106"},"nodeType":"YulFunctionCall","src":"45471:21:106"},"nodeType":"YulExpressionStatement","src":"45471:21:106"},{"expression":{"arguments":[{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"45530:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"45538:1:106","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"45526:3:106"},"nodeType":"YulFunctionCall","src":"45526:14:106"},{"arguments":[{"arguments":[{"name":"c","nodeType":"YulIdentifier","src":"45552:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"45555:1:106","type":"","value":"8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"45548:3:106"},"nodeType":"YulFunctionCall","src":"45548:9:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"45542:5:106"},"nodeType":"YulFunctionCall","src":"45542:16:106"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"45518:7:106"},"nodeType":"YulFunctionCall","src":"45518:41:106"},"nodeType":"YulExpressionStatement","src":"45518:41:106"},{"nodeType":"YulAssignment","src":"45576:24:106","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"45590:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"45598:1:106","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"45586:3:106"},"nodeType":"YulFunctionCall","src":"45586:14:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"45576:6:106"}]}]},"condition":{"arguments":[{"arguments":[{"name":"s","nodeType":"YulIdentifier","src":"44488:1:106"},{"name":"end","nodeType":"YulIdentifier","src":"44491:3:106"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"44485:2:106"},"nodeType":"YulFunctionCall","src":"44485:10:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"44478:6:106"},"nodeType":"YulFunctionCall","src":"44478:18:106"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"44497:2:106","statements":[]},"pre":{"nodeType":"YulBlock","src":"44475:2:106","statements":[]},"src":"44471:1143:106"},{"body":{"nodeType":"YulBlock","src":"45646:92:106","statements":[{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"45672:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"45680:2:106","type":"","value":"34"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"45664:7:106"},"nodeType":"YulFunctionCall","src":"45664:19:106"},"nodeType":"YulExpressionStatement","src":"45664:19:106"},{"nodeType":"YulAssignment","src":"45700:24:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"45714:1:106","type":"","value":"1"},{"name":"result","nodeType":"YulIdentifier","src":"45717:6:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"45710:3:106"},"nodeType":"YulFunctionCall","src":"45710:14:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"45700:6:106"}]}]},"condition":{"name":"addDoubleQuotes","nodeType":"YulIdentifier","src":"45630:15:106"},"nodeType":"YulIf","src":"45627:111:106"},{"nodeType":"YulVariableDeclaration","src":"45751:18:106","value":{"name":"result","nodeType":"YulIdentifier","src":"45763:6:106"},"variables":[{"name":"last","nodeType":"YulTypedName","src":"45755:4:106","type":""}]},{"expression":{"arguments":[{"name":"last","nodeType":"YulIdentifier","src":"45789:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"45795:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"45782:6:106"},"nodeType":"YulFunctionCall","src":"45782:15:106"},"nodeType":"YulExpressionStatement","src":"45782:15:106"},{"nodeType":"YulAssignment","src":"45848:21:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"45864:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"45858:5:106"},"nodeType":"YulFunctionCall","src":"45858:11:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"45848:6:106"}]},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"45889:6:106"},{"arguments":[{"name":"last","nodeType":"YulIdentifier","src":"45901:4:106"},{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"45911:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"45919:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"45907:3:106"},"nodeType":"YulFunctionCall","src":"45907:17:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"45897:3:106"},"nodeType":"YulFunctionCall","src":"45897:28:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"45882:6:106"},"nodeType":"YulFunctionCall","src":"45882:44:106"},"nodeType":"YulExpressionStatement","src":"45882:44:106"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"45967:4:106","type":"","value":"0x40"},{"arguments":[{"name":"last","nodeType":"YulIdentifier","src":"45977:4:106"},{"kind":"number","nodeType":"YulLiteral","src":"45983:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"45973:3:106"},"nodeType":"YulFunctionCall","src":"45973:15:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"45960:6:106"},"nodeType":"YulFunctionCall","src":"45960:29:106"},"nodeType":"YulExpressionStatement","src":"45960:29:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64543,"isOffset":false,"isSlot":false,"src":"43934:15:106","valueSize":1},{"declaration":64543,"isOffset":false,"isSlot":false,"src":"45630:15:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"43886:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"43976:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"44004:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"44021:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"44751:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"44786:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"44800:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"44894:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"44949:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"44984:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"44998:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"45328:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"45383:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"45397:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"45479:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"45530:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"45576:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"45590:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"45672:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"45700:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"45717:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"45763:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"45848:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"45889:6:106","valueSize":1},{"declaration":64546,"isOffset":false,"isSlot":false,"src":"45911:6:106","valueSize":1},{"declaration":64541,"isOffset":false,"isSlot":false,"src":"43861:1:106","valueSize":1},{"declaration":64541,"isOffset":false,"isSlot":false,"src":"43870:1:106","valueSize":1},{"declaration":64541,"isOffset":false,"isSlot":false,"src":"44488:1:106","valueSize":1},{"declaration":64541,"isOffset":false,"isSlot":false,"src":"44518:1:106","valueSize":1},{"declaration":64541,"isOffset":false,"isSlot":false,"src":"44527:1:106","valueSize":1},{"declaration":64541,"isOffset":false,"isSlot":false,"src":"44568:1:106","valueSize":1}],"id":64548,"nodeType":"InlineAssembly","src":"43823:2200:106"}]},"documentation":{"id":64539,"nodeType":"StructuredDocumentation","src":"43479:154:106","text":"@dev Escapes the string to be used within double-quotes in a JSON.\n If `addDoubleQuotes` is true, the result will be enclosed in double-quotes."},"implemented":true,"kind":"function","modifiers":[],"name":"escapeJSON","nameLocation":"43647:10:106","parameters":{"id":64544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64541,"mutability":"mutable","name":"s","nameLocation":"43672:1:106","nodeType":"VariableDeclaration","scope":64550,"src":"43658:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64540,"name":"string","nodeType":"ElementaryTypeName","src":"43658:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64543,"mutability":"mutable","name":"addDoubleQuotes","nameLocation":"43680:15:106","nodeType":"VariableDeclaration","scope":64550,"src":"43675:20:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":64542,"name":"bool","nodeType":"ElementaryTypeName","src":"43675:4:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43657:39:106"},"returnParameters":{"id":64547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64546,"mutability":"mutable","name":"result","nameLocation":"43758:6:106","nodeType":"VariableDeclaration","scope":64550,"src":"43744:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64545,"name":"string","nodeType":"ElementaryTypeName","src":"43744:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43743:22:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64566,"nodeType":"FunctionDefinition","src":"46110:128:106","nodes":[],"body":{"id":64565,"nodeType":"Block","src":"46192:46:106","nodes":[],"statements":[{"expression":{"id":64563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64558,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64556,"src":"46202:6:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64560,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64553,"src":"46222:1:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":64561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"46225:5:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64559,"name":"escapeJSON","nodeType":"Identifier","overloadedDeclarations":[64550,64566],"referencedDeclaration":64550,"src":"46211:10:106","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,bool) pure returns (string memory)"}},"id":64562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46211:20:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"46202:29:106","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":64564,"nodeType":"ExpressionStatement","src":"46202:29:106"}]},"documentation":{"id":64551,"nodeType":"StructuredDocumentation","src":"46035:70:106","text":"@dev Escapes the string to be used within double-quotes in a JSON."},"implemented":true,"kind":"function","modifiers":[],"name":"escapeJSON","nameLocation":"46119:10:106","parameters":{"id":64554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64553,"mutability":"mutable","name":"s","nameLocation":"46144:1:106","nodeType":"VariableDeclaration","scope":64566,"src":"46130:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64552,"name":"string","nodeType":"ElementaryTypeName","src":"46130:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46129:17:106"},"returnParameters":{"id":64557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64556,"mutability":"mutable","name":"result","nameLocation":"46184:6:106","nodeType":"VariableDeclaration","scope":64566,"src":"46170:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64555,"name":"string","nodeType":"ElementaryTypeName","src":"46170:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46169:22:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64578,"nodeType":"FunctionDefinition","src":"46289:256:106","nodes":[],"body":{"id":64577,"nodeType":"Block","src":"46371:174:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"46433:106:106","statements":[{"nodeType":"YulAssignment","src":"46447:82:106","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"46474:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"46477:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"46470:3:106"},"nodeType":"YulFunctionCall","src":"46470:12:106"},{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"46490:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"46484:5:106"},"nodeType":"YulFunctionCall","src":"46484:8:106"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"46460:9:106"},"nodeType":"YulFunctionCall","src":"46460:33:106"},{"arguments":[{"arguments":[{"name":"b","nodeType":"YulIdentifier","src":"46509:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"46512:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"46505:3:106"},"nodeType":"YulFunctionCall","src":"46505:12:106"},{"arguments":[{"name":"b","nodeType":"YulIdentifier","src":"46525:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"46519:5:106"},"nodeType":"YulFunctionCall","src":"46519:8:106"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"46495:9:106"},"nodeType":"YulFunctionCall","src":"46495:33:106"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"46457:2:106"},"nodeType":"YulFunctionCall","src":"46457:72:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"46447:6:106"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64569,"isOffset":false,"isSlot":false,"src":"46474:1:106","valueSize":1},{"declaration":64569,"isOffset":false,"isSlot":false,"src":"46490:1:106","valueSize":1},{"declaration":64571,"isOffset":false,"isSlot":false,"src":"46509:1:106","valueSize":1},{"declaration":64571,"isOffset":false,"isSlot":false,"src":"46525:1:106","valueSize":1},{"declaration":64574,"isOffset":false,"isSlot":false,"src":"46447:6:106","valueSize":1}],"id":64576,"nodeType":"InlineAssembly","src":"46424:115:106"}]},"documentation":{"id":64567,"nodeType":"StructuredDocumentation","src":"46244:40:106","text":"@dev Returns whether `a` equals `b`."},"implemented":true,"kind":"function","modifiers":[],"name":"eq","nameLocation":"46298:2:106","parameters":{"id":64572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64569,"mutability":"mutable","name":"a","nameLocation":"46315:1:106","nodeType":"VariableDeclaration","scope":64578,"src":"46301:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64568,"name":"string","nodeType":"ElementaryTypeName","src":"46301:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64571,"mutability":"mutable","name":"b","nameLocation":"46332:1:106","nodeType":"VariableDeclaration","scope":64578,"src":"46318:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64570,"name":"string","nodeType":"ElementaryTypeName","src":"46318:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46300:34:106"},"returnParameters":{"id":64575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64574,"mutability":"mutable","name":"result","nameLocation":"46363:6:106","nodeType":"VariableDeclaration","scope":64578,"src":"46358:11:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":64573,"name":"bool","nodeType":"ElementaryTypeName","src":"46358:4:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46357:13:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64590,"nodeType":"FunctionDefinition","src":"46641:851:106","nodes":[],"body":{"id":64589,"nodeType":"Block","src":"46718:774:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"46780:706:106","statements":[{"nodeType":"YulVariableDeclaration","src":"46872:46:106","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"46889:1:106","type":"","value":"7"},{"arguments":[{"arguments":[{"arguments":[{"name":"b","nodeType":"YulIdentifier","src":"46907:1:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"46900:6:106"},"nodeType":"YulFunctionCall","src":"46900:9:106"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"46896:3:106"},"nodeType":"YulFunctionCall","src":"46896:14:106"},{"kind":"number","nodeType":"YulLiteral","src":"46912:3:106","type":"","value":"255"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"46892:3:106"},"nodeType":"YulFunctionCall","src":"46892:24:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"46885:3:106"},"nodeType":"YulFunctionCall","src":"46885:32:106"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"46881:3:106"},"nodeType":"YulFunctionCall","src":"46881:37:106"},"variables":[{"name":"m","nodeType":"YulTypedName","src":"46876:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"46948:45:106","value":{"arguments":[{"arguments":[{"name":"m","nodeType":"YulIdentifier","src":"46964:1:106"},{"arguments":[{"name":"b","nodeType":"YulIdentifier","src":"46970:1:106"},{"arguments":[{"name":"m","nodeType":"YulIdentifier","src":"46977:1:106"},{"arguments":[{"name":"b","nodeType":"YulIdentifier","src":"46984:1:106"},{"name":"m","nodeType":"YulIdentifier","src":"46987:1:106"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"46980:3:106"},"nodeType":"YulFunctionCall","src":"46980:9:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"46973:3:106"},"nodeType":"YulFunctionCall","src":"46973:17:106"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"46967:2:106"},"nodeType":"YulFunctionCall","src":"46967:24:106"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"46961:2:106"},"nodeType":"YulFunctionCall","src":"46961:31:106"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"46957:3:106"},"nodeType":"YulFunctionCall","src":"46957:36:106"},"variables":[{"name":"x","nodeType":"YulTypedName","src":"46952:1:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"47006:44:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"47019:1:106","type":"","value":"7"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"47040:3:106","type":"","value":"128"},{"name":"x","nodeType":"YulIdentifier","src":"47045:1:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"47036:3:106"},"nodeType":"YulFunctionCall","src":"47036:11:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"47029:6:106"},"nodeType":"YulFunctionCall","src":"47029:19:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"47022:6:106"},"nodeType":"YulFunctionCall","src":"47022:27:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"47015:3:106"},"nodeType":"YulFunctionCall","src":"47015:35:106"},"variables":[{"name":"r","nodeType":"YulTypedName","src":"47010:1:106","type":""}]},{"nodeType":"YulAssignment","src":"47063:54:106","value":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"47071:1:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"47078:1:106","type":"","value":"6"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"47099:2:106","type":"","value":"64"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"47107:1:106"},{"name":"x","nodeType":"YulIdentifier","src":"47110:1:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"47103:3:106"},"nodeType":"YulFunctionCall","src":"47103:9:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"47095:3:106"},"nodeType":"YulFunctionCall","src":"47095:18:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"47088:6:106"},"nodeType":"YulFunctionCall","src":"47088:26:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"47081:6:106"},"nodeType":"YulFunctionCall","src":"47081:34:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"47074:3:106"},"nodeType":"YulFunctionCall","src":"47074:42:106"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"47068:2:106"},"nodeType":"YulFunctionCall","src":"47068:49:106"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"47063:1:106"}]},{"nodeType":"YulAssignment","src":"47130:45:106","value":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"47138:1:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"47145:1:106","type":"","value":"5"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"47151:10:106","type":"","value":"0xffffffff"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"47167:1:106"},{"name":"x","nodeType":"YulIdentifier","src":"47170:1:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"47163:3:106"},"nodeType":"YulFunctionCall","src":"47163:9:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"47148:2:106"},"nodeType":"YulFunctionCall","src":"47148:25:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"47141:3:106"},"nodeType":"YulFunctionCall","src":"47141:33:106"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"47135:2:106"},"nodeType":"YulFunctionCall","src":"47135:40:106"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"47130:1:106"}]},{"nodeType":"YulAssignment","src":"47188:41:106","value":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"47196:1:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"47203:1:106","type":"","value":"4"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"47209:6:106","type":"","value":"0xffff"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"47221:1:106"},{"name":"x","nodeType":"YulIdentifier","src":"47224:1:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"47217:3:106"},"nodeType":"YulFunctionCall","src":"47217:9:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"47206:2:106"},"nodeType":"YulFunctionCall","src":"47206:21:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"47199:3:106"},"nodeType":"YulFunctionCall","src":"47199:29:106"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"47193:2:106"},"nodeType":"YulFunctionCall","src":"47193:36:106"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"47188:1:106"}]},{"nodeType":"YulAssignment","src":"47242:39:106","value":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"47250:1:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"47257:1:106","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"47263:4:106","type":"","value":"0xff"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"47273:1:106"},{"name":"x","nodeType":"YulIdentifier","src":"47276:1:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"47269:3:106"},"nodeType":"YulFunctionCall","src":"47269:9:106"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"47260:2:106"},"nodeType":"YulFunctionCall","src":"47260:19:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"47253:3:106"},"nodeType":"YulFunctionCall","src":"47253:27:106"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"47247:2:106"},"nodeType":"YulFunctionCall","src":"47247:34:106"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"47242:1:106"}]},{"nodeType":"YulAssignment","src":"47337:139:106","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"47359:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"47353:5:106"},"nodeType":"YulFunctionCall","src":"47353:8:106"},{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"47374:1:106"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"47367:6:106"},"nodeType":"YulFunctionCall","src":"47367:9:106"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"47382:2:106","type":"","value":"31"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"47390:1:106","type":"","value":"3"},{"name":"r","nodeType":"YulIdentifier","src":"47393:1:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"47386:3:106"},"nodeType":"YulFunctionCall","src":"47386:9:106"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"47378:3:106"},"nodeType":"YulFunctionCall","src":"47378:18:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"47363:3:106"},"nodeType":"YulFunctionCall","src":"47363:34:106"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"47350:2:106"},"nodeType":"YulFunctionCall","src":"47350:48:106"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"47428:1:106","type":"","value":"8"},{"name":"r","nodeType":"YulIdentifier","src":"47431:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"47424:3:106"},"nodeType":"YulFunctionCall","src":"47424:9:106"},{"name":"b","nodeType":"YulIdentifier","src":"47435:1:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"47420:3:106"},"nodeType":"YulFunctionCall","src":"47420:17:106"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"47447:1:106","type":"","value":"8"},{"name":"r","nodeType":"YulIdentifier","src":"47450:1:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"47443:3:106"},"nodeType":"YulFunctionCall","src":"47443:9:106"},{"arguments":[{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"47464:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"47467:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"47460:3:106"},"nodeType":"YulFunctionCall","src":"47460:12:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"47454:5:106"},"nodeType":"YulFunctionCall","src":"47454:19:106"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"47439:3:106"},"nodeType":"YulFunctionCall","src":"47439:35:106"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"47416:3:106"},"nodeType":"YulFunctionCall","src":"47416:59:106"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"47347:2:106"},"nodeType":"YulFunctionCall","src":"47347:129:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"47337:6:106"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64581,"isOffset":false,"isSlot":false,"src":"47359:1:106","valueSize":1},{"declaration":64581,"isOffset":false,"isSlot":false,"src":"47464:1:106","valueSize":1},{"declaration":64583,"isOffset":false,"isSlot":false,"src":"46907:1:106","valueSize":1},{"declaration":64583,"isOffset":false,"isSlot":false,"src":"46970:1:106","valueSize":1},{"declaration":64583,"isOffset":false,"isSlot":false,"src":"46984:1:106","valueSize":1},{"declaration":64583,"isOffset":false,"isSlot":false,"src":"47435:1:106","valueSize":1},{"declaration":64586,"isOffset":false,"isSlot":false,"src":"47337:6:106","valueSize":1}],"id":64588,"nodeType":"InlineAssembly","src":"46771:715:106"}]},"documentation":{"id":64579,"nodeType":"StructuredDocumentation","src":"46551:85:106","text":"@dev Returns whether `a` equals `b`, where `b` is a null-terminated small string."},"implemented":true,"kind":"function","modifiers":[],"name":"eqs","nameLocation":"46650:3:106","parameters":{"id":64584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64581,"mutability":"mutable","name":"a","nameLocation":"46668:1:106","nodeType":"VariableDeclaration","scope":64590,"src":"46654:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64580,"name":"string","nodeType":"ElementaryTypeName","src":"46654:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64583,"mutability":"mutable","name":"b","nameLocation":"46679:1:106","nodeType":"VariableDeclaration","scope":64590,"src":"46671:9:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":64582,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46671:7:106","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"46653:28:106"},"returnParameters":{"id":64587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64586,"mutability":"mutable","name":"result","nameLocation":"46710:6:106","nodeType":"VariableDeclaration","scope":64590,"src":"46705:11:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":64585,"name":"bool","nodeType":"ElementaryTypeName","src":"46705:4:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46704:13:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64600,"nodeType":"FunctionDefinition","src":"47640:646:106","nodes":[],"body":{"id":64599,"nodeType":"Block","src":"47713:573:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"47775:505:106","statements":[{"nodeType":"YulAssignment","src":"47921:349:106","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"48036:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"48039:4:106","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"48032:3:106"},"nodeType":"YulFunctionCall","src":"48032:12:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"48026:5:106"},"nodeType":"YulFunctionCall","src":"48026:19:106"},{"arguments":[{"arguments":[{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"48239:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"48233:5:106"},"nodeType":"YulFunctionCall","src":"48233:8:106"},{"kind":"number","nodeType":"YulLiteral","src":"48243:1:106","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"48229:3:106"},"nodeType":"YulFunctionCall","src":"48229:16:106"},{"kind":"number","nodeType":"YulLiteral","src":"48247:4:106","type":"","value":"0x1f"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"48226:2:106"},"nodeType":"YulFunctionCall","src":"48226:26:106"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"47947:3:106"},"nodeType":"YulFunctionCall","src":"47947:323:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"47921:6:106"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64593,"isOffset":false,"isSlot":false,"src":"48036:1:106","valueSize":1},{"declaration":64593,"isOffset":false,"isSlot":false,"src":"48239:1:106","valueSize":1},{"declaration":64596,"isOffset":false,"isSlot":false,"src":"47921:6:106","valueSize":1}],"id":64598,"nodeType":"InlineAssembly","src":"47766:514:106"}]},"documentation":{"id":64591,"nodeType":"StructuredDocumentation","src":"47498:137:106","text":"@dev Packs a single string with its length into a single word.\n Returns `bytes32(0)` if the length is zero or greater than 31."},"implemented":true,"kind":"function","modifiers":[],"name":"packOne","nameLocation":"47649:7:106","parameters":{"id":64594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64593,"mutability":"mutable","name":"a","nameLocation":"47671:1:106","nodeType":"VariableDeclaration","scope":64600,"src":"47657:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64592,"name":"string","nodeType":"ElementaryTypeName","src":"47657:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47656:17:106"},"returnParameters":{"id":64597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64596,"mutability":"mutable","name":"result","nameLocation":"47705:6:106","nodeType":"VariableDeclaration","scope":64600,"src":"47697:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":64595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"47697:7:106","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"47696:16:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64610,"nodeType":"FunctionDefinition","src":"48493:609:106","nodes":[],"body":{"id":64609,"nodeType":"Block","src":"48573:529:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"48635:461:106","statements":[{"nodeType":"YulAssignment","src":"48694:21:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"48710:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"48704:5:106"},"nodeType":"YulFunctionCall","src":"48704:11:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"48694:6:106"}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"48804:4:106","type":"","value":"0x40"},{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"48814:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"48822:4:106","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"48810:3:106"},"nodeType":"YulFunctionCall","src":"48810:17:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"48797:6:106"},"nodeType":"YulFunctionCall","src":"48797:31:106"},"nodeType":"YulExpressionStatement","src":"48797:31:106"},{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"48888:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"48896:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"48881:6:106"},"nodeType":"YulFunctionCall","src":"48881:17:106"},"nodeType":"YulExpressionStatement","src":"48881:17:106"},{"expression":{"arguments":[{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"48965:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"48973:4:106","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"48961:3:106"},"nodeType":"YulFunctionCall","src":"48961:17:106"},{"name":"packed","nodeType":"YulIdentifier","src":"48980:6:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"48954:6:106"},"nodeType":"YulFunctionCall","src":"48954:33:106"},"nodeType":"YulExpressionStatement","src":"48954:33:106"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"49053:6:106"},{"kind":"number","nodeType":"YulLiteral","src":"49061:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"49049:3:106"},"nodeType":"YulFunctionCall","src":"49049:17:106"},{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"49074:6:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"49068:5:106"},"nodeType":"YulFunctionCall","src":"49068:13:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"49045:3:106"},"nodeType":"YulFunctionCall","src":"49045:37:106"},{"kind":"number","nodeType":"YulLiteral","src":"49084:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"49038:6:106"},"nodeType":"YulFunctionCall","src":"49038:48:106"},"nodeType":"YulExpressionStatement","src":"49038:48:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64603,"isOffset":false,"isSlot":false,"src":"48980:6:106","valueSize":1},{"declaration":64606,"isOffset":false,"isSlot":false,"src":"48694:6:106","valueSize":1},{"declaration":64606,"isOffset":false,"isSlot":false,"src":"48814:6:106","valueSize":1},{"declaration":64606,"isOffset":false,"isSlot":false,"src":"48888:6:106","valueSize":1},{"declaration":64606,"isOffset":false,"isSlot":false,"src":"48965:6:106","valueSize":1},{"declaration":64606,"isOffset":false,"isSlot":false,"src":"49053:6:106","valueSize":1},{"declaration":64606,"isOffset":false,"isSlot":false,"src":"49074:6:106","valueSize":1}],"id":64608,"nodeType":"InlineAssembly","src":"48626:470:106"}]},"documentation":{"id":64601,"nodeType":"StructuredDocumentation","src":"48292:196:106","text":"@dev Unpacks a string packed using {packOne}.\n Returns the empty string if `packed` is `bytes32(0)`.\n If `packed` is not an output of {packOne}, the output behavior is undefined."},"implemented":true,"kind":"function","modifiers":[],"name":"unpackOne","nameLocation":"48502:9:106","parameters":{"id":64604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64603,"mutability":"mutable","name":"packed","nameLocation":"48520:6:106","nodeType":"VariableDeclaration","scope":64610,"src":"48512:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":64602,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48512:7:106","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48511:16:106"},"returnParameters":{"id":64607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64606,"mutability":"mutable","name":"result","nameLocation":"48565:6:106","nodeType":"VariableDeclaration","scope":64610,"src":"48551:20:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64605,"name":"string","nodeType":"ElementaryTypeName","src":"48551:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48550:22:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64622,"nodeType":"FunctionDefinition","src":"49254:886:106","nodes":[],"body":{"id":64621,"nodeType":"Block","src":"49344:796:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"49406:728:106","statements":[{"nodeType":"YulVariableDeclaration","src":"49420:23:106","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"49441:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"49435:5:106"},"nodeType":"YulFunctionCall","src":"49435:8:106"},"variables":[{"name":"aLength","nodeType":"YulTypedName","src":"49424:7:106","type":""}]},{"nodeType":"YulAssignment","src":"49589:535:106","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"49745:1:106","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"49752:4:106","type":"","value":"0x1f"},{"name":"aLength","nodeType":"YulIdentifier","src":"49758:7:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"49748:3:106"},"nodeType":"YulFunctionCall","src":"49748:18:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"49741:3:106"},"nodeType":"YulFunctionCall","src":"49741:26:106"},{"arguments":[{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"49779:1:106"},{"name":"aLength","nodeType":"YulIdentifier","src":"49782:7:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"49775:3:106"},"nodeType":"YulFunctionCall","src":"49775:15:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"49769:5:106"},"nodeType":"YulFunctionCall","src":"49769:22:106"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"49737:3:106"},"nodeType":"YulFunctionCall","src":"49737:55:106"},{"arguments":[{"arguments":[{"arguments":[{"name":"b","nodeType":"YulIdentifier","src":"49832:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"49835:4:106","type":"","value":"0x1e"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"49828:3:106"},"nodeType":"YulFunctionCall","src":"49828:12:106"},{"name":"aLength","nodeType":"YulIdentifier","src":"49842:7:106"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"49824:3:106"},"nodeType":"YulFunctionCall","src":"49824:26:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"49818:5:106"},"nodeType":"YulFunctionCall","src":"49818:33:106"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"49709:2:106"},"nodeType":"YulFunctionCall","src":"49709:164:106"},{"arguments":[{"arguments":[{"arguments":[{"name":"aLength","nodeType":"YulIdentifier","src":"50077:7:106"},{"arguments":[{"name":"b","nodeType":"YulIdentifier","src":"50092:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"50086:5:106"},"nodeType":"YulFunctionCall","src":"50086:8:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"50073:3:106"},"nodeType":"YulFunctionCall","src":"50073:22:106"},{"kind":"number","nodeType":"YulLiteral","src":"50097:1:106","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"50069:3:106"},"nodeType":"YulFunctionCall","src":"50069:30:106"},{"kind":"number","nodeType":"YulLiteral","src":"50101:4:106","type":"","value":"0x1e"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"50066:2:106"},"nodeType":"YulFunctionCall","src":"50066:40:106"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"49615:3:106"},"nodeType":"YulFunctionCall","src":"49615:509:106"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"49589:6:106"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64613,"isOffset":false,"isSlot":false,"src":"49441:1:106","valueSize":1},{"declaration":64613,"isOffset":false,"isSlot":false,"src":"49779:1:106","valueSize":1},{"declaration":64615,"isOffset":false,"isSlot":false,"src":"49832:1:106","valueSize":1},{"declaration":64615,"isOffset":false,"isSlot":false,"src":"50092:1:106","valueSize":1},{"declaration":64618,"isOffset":false,"isSlot":false,"src":"49589:6:106","valueSize":1}],"id":64620,"nodeType":"InlineAssembly","src":"49397:737:106"}]},"documentation":{"id":64611,"nodeType":"StructuredDocumentation","src":"49108:141:106","text":"@dev Packs two strings with their lengths into a single word.\n Returns `bytes32(0)` if combined length is zero or greater than 30."},"implemented":true,"kind":"function","modifiers":[],"name":"packTwo","nameLocation":"49263:7:106","parameters":{"id":64616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64613,"mutability":"mutable","name":"a","nameLocation":"49285:1:106","nodeType":"VariableDeclaration","scope":64622,"src":"49271:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64612,"name":"string","nodeType":"ElementaryTypeName","src":"49271:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64615,"mutability":"mutable","name":"b","nameLocation":"49302:1:106","nodeType":"VariableDeclaration","scope":64622,"src":"49288:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64614,"name":"string","nodeType":"ElementaryTypeName","src":"49288:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49270:34:106"},"returnParameters":{"id":64619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64618,"mutability":"mutable","name":"result","nameLocation":"49336:6:106","nodeType":"VariableDeclaration","scope":64622,"src":"49328:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":64617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49328:7:106","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"49327:16:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64634,"nodeType":"FunctionDefinition","src":"50347:922:106","nodes":[],"body":{"id":64633,"nodeType":"Block","src":"50479:790:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"50541:722:106","statements":[{"nodeType":"YulAssignment","src":"50600:22:106","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"50617:4:106","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"50611:5:106"},"nodeType":"YulFunctionCall","src":"50611:11:106"},"variableNames":[{"name":"resultA","nodeType":"YulIdentifier","src":"50600:7:106"}]},{"nodeType":"YulAssignment","src":"50635:29:106","value":{"arguments":[{"name":"resultA","nodeType":"YulIdentifier","src":"50650:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"50659:4:106","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"50646:3:106"},"nodeType":"YulFunctionCall","src":"50646:18:106"},"variableNames":[{"name":"resultB","nodeType":"YulIdentifier","src":"50635:7:106"}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"50783:4:106","type":"","value":"0x40"},{"arguments":[{"name":"resultB","nodeType":"YulIdentifier","src":"50793:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"50802:4:106","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"50789:3:106"},"nodeType":"YulFunctionCall","src":"50789:18:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"50776:6:106"},"nodeType":"YulFunctionCall","src":"50776:32:106"},"nodeType":"YulExpressionStatement","src":"50776:32:106"},{"expression":{"arguments":[{"name":"resultA","nodeType":"YulIdentifier","src":"50869:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"50878:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"50862:6:106"},"nodeType":"YulFunctionCall","src":"50862:18:106"},"nodeType":"YulExpressionStatement","src":"50862:18:106"},{"expression":{"arguments":[{"name":"resultB","nodeType":"YulIdentifier","src":"50900:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"50909:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"50893:6:106"},"nodeType":"YulFunctionCall","src":"50893:18:106"},"nodeType":"YulExpressionStatement","src":"50893:18:106"},{"expression":{"arguments":[{"arguments":[{"name":"resultA","nodeType":"YulIdentifier","src":"50979:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"50988:4:106","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"50975:3:106"},"nodeType":"YulFunctionCall","src":"50975:18:106"},{"name":"packed","nodeType":"YulIdentifier","src":"50995:6:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"50968:6:106"},"nodeType":"YulFunctionCall","src":"50968:34:106"},"nodeType":"YulExpressionStatement","src":"50968:34:106"},{"expression":{"arguments":[{"arguments":[{"name":"resultB","nodeType":"YulIdentifier","src":"51026:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"51035:4:106","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"51022:3:106"},"nodeType":"YulFunctionCall","src":"51022:18:106"},{"arguments":[{"arguments":[{"arguments":[{"name":"resultA","nodeType":"YulIdentifier","src":"51056:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"51065:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"51052:3:106"},"nodeType":"YulFunctionCall","src":"51052:18:106"},{"arguments":[{"name":"resultA","nodeType":"YulIdentifier","src":"51078:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"51072:5:106"},"nodeType":"YulFunctionCall","src":"51072:14:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"51048:3:106"},"nodeType":"YulFunctionCall","src":"51048:39:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"51042:5:106"},"nodeType":"YulFunctionCall","src":"51042:46:106"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"51015:6:106"},"nodeType":"YulFunctionCall","src":"51015:74:106"},"nodeType":"YulExpressionStatement","src":"51015:74:106"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"resultA","nodeType":"YulIdentifier","src":"51155:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"51164:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"51151:3:106"},"nodeType":"YulFunctionCall","src":"51151:18:106"},{"arguments":[{"name":"resultA","nodeType":"YulIdentifier","src":"51177:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"51171:5:106"},"nodeType":"YulFunctionCall","src":"51171:14:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"51147:3:106"},"nodeType":"YulFunctionCall","src":"51147:39:106"},{"kind":"number","nodeType":"YulLiteral","src":"51188:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"51140:6:106"},"nodeType":"YulFunctionCall","src":"51140:50:106"},"nodeType":"YulExpressionStatement","src":"51140:50:106"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"resultB","nodeType":"YulIdentifier","src":"51218:7:106"},{"kind":"number","nodeType":"YulLiteral","src":"51227:4:106","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"51214:3:106"},"nodeType":"YulFunctionCall","src":"51214:18:106"},{"arguments":[{"name":"resultB","nodeType":"YulIdentifier","src":"51240:7:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"51234:5:106"},"nodeType":"YulFunctionCall","src":"51234:14:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"51210:3:106"},"nodeType":"YulFunctionCall","src":"51210:39:106"},{"kind":"number","nodeType":"YulLiteral","src":"51251:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"51203:6:106"},"nodeType":"YulFunctionCall","src":"51203:50:106"},"nodeType":"YulExpressionStatement","src":"51203:50:106"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":64625,"isOffset":false,"isSlot":false,"src":"50995:6:106","valueSize":1},{"declaration":64628,"isOffset":false,"isSlot":false,"src":"50600:7:106","valueSize":1},{"declaration":64628,"isOffset":false,"isSlot":false,"src":"50650:7:106","valueSize":1},{"declaration":64628,"isOffset":false,"isSlot":false,"src":"50869:7:106","valueSize":1},{"declaration":64628,"isOffset":false,"isSlot":false,"src":"50979:7:106","valueSize":1},{"declaration":64628,"isOffset":false,"isSlot":false,"src":"51056:7:106","valueSize":1},{"declaration":64628,"isOffset":false,"isSlot":false,"src":"51078:7:106","valueSize":1},{"declaration":64628,"isOffset":false,"isSlot":false,"src":"51155:7:106","valueSize":1},{"declaration":64628,"isOffset":false,"isSlot":false,"src":"51177:7:106","valueSize":1},{"declaration":64630,"isOffset":false,"isSlot":false,"src":"50635:7:106","valueSize":1},{"declaration":64630,"isOffset":false,"isSlot":false,"src":"50793:7:106","valueSize":1},{"declaration":64630,"isOffset":false,"isSlot":false,"src":"50900:7:106","valueSize":1},{"declaration":64630,"isOffset":false,"isSlot":false,"src":"51026:7:106","valueSize":1},{"declaration":64630,"isOffset":false,"isSlot":false,"src":"51218:7:106","valueSize":1},{"declaration":64630,"isOffset":false,"isSlot":false,"src":"51240:7:106","valueSize":1}],"id":64632,"nodeType":"InlineAssembly","src":"50532:731:106"}]},"documentation":{"id":64623,"nodeType":"StructuredDocumentation","src":"50146:196:106","text":"@dev Unpacks strings packed using {packTwo}.\n Returns the empty strings if `packed` is `bytes32(0)`.\n If `packed` is not an output of {packTwo}, the output behavior is undefined."},"implemented":true,"kind":"function","modifiers":[],"name":"unpackTwo","nameLocation":"50356:9:106","parameters":{"id":64626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64625,"mutability":"mutable","name":"packed","nameLocation":"50374:6:106","nodeType":"VariableDeclaration","scope":64634,"src":"50366:14:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":64624,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50366:7:106","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"50365:16:106"},"returnParameters":{"id":64631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64628,"mutability":"mutable","name":"resultA","nameLocation":"50443:7:106","nodeType":"VariableDeclaration","scope":64634,"src":"50429:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64627,"name":"string","nodeType":"ElementaryTypeName","src":"50429:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":64630,"mutability":"mutable","name":"resultB","nameLocation":"50466:7:106","nodeType":"VariableDeclaration","scope":64634,"src":"50452:21:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64629,"name":"string","nodeType":"ElementaryTypeName","src":"50452:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50428:46:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":64642,"nodeType":"FunctionDefinition","src":"51326:602:106","nodes":[],"body":{"id":64641,"nodeType":"Block","src":"51379:549:106","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"51398:524:106","statements":[{"nodeType":"YulVariableDeclaration","src":"51490:28:106","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"51510:1:106"},{"kind":"number","nodeType":"YulLiteral","src":"51513:4:106","type":"","value":"0x20"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"51506:3:106"},"nodeType":"YulFunctionCall","src":"51506:12:106"},"variables":[{"name":"retStart","nodeType":"YulTypedName","src":"51494:8:106","type":""}]},{"nodeType":"YulVariableDeclaration","src":"51531:34:106","value":{"arguments":[{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"51556:1:106"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"51550:5:106"},"nodeType":"YulFunctionCall","src":"51550:8:106"},{"kind":"number","nodeType":"YulLiteral","src":"51560:4:106","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"51546:3:106"},"nodeType":"YulFunctionCall","src":"51546:19:106"},"variables":[{"name":"retSize","nodeType":"YulTypedName","src":"51535:7:106","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"retStart","nodeType":"YulIdentifier","src":"51719:8:106"},{"name":"retSize","nodeType":"YulIdentifier","src":"51729:7:106"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"51715:3:106"},"nodeType":"YulFunctionCall","src":"51715:22:106"},{"kind":"number","nodeType":"YulLiteral","src":"51739:1:106","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"51708:6:106"},"nodeType":"YulFunctionCall","src":"51708:33:106"},"nodeType":"YulExpressionStatement","src":"51708:33:106"},{"expression":{"arguments":[{"name":"retStart","nodeType":"YulIdentifier","src":"51801:8:106"},{"kind":"number","nodeType":"YulLiteral","src":"51811:4:106","type":"","value":"0x20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"51794:6:106"},"nodeType":"YulFunctionCall","src":"51794:22:106"},"nodeType":"YulExpressionStatement","src":"51794:22:106"},{"expression":{"arguments":[{"name":"retStart","nodeType":"YulIdentifier","src":"51894:8:106"},{"name":"retSize","nodeType":"YulIdentifier","src":"51904:7:106"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"51887:6:106"},"nodeType":"YulFunctionCall","src":"51887:25:106"},"nodeType":"YulExpressionStatement","src":"51887:25:106"}]},"evmVersion":"london","externalReferences":[{"declaration":64637,"isOffset":false,"isSlot":false,"src":"51510:1:106","valueSize":1},{"declaration":64637,"isOffset":false,"isSlot":false,"src":"51556:1:106","valueSize":1}],"id":64640,"nodeType":"InlineAssembly","src":"51389:533:106"}]},"documentation":{"id":64635,"nodeType":"StructuredDocumentation","src":"51275:46:106","text":"@dev Directly returns `a` without copying."},"implemented":true,"kind":"function","modifiers":[],"name":"directReturn","nameLocation":"51335:12:106","parameters":{"id":64638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64637,"mutability":"mutable","name":"a","nameLocation":"51362:1:106","nodeType":"VariableDeclaration","scope":64642,"src":"51348:15:106","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":64636,"name":"string","nodeType":"ElementaryTypeName","src":"51348:6:106","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51347:17:106"},"returnParameters":{"id":64639,"nodeType":"ParameterList","parameters":[],"src":"51379:0:106"},"scope":64643,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibString","contractDependencies":[],"contractKind":"library","documentation":{"id":63991,"nodeType":"StructuredDocumentation","src":"57:586:106","text":"@notice Library for converting numbers into strings and other string operations.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)\n @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)\n Note:\n For performance and bytecode compactness, most of the string operations are restricted to\n byte strings (7-bit ASCII), except where otherwise specified.\n Usage of byte string operations on charsets with runes spanning two or more bytes\n can lead to undefined behavior."},"fullyImplemented":true,"linearizedBaseContracts":[64643],"name":"LibString","nameLocation":"651:9:106","scope":64644,"usedErrors":[63994,63997]}],"license":"MIT"},"id":106}