Skip to content

Instantly share code, notes, and snippets.

@zeeskhan1990
Created July 22, 2023 21:11
Show Gist options
  • Save zeeskhan1990/5b933e2c6b54d2908581c3d3acecb35e to your computer and use it in GitHub Desktop.
Save zeeskhan1990/5b933e2c6b54d2908581c3d3acecb35e to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.19+commit.7dd6d404.js&optimize=false&runs=200&gist=
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19; //pragma solidtity ^0.8.18, pragma solidity >=0.8.18 <0.9.0
import {SimpleStorage} from "./SimpleStorage.sol";
contract AddFiveStorage is SimpleStorage {
function sayHello() public pure returns(string memory) {
return "Hello";
}
//To create an override, the main function should be virtual
function store(uint256 _newNumber) public override {
myFavoriteNumber = _newNumber + 5;
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"array_dataslot_t_string_storage": {
"entryPoint": 295,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 137,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clean_up_bytearray_end_slots_t_string_storage": {
"entryPoint": 616,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"cleanup_t_uint256": {
"entryPoint": 431,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clear_storage_range_t_bytes1": {
"entryPoint": 577,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"convert_t_uint256_to_t_uint256": {
"entryPoint": 451,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
"entryPoint": 771,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"divide_by_32_ceil": {
"entryPoint": 316,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 242,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_used_part_and_set_length_of_short_byte_array": {
"entryPoint": 741,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"identity": {
"entryPoint": 441,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mask_bytes_dynamic": {
"entryPoint": 709,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 195,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 148,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"prepare_store_t_uint256": {
"entryPoint": 491,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_dynamic": {
"entryPoint": 332,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"shift_right_unsigned_dynamic": {
"entryPoint": 696,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"storage_set_to_zero_t_uint256": {
"entryPoint": 549,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"update_byte_slice_dynamic32": {
"entryPoint": 345,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"update_storage_value_t_uint256_to_t_uint256": {
"entryPoint": 501,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"zero_value_for_split_t_uint256": {
"entryPoint": 544,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:5231:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "66:40:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "77:22:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "93:5:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "87:5:2"
},
"nodeType": "YulFunctionCall",
"src": "87:12:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "77:6:2"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "49:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "59:6:2",
"type": ""
}
],
"src": "7:99:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "140:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "157:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "160:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "150:6:2"
},
"nodeType": "YulFunctionCall",
"src": "150:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "150:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "254:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "257:4:2",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "247:6:2"
},
"nodeType": "YulFunctionCall",
"src": "247:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "247:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "278:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "281:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "271:6:2"
},
"nodeType": "YulFunctionCall",
"src": "271:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "271:15:2"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "112:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "326:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "343:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "346:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "336:6:2"
},
"nodeType": "YulFunctionCall",
"src": "336:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "336:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "440:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "443:4:2",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "433:6:2"
},
"nodeType": "YulFunctionCall",
"src": "433:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "433:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "464:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "467:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "457:6:2"
},
"nodeType": "YulFunctionCall",
"src": "457:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "457:15:2"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "298:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "535:269:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "545:22:2",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "559:4:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "565:1:2",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "555:3:2"
},
"nodeType": "YulFunctionCall",
"src": "555:12:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "545:6:2"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "576:38:2",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "606:4:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "612:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "602:3:2"
},
"nodeType": "YulFunctionCall",
"src": "602:12:2"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "580:18:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "653:51:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "667:27:2",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "681:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "689:4:2",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "677:3:2"
},
"nodeType": "YulFunctionCall",
"src": "677:17:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "667:6:2"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "633:18:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "626:6:2"
},
"nodeType": "YulFunctionCall",
"src": "626:26:2"
},
"nodeType": "YulIf",
"src": "623:81:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "756:42:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "770:16:2"
},
"nodeType": "YulFunctionCall",
"src": "770:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "770:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "720:18:2"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "743:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "751:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "740:2:2"
},
"nodeType": "YulFunctionCall",
"src": "740:14:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "717:2:2"
},
"nodeType": "YulFunctionCall",
"src": "717:38:2"
},
"nodeType": "YulIf",
"src": "714:84:2"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "519:4:2",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "528:6:2",
"type": ""
}
],
"src": "484:320:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "864:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "874:11:2",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "882:3:2"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "874:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "902:1:2",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "905:3:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "895:6:2"
},
"nodeType": "YulFunctionCall",
"src": "895:14:2"
},
"nodeType": "YulExpressionStatement",
"src": "895:14:2"
},
{
"nodeType": "YulAssignment",
"src": "918:26:2",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "936:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "939:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nodeType": "YulIdentifier",
"src": "926:9:2"
},
"nodeType": "YulFunctionCall",
"src": "926:18:2"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "918:4:2"
}
]
}
]
},
"name": "array_dataslot_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "851:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "859:4:2",
"type": ""
}
],
"src": "810:141:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1001:49:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1011:33:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1029:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1036:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1025:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1025:14:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1041:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "1021:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1021:23:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1011:6:2"
}
]
}
]
},
"name": "divide_by_32_ceil",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "984:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "994:6:2",
"type": ""
}
],
"src": "957:93:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1109:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1119:37:2",
"value": {
"arguments": [
{
"name": "bits",
"nodeType": "YulIdentifier",
"src": "1144:4:2"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1150:5:2"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1140:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1140:16:2"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "1119:8:2"
}
]
}
]
},
"name": "shift_left_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nodeType": "YulTypedName",
"src": "1084:4:2",
"type": ""
},
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1090:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "1100:8:2",
"type": ""
}
],
"src": "1056:107:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1245:317:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1255:35:2",
"value": {
"arguments": [
{
"name": "shiftBytes",
"nodeType": "YulIdentifier",
"src": "1276:10:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1288:1:2",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "1272:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1272:18:2"
},
"variables": [
{
"name": "shiftBits",
"nodeType": "YulTypedName",
"src": "1259:9:2",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1299:109:2",
"value": {
"arguments": [
{
"name": "shiftBits",
"nodeType": "YulIdentifier",
"src": "1330:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1341:66:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nodeType": "YulIdentifier",
"src": "1311:18:2"
},
"nodeType": "YulFunctionCall",
"src": "1311:97:2"
},
"variables": [
{
"name": "mask",
"nodeType": "YulTypedName",
"src": "1303:4:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1417:51:2",
"value": {
"arguments": [
{
"name": "shiftBits",
"nodeType": "YulIdentifier",
"src": "1448:9:2"
},
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "1459:8:2"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nodeType": "YulIdentifier",
"src": "1429:18:2"
},
"nodeType": "YulFunctionCall",
"src": "1429:39:2"
},
"variableNames": [
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "1417:8:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1477:30:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1490:5:2"
},
{
"arguments": [
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "1501:4:2"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1497:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1497:9:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1486:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1486:21:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1477:5:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1516:40:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1529:5:2"
},
{
"arguments": [
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "1540:8:2"
},
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "1550:4:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1536:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1536:19:2"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1526:2:2"
},
"nodeType": "YulFunctionCall",
"src": "1526:30:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1516:6:2"
}
]
}
]
},
"name": "update_byte_slice_dynamic32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1206:5:2",
"type": ""
},
{
"name": "shiftBytes",
"nodeType": "YulTypedName",
"src": "1213:10:2",
"type": ""
},
{
"name": "toInsert",
"nodeType": "YulTypedName",
"src": "1225:8:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1238:6:2",
"type": ""
}
],
"src": "1169:393:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1613:32:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1623:16:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1634:5:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1623:7:2"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1595:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1605:7:2",
"type": ""
}
],
"src": "1568:77:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1683:28:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1693:12:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1700:5:2"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "1693:3:2"
}
]
}
]
},
"name": "identity",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1669:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "1679:3:2",
"type": ""
}
],
"src": "1651:60:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1777:82:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1787:66:2",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1845:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1827:17:2"
},
"nodeType": "YulFunctionCall",
"src": "1827:24:2"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "1818:8:2"
},
"nodeType": "YulFunctionCall",
"src": "1818:34:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1800:17:2"
},
"nodeType": "YulFunctionCall",
"src": "1800:53:2"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "1787:9:2"
}
]
}
]
},
"name": "convert_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1757:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "1767:9:2",
"type": ""
}
],
"src": "1717:142:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1912:28:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1922:12:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1929:5:2"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "1922:3:2"
}
]
}
]
},
"name": "prepare_store_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1898:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "1908:3:2",
"type": ""
}
],
"src": "1865:75:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2022:193:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2032:63:2",
"value": {
"arguments": [
{
"name": "value_0",
"nodeType": "YulIdentifier",
"src": "2087:7:2"
}
],
"functionName": {
"name": "convert_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "2056:30:2"
},
"nodeType": "YulFunctionCall",
"src": "2056:39:2"
},
"variables": [
{
"name": "convertedValue_0",
"nodeType": "YulTypedName",
"src": "2036:16:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "2111:4:2"
},
{
"arguments": [
{
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "2151:4:2"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "2145:5:2"
},
"nodeType": "YulFunctionCall",
"src": "2145:11:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2158:6:2"
},
{
"arguments": [
{
"name": "convertedValue_0",
"nodeType": "YulIdentifier",
"src": "2190:16:2"
}
],
"functionName": {
"name": "prepare_store_t_uint256",
"nodeType": "YulIdentifier",
"src": "2166:23:2"
},
"nodeType": "YulFunctionCall",
"src": "2166:41:2"
}
],
"functionName": {
"name": "update_byte_slice_dynamic32",
"nodeType": "YulIdentifier",
"src": "2117:27:2"
},
"nodeType": "YulFunctionCall",
"src": "2117:91:2"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "2104:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2104:105:2"
},
"nodeType": "YulExpressionStatement",
"src": "2104:105:2"
}
]
},
"name": "update_storage_value_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "1999:4:2",
"type": ""
},
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2005:6:2",
"type": ""
},
{
"name": "value_0",
"nodeType": "YulTypedName",
"src": "2013:7:2",
"type": ""
}
],
"src": "1946:269:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2270:24:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2280:8:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2287:1:2",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "2280:3:2"
}
]
}
]
},
"name": "zero_value_for_split_t_uint256",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "2266:3:2",
"type": ""
}
],
"src": "2221:73:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2353:136:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2363:46:2",
"value": {
"arguments": [],
"functionName": {
"name": "zero_value_for_split_t_uint256",
"nodeType": "YulIdentifier",
"src": "2377:30:2"
},
"nodeType": "YulFunctionCall",
"src": "2377:32:2"
},
"variables": [
{
"name": "zero_0",
"nodeType": "YulTypedName",
"src": "2367:6:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "2462:4:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2468:6:2"
},
{
"name": "zero_0",
"nodeType": "YulIdentifier",
"src": "2476:6:2"
}
],
"functionName": {
"name": "update_storage_value_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "2418:43:2"
},
"nodeType": "YulFunctionCall",
"src": "2418:65:2"
},
"nodeType": "YulExpressionStatement",
"src": "2418:65:2"
}
]
},
"name": "storage_set_to_zero_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "2339:4:2",
"type": ""
},
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2345:6:2",
"type": ""
}
],
"src": "2300:189:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2545:136:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2612:63:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2656:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2663:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "storage_set_to_zero_t_uint256",
"nodeType": "YulIdentifier",
"src": "2626:29:2"
},
"nodeType": "YulFunctionCall",
"src": "2626:39:2"
},
"nodeType": "YulExpressionStatement",
"src": "2626:39:2"
}
]
},
"condition": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2565:5:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2572:3:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2562:2:2"
},
"nodeType": "YulFunctionCall",
"src": "2562:14:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2577:26:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2579:22:2",
"value": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2592:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2599:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2588:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2588:13:2"
},
"variableNames": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2579:5:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2559:2:2",
"statements": []
},
"src": "2555:120:2"
}
]
},
"name": "clear_storage_range_t_bytes1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nodeType": "YulTypedName",
"src": "2533:5:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2540:3:2",
"type": ""
}
],
"src": "2495:186:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2766:464:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2792:431:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2806:54:2",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2854:5:2"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nodeType": "YulIdentifier",
"src": "2822:31:2"
},
"nodeType": "YulFunctionCall",
"src": "2822:38:2"
},
"variables": [
{
"name": "dataArea",
"nodeType": "YulTypedName",
"src": "2810:8:2",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2873:63:2",
"value": {
"arguments": [
{
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "2896:8:2"
},
{
"arguments": [
{
"name": "startIndex",
"nodeType": "YulIdentifier",
"src": "2924:10:2"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nodeType": "YulIdentifier",
"src": "2906:17:2"
},
"nodeType": "YulFunctionCall",
"src": "2906:29:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2892:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2892:44:2"
},
"variables": [
{
"name": "deleteStart",
"nodeType": "YulTypedName",
"src": "2877:11:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3093:27:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3095:23:2",
"value": {
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "3110:8:2"
},
"variableNames": [
{
"name": "deleteStart",
"nodeType": "YulIdentifier",
"src": "3095:11:2"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nodeType": "YulIdentifier",
"src": "3077:10:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3089:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3074:2:2"
},
"nodeType": "YulFunctionCall",
"src": "3074:18:2"
},
"nodeType": "YulIf",
"src": "3071:49:2"
},
{
"expression": {
"arguments": [
{
"name": "deleteStart",
"nodeType": "YulIdentifier",
"src": "3162:11:2"
},
{
"arguments": [
{
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "3179:8:2"
},
{
"arguments": [
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "3207:3:2"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nodeType": "YulIdentifier",
"src": "3189:17:2"
},
"nodeType": "YulFunctionCall",
"src": "3189:22:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3175:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3175:37:2"
}
],
"functionName": {
"name": "clear_storage_range_t_bytes1",
"nodeType": "YulIdentifier",
"src": "3133:28:2"
},
"nodeType": "YulFunctionCall",
"src": "3133:80:2"
},
"nodeType": "YulExpressionStatement",
"src": "3133:80:2"
}
]
},
"condition": {
"arguments": [
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "2783:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2788:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2780:2:2"
},
"nodeType": "YulFunctionCall",
"src": "2780:11:2"
},
"nodeType": "YulIf",
"src": "2777:446:2"
}
]
},
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2742:5:2",
"type": ""
},
{
"name": "len",
"nodeType": "YulTypedName",
"src": "2749:3:2",
"type": ""
},
{
"name": "startIndex",
"nodeType": "YulTypedName",
"src": "2754:10:2",
"type": ""
}
],
"src": "2687:543:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3299:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3309:37:2",
"value": {
"arguments": [
{
"name": "bits",
"nodeType": "YulIdentifier",
"src": "3334:4:2"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3340:5:2"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "3330:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3330:16:2"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "3309:8:2"
}
]
}
]
},
"name": "shift_right_unsigned_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nodeType": "YulTypedName",
"src": "3274:4:2",
"type": ""
},
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3280:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "3290:8:2",
"type": ""
}
],
"src": "3236:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3410:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3420:68:2",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3469:1:2",
"type": "",
"value": "8"
},
{
"name": "bytes",
"nodeType": "YulIdentifier",
"src": "3472:5:2"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "3465:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3465:13:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3484:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3480:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3480:6:2"
}
],
"functionName": {
"name": "shift_right_unsigned_dynamic",
"nodeType": "YulIdentifier",
"src": "3436:28:2"
},
"nodeType": "YulFunctionCall",
"src": "3436:51:2"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3432:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3432:56:2"
},
"variables": [
{
"name": "mask",
"nodeType": "YulTypedName",
"src": "3424:4:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3497:25:2",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3511:4:2"
},
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "3517:4:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3507:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3507:15:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "3497:6:2"
}
]
}
]
},
"name": "mask_bytes_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "3387:4:2",
"type": ""
},
{
"name": "bytes",
"nodeType": "YulTypedName",
"src": "3393:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "3403:6:2",
"type": ""
}
],
"src": "3359:169:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3614:214:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3747:37:2",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3774:4:2"
},
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "3780:3:2"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nodeType": "YulIdentifier",
"src": "3755:18:2"
},
"nodeType": "YulFunctionCall",
"src": "3755:29:2"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3747:4:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3793:29:2",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3804:4:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3814:1:2",
"type": "",
"value": "2"
},
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "3817:3:2"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "3810:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3810:11:2"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "3801:2:2"
},
"nodeType": "YulFunctionCall",
"src": "3801:21:2"
},
"variableNames": [
{
"name": "used",
"nodeType": "YulIdentifier",
"src": "3793:4:2"
}
]
}
]
},
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "3595:4:2",
"type": ""
},
{
"name": "len",
"nodeType": "YulTypedName",
"src": "3601:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "used",
"nodeType": "YulTypedName",
"src": "3609:4:2",
"type": ""
}
],
"src": "3533:295:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3925:1303:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3936:51:2",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "3983:3:2"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3950:32:2"
},
"nodeType": "YulFunctionCall",
"src": "3950:37:2"
},
"variables": [
{
"name": "newLen",
"nodeType": "YulTypedName",
"src": "3940:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4072:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4074:16:2"
},
"nodeType": "YulFunctionCall",
"src": "4074:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "4074:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4044:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4052:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4041:2:2"
},
"nodeType": "YulFunctionCall",
"src": "4041:30:2"
},
"nodeType": "YulIf",
"src": "4038:56:2"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4104:52:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4150:4:2"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "4144:5:2"
},
"nodeType": "YulFunctionCall",
"src": "4144:11:2"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nodeType": "YulIdentifier",
"src": "4118:25:2"
},
"nodeType": "YulFunctionCall",
"src": "4118:38:2"
},
"variables": [
{
"name": "oldLen",
"nodeType": "YulTypedName",
"src": "4108:6:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4249:4:2"
},
{
"name": "oldLen",
"nodeType": "YulIdentifier",
"src": "4255:6:2"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4263:6:2"
}
],
"functionName": {
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nodeType": "YulIdentifier",
"src": "4203:45:2"
},
"nodeType": "YulFunctionCall",
"src": "4203:67:2"
},
"nodeType": "YulExpressionStatement",
"src": "4203:67:2"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4280:18:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4297:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "srcOffset",
"nodeType": "YulTypedName",
"src": "4284:9:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4308:17:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4321:4:2",
"type": "",
"value": "0x20"
},
"variableNames": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4308:9:2"
}
]
},
{
"cases": [
{
"body": {
"nodeType": "YulBlock",
"src": "4372:611:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4386:37:2",
"value": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4405:6:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4417:4:2",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "4413:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4413:9:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4401:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4401:22:2"
},
"variables": [
{
"name": "loopEnd",
"nodeType": "YulTypedName",
"src": "4390:7:2",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4437:51:2",
"value": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4483:4:2"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nodeType": "YulIdentifier",
"src": "4451:31:2"
},
"nodeType": "YulFunctionCall",
"src": "4451:37:2"
},
"variables": [
{
"name": "dstPtr",
"nodeType": "YulTypedName",
"src": "4441:6:2",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4501:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4510:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "4505:1:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4569:163:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4594:6:2"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4612:3:2"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4617:9:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4608:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4608:19:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4602:5:2"
},
"nodeType": "YulFunctionCall",
"src": "4602:26:2"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "4587:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4587:42:2"
},
"nodeType": "YulExpressionStatement",
"src": "4587:42:2"
},
{
"nodeType": "YulAssignment",
"src": "4646:24:2",
"value": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4660:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4668:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4656:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4656:14:2"
},
"variableNames": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4646:6:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4687:31:2",
"value": {
"arguments": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4704:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4715:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4700:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4700:18:2"
},
"variableNames": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4687:9:2"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4535:1:2"
},
{
"name": "loopEnd",
"nodeType": "YulIdentifier",
"src": "4538:7:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4532:2:2"
},
"nodeType": "YulFunctionCall",
"src": "4532:14:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "4547:21:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4549:17:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4558:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4561:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4554:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4554:12:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4549:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "4528:3:2",
"statements": []
},
"src": "4524:208:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4768:156:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4786:43:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4813:3:2"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4818:9:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4809:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4809:19:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4803:5:2"
},
"nodeType": "YulFunctionCall",
"src": "4803:26:2"
},
"variables": [
{
"name": "lastValue",
"nodeType": "YulTypedName",
"src": "4790:9:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4853:6:2"
},
{
"arguments": [
{
"name": "lastValue",
"nodeType": "YulIdentifier",
"src": "4880:9:2"
},
{
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4895:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4903:4:2",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4891:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4891:17:2"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nodeType": "YulIdentifier",
"src": "4861:18:2"
},
"nodeType": "YulFunctionCall",
"src": "4861:48:2"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "4846:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4846:64:2"
},
"nodeType": "YulExpressionStatement",
"src": "4846:64:2"
}
]
},
"condition": {
"arguments": [
{
"name": "loopEnd",
"nodeType": "YulIdentifier",
"src": "4751:7:2"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4760:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4748:2:2"
},
"nodeType": "YulFunctionCall",
"src": "4748:19:2"
},
"nodeType": "YulIf",
"src": "4745:179:2"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4944:4:2"
},
{
"arguments": [
{
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4958:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4966:1:2",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "4954:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4954:14:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4970:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4950:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4950:22:2"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "4937:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4937:36:2"
},
"nodeType": "YulExpressionStatement",
"src": "4937:36:2"
}
]
},
"nodeType": "YulCase",
"src": "4365:618:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4370:1:2",
"type": "",
"value": "1"
}
},
{
"body": {
"nodeType": "YulBlock",
"src": "5000:222:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5014:14:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5027:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5018:5:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5051:67:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5069:35:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5088:3:2"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "5093:9:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5084:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5084:19:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5078:5:2"
},
"nodeType": "YulFunctionCall",
"src": "5078:26:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5069:5:2"
}
]
}
]
},
"condition": {
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "5044:6:2"
},
"nodeType": "YulIf",
"src": "5041:77:2"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "5138:4:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5197:5:2"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "5204:6:2"
}
],
"functionName": {
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nodeType": "YulIdentifier",
"src": "5144:52:2"
},
"nodeType": "YulFunctionCall",
"src": "5144:67:2"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "5131:6:2"
},
"nodeType": "YulFunctionCall",
"src": "5131:81:2"
},
"nodeType": "YulExpressionStatement",
"src": "5131:81:2"
}
]
},
"nodeType": "YulCase",
"src": "4992:230:2",
"value": "default"
}
],
"expression": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4345:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4353:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4342:2:2"
},
"nodeType": "YulFunctionCall",
"src": "4342:14:2"
},
"nodeType": "YulSwitch",
"src": "4335:887:2"
}
]
},
"name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "3914:4:2",
"type": ""
},
{
"name": "src",
"nodeType": "YulTypedName",
"src": "3920:3:2",
"type": ""
}
],
"src": "3833:1395:2"
}
]
},
"contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040526040518060400160405280600781526020016040518060400160405280600381526020017f5061740000000000000000000000000000000000000000000000000000000000815250815250600460008201518160000155602082015181600101908162000072919062000303565b5050503480156200008257600080fd5b50620003ea565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200010b57607f821691505b602082108103620001215762000120620000c3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200018b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200014c565b6200019786836200014c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620001e4620001de620001d884620001af565b620001b9565b620001af565b9050919050565b6000819050919050565b6200020083620001c3565b620002186200020f82620001eb565b84845462000159565b825550505050565b600090565b6200022f62000220565b6200023c818484620001f5565b505050565b5b8181101562000264576200025860008262000225565b60018101905062000242565b5050565b601f821115620002b3576200027d8162000127565b62000288846200013c565b8101602085101562000298578190505b620002b0620002a7856200013c565b83018262000241565b50505b505050565b600082821c905092915050565b6000620002d860001984600802620002b8565b1980831691505092915050565b6000620002f38383620002c5565b9150826002028217905092915050565b6200030e8262000089565b67ffffffffffffffff8111156200032a576200032962000094565b5b620003368254620000f2565b6200034382828562000268565b600060209050601f8311600181146200037b576000841562000366578287015190505b620003728582620002e5565b865550620003e2565b601f1984166200038b8662000127565b60005b82811015620003b5578489015182556001820191506020850194506020810190506200038e565b86831015620003d55784890151620003d1601f891682620002c5565b8355505b6001600288020188555050505b505050505050565b610b0680620003fa6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636f760f411161005b5780636f760f41146100ed5780638bab8dd514610109578063b4a24f5014610139578063ef5fb05b146101585761007d565b80632e64cec1146100825780632ebce631146100a05780636057361d146100d1575b600080fd5b61008a610176565b60405161009791906103f8565b60405180910390f35b6100ba60048036038101906100b59190610453565b61017f565b6040516100c8929190610510565b60405180910390f35b6100eb60048036038101906100e69190610453565b61023b565b005b61010760048036038101906101029190610675565b610251565b005b610123600480360381019061011e91906106d1565b6102da565b60405161013091906103f8565b60405180910390f35b610141610308565b60405161014f929190610510565b60405180910390f35b6101606103a2565b60405161016d919061071a565b60405180910390f35b60008054905090565b6002818154811061018f57600080fd5b90600052602060002090600202016000915090508060000154908060010180546101b89061076b565b80601f01602080910402602001604051908101604052809291908181526020018280546101e49061076b565b80156102315780601f1061020657610100808354040283529160200191610231565b820191906000526020600020905b81548152906001019060200180831161021457829003601f168201915b5050505050905082565b60058161024891906107cb565b60008190555050565b600260405180604001604052808381526020018481525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010190816102b091906109ab565b505050806003836040516102c49190610ab9565b9081526020016040518091039020819055505050565b6003818051602081018201805184825260208301602085012081835280955050505050506000915090505481565b600480600001549080600101805461031f9061076b565b80601f016020809104026020016040519081016040528092919081815260200182805461034b9061076b565b80156103985780601f1061036d57610100808354040283529160200191610398565b820191906000526020600020905b81548152906001019060200180831161037b57829003601f168201915b5050505050905082565b60606040518060400160405280600581526020017f48656c6c6f000000000000000000000000000000000000000000000000000000815250905090565b6000819050919050565b6103f2816103df565b82525050565b600060208201905061040d60008301846103e9565b92915050565b6000604051905090565b600080fd5b600080fd5b610430816103df565b811461043b57600080fd5b50565b60008135905061044d81610427565b92915050565b6000602082840312156104695761046861041d565b5b60006104778482850161043e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156104ba57808201518184015260208101905061049f565b60008484015250505050565b6000601f19601f8301169050919050565b60006104e282610480565b6104ec818561048b565b93506104fc81856020860161049c565b610505816104c6565b840191505092915050565b600060408201905061052560008301856103e9565b818103602083015261053781846104d7565b90509392505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610582826104c6565b810181811067ffffffffffffffff821117156105a1576105a061054a565b5b80604052505050565b60006105b4610413565b90506105c08282610579565b919050565b600067ffffffffffffffff8211156105e0576105df61054a565b5b6105e9826104c6565b9050602081019050919050565b82818337600083830152505050565b6000610618610613846105c5565b6105aa565b90508281526020810184848401111561063457610633610545565b5b61063f8482856105f6565b509392505050565b600082601f83011261065c5761065b610540565b5b813561066c848260208601610605565b91505092915050565b6000806040838503121561068c5761068b61041d565b5b600083013567ffffffffffffffff8111156106aa576106a9610422565b5b6106b685828601610647565b92505060206106c78582860161043e565b9150509250929050565b6000602082840312156106e7576106e661041d565b5b600082013567ffffffffffffffff81111561070557610704610422565b5b61071184828501610647565b91505092915050565b6000602082019050818103600083015261073481846104d7565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061078357607f821691505b6020821081036107965761079561073c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006107d6826103df565b91506107e1836103df565b92508282019050808211156107f9576107f861079c565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026108617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610824565b61086b8683610824565b95508019841693508086168417925050509392505050565b6000819050919050565b60006108a86108a361089e846103df565b610883565b6103df565b9050919050565b6000819050919050565b6108c28361088d565b6108d66108ce826108af565b848454610831565b825550505050565b600090565b6108eb6108de565b6108f68184846108b9565b505050565b5b8181101561091a5761090f6000826108e3565b6001810190506108fc565b5050565b601f82111561095f57610930816107ff565b61093984610814565b81016020851015610948578190505b61095c61095485610814565b8301826108fb565b50505b505050565b600082821c905092915050565b600061098260001984600802610964565b1980831691505092915050565b600061099b8383610971565b9150826002028217905092915050565b6109b482610480565b67ffffffffffffffff8111156109cd576109cc61054a565b5b6109d7825461076b565b6109e282828561091e565b600060209050601f831160018114610a155760008415610a03578287015190505b610a0d858261098f565b865550610a75565b601f198416610a23866107ff565b60005b82811015610a4b57848901518255600182019150602085019450602081019050610a26565b86831015610a685784890151610a64601f891682610971565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b6000610a9382610480565b610a9d8185610a7d565b9350610aad81856020860161049c565b80840191505092915050565b6000610ac58284610a88565b91508190509291505056fea26469706673582212205f66ddcb933cd24d7f48d607b618937bdffc2379b55ca7c6c00c1eb45f941c2464736f6c63430008130033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5061740000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 MSTORE POP PUSH1 0x4 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH3 0x72 SWAP2 SWAP1 PUSH3 0x303 JUMP JUMPDEST POP POP POP CALLVALUE DUP1 ISZERO PUSH3 0x82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x3EA JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x10B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x121 JUMPI PUSH3 0x120 PUSH3 0xC3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x18B PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x14C JUMP JUMPDEST PUSH3 0x197 DUP7 DUP4 PUSH3 0x14C JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1E4 PUSH3 0x1DE PUSH3 0x1D8 DUP5 PUSH3 0x1AF JUMP JUMPDEST PUSH3 0x1B9 JUMP JUMPDEST PUSH3 0x1AF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x200 DUP4 PUSH3 0x1C3 JUMP JUMPDEST PUSH3 0x218 PUSH3 0x20F DUP3 PUSH3 0x1EB JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x159 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x22F PUSH3 0x220 JUMP JUMPDEST PUSH3 0x23C DUP2 DUP5 DUP5 PUSH3 0x1F5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x264 JUMPI PUSH3 0x258 PUSH1 0x0 DUP3 PUSH3 0x225 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x242 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2B3 JUMPI PUSH3 0x27D DUP2 PUSH3 0x127 JUMP JUMPDEST PUSH3 0x288 DUP5 PUSH3 0x13C JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x298 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2B0 PUSH3 0x2A7 DUP6 PUSH3 0x13C JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x241 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D8 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2B8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F3 DUP4 DUP4 PUSH3 0x2C5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x30E DUP3 PUSH3 0x89 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x32A JUMPI PUSH3 0x329 PUSH3 0x94 JUMP JUMPDEST JUMPDEST PUSH3 0x336 DUP3 SLOAD PUSH3 0xF2 JUMP JUMPDEST PUSH3 0x343 DUP3 DUP3 DUP6 PUSH3 0x268 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x37B JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x366 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x372 DUP6 DUP3 PUSH3 0x2E5 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x3E2 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x38B DUP7 PUSH3 0x127 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3B5 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x38E JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3D5 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3D1 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2C5 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xB06 DUP1 PUSH3 0x3FA PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6F760F41 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x6F760F41 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x8BAB8DD5 EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0xB4A24F50 EQ PUSH2 0x139 JUMPI DUP1 PUSH4 0xEF5FB05B EQ PUSH2 0x158 JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x2EBCE631 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0xD1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8A PUSH2 0x176 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x3F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB5 SWAP2 SWAP1 PUSH2 0x453 JUMP JUMPDEST PUSH2 0x17F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP3 SWAP2 SWAP1 PUSH2 0x510 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE6 SWAP2 SWAP1 PUSH2 0x453 JUMP JUMPDEST PUSH2 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x107 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x102 SWAP2 SWAP1 PUSH2 0x675 JUMP JUMPDEST PUSH2 0x251 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x123 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x11E SWAP2 SWAP1 PUSH2 0x6D1 JUMP JUMPDEST PUSH2 0x2DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x130 SWAP2 SWAP1 PUSH2 0x3F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x141 PUSH2 0x308 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14F SWAP3 SWAP2 SWAP1 PUSH2 0x510 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x160 PUSH2 0x3A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16D SWAP2 SWAP1 PUSH2 0x71A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x18F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x1B8 SWAP1 PUSH2 0x76B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1E4 SWAP1 PUSH2 0x76B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x231 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x206 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x231 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x214 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x5 DUP2 PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x7CB JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0x2B0 SWAP2 SWAP1 PUSH2 0x9AB JUMP JUMPDEST POP POP POP DUP1 PUSH1 0x3 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2C4 SWAP2 SWAP1 PUSH2 0xAB9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 ADD DUP1 MLOAD DUP5 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP6 ADD KECCAK256 DUP2 DUP4 MSTORE DUP1 SWAP6 POP POP POP POP POP POP PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x31F SWAP1 PUSH2 0x76B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x34B SWAP1 PUSH2 0x76B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x398 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x36D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x398 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x37B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x48656C6C6F000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3F2 DUP2 PUSH2 0x3DF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x40D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3E9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x430 DUP2 PUSH2 0x3DF JUMP JUMPDEST DUP2 EQ PUSH2 0x43B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x44D DUP2 PUSH2 0x427 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x469 JUMPI PUSH2 0x468 PUSH2 0x41D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x477 DUP5 DUP3 DUP6 ADD PUSH2 0x43E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4BA JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x49F JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4E2 DUP3 PUSH2 0x480 JUMP JUMPDEST PUSH2 0x4EC DUP2 DUP6 PUSH2 0x48B JUMP JUMPDEST SWAP4 POP PUSH2 0x4FC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x49C JUMP JUMPDEST PUSH2 0x505 DUP2 PUSH2 0x4C6 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x525 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3E9 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x537 DUP2 DUP5 PUSH2 0x4D7 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x582 DUP3 PUSH2 0x4C6 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x5A1 JUMPI PUSH2 0x5A0 PUSH2 0x54A JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B4 PUSH2 0x413 JUMP JUMPDEST SWAP1 POP PUSH2 0x5C0 DUP3 DUP3 PUSH2 0x579 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5E0 JUMPI PUSH2 0x5DF PUSH2 0x54A JUMP JUMPDEST JUMPDEST PUSH2 0x5E9 DUP3 PUSH2 0x4C6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x618 PUSH2 0x613 DUP5 PUSH2 0x5C5 JUMP JUMPDEST PUSH2 0x5AA JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x634 JUMPI PUSH2 0x633 PUSH2 0x545 JUMP JUMPDEST JUMPDEST PUSH2 0x63F DUP5 DUP3 DUP6 PUSH2 0x5F6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x65C JUMPI PUSH2 0x65B PUSH2 0x540 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x66C DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x605 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x68C JUMPI PUSH2 0x68B PUSH2 0x41D JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6AA JUMPI PUSH2 0x6A9 PUSH2 0x422 JUMP JUMPDEST JUMPDEST PUSH2 0x6B6 DUP6 DUP3 DUP7 ADD PUSH2 0x647 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6C7 DUP6 DUP3 DUP7 ADD PUSH2 0x43E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6E7 JUMPI PUSH2 0x6E6 PUSH2 0x41D JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x705 JUMPI PUSH2 0x704 PUSH2 0x422 JUMP JUMPDEST JUMPDEST PUSH2 0x711 DUP5 DUP3 DUP6 ADD PUSH2 0x647 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x734 DUP2 DUP5 PUSH2 0x4D7 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x783 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x796 JUMPI PUSH2 0x795 PUSH2 0x73C JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x7D6 DUP3 PUSH2 0x3DF JUMP JUMPDEST SWAP2 POP PUSH2 0x7E1 DUP4 PUSH2 0x3DF JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x7F9 JUMPI PUSH2 0x7F8 PUSH2 0x79C JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x861 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x824 JUMP JUMPDEST PUSH2 0x86B DUP7 DUP4 PUSH2 0x824 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A8 PUSH2 0x8A3 PUSH2 0x89E DUP5 PUSH2 0x3DF JUMP JUMPDEST PUSH2 0x883 JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8C2 DUP4 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x8D6 PUSH2 0x8CE DUP3 PUSH2 0x8AF JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x831 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x8EB PUSH2 0x8DE JUMP JUMPDEST PUSH2 0x8F6 DUP2 DUP5 DUP5 PUSH2 0x8B9 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x91A JUMPI PUSH2 0x90F PUSH1 0x0 DUP3 PUSH2 0x8E3 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x8FC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x95F JUMPI PUSH2 0x930 DUP2 PUSH2 0x7FF JUMP JUMPDEST PUSH2 0x939 DUP5 PUSH2 0x814 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x948 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x95C PUSH2 0x954 DUP6 PUSH2 0x814 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x8FB JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x982 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x964 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x99B DUP4 DUP4 PUSH2 0x971 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9B4 DUP3 PUSH2 0x480 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9CD JUMPI PUSH2 0x9CC PUSH2 0x54A JUMP JUMPDEST JUMPDEST PUSH2 0x9D7 DUP3 SLOAD PUSH2 0x76B JUMP JUMPDEST PUSH2 0x9E2 DUP3 DUP3 DUP6 PUSH2 0x91E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xA15 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xA03 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0xA0D DUP6 DUP3 PUSH2 0x98F JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0xA75 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0xA23 DUP7 PUSH2 0x7FF JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xA4B JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA26 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0xA68 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0xA64 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x971 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA93 DUP3 PUSH2 0x480 JUMP JUMPDEST PUSH2 0xA9D DUP2 DUP6 PUSH2 0xA7D JUMP JUMPDEST SWAP4 POP PUSH2 0xAAD DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x49C JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC5 DUP3 DUP5 PUSH2 0xA88 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5F PUSH7 0xDDCB933CD24D7F BASEFEE 0xD6 SMOD 0xB6 XOR SWAP4 PUSH28 0xDFFC2379B55CA7C6C00C1EB45F941C2464736F6C6343000813003300 ",
"sourceMap": "171:314:0:-:0;;;664:40:1;;;;;;;;688:1;664:40;;;;;;;;;;;;;;;;;;;;;;;;644:60;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;171:314:0;;;;;;;;;;;;7:99:2;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;171:314:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@addPerson_95": {
"entryPoint": 593,
"id": 95,
"parameterSlots": 2,
"returnSlots": 0
},
"@listOfPeople_43": {
"entryPoint": 383,
"id": 43,
"parameterSlots": 0,
"returnSlots": 0
},
"@nameToFavoriteNumber_47": {
"entryPoint": 730,
"id": 47,
"parameterSlots": 0,
"returnSlots": 0
},
"@pat_54": {
"entryPoint": 776,
"id": 54,
"parameterSlots": 0,
"returnSlots": 0
},
"@retrieve_72": {
"entryPoint": 374,
"id": 72,
"parameterSlots": 0,
"returnSlots": 1
},
"@sayHello_13": {
"entryPoint": 930,
"id": 13,
"parameterSlots": 0,
"returnSlots": 1
},
"@store_26": {
"entryPoint": 571,
"id": 26,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 1541,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 1607,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1086,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptr": {
"entryPoint": 1745,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptrt_uint256": {
"entryPoint": 1653,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 1107,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1239,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 2696,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 1001,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 2745,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1818,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 1016,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1296,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1450,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1043,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 1477,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_string_storage": {
"entryPoint": 2047,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 1152,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 1163,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 2685,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 1995,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"clean_up_bytearray_end_slots_t_string_storage": {
"entryPoint": 2334,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"cleanup_t_uint256": {
"entryPoint": 991,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clear_storage_range_t_bytes1": {
"entryPoint": 2299,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"convert_t_uint256_to_t_uint256": {
"entryPoint": 2189,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
"entryPoint": 2475,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"copy_calldata_to_memory_with_cleanup": {
"entryPoint": 1526,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 1180,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"divide_by_32_ceil": {
"entryPoint": 2068,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 1899,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_used_part_and_set_length_of_short_byte_array": {
"entryPoint": 2447,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1401,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"identity": {
"entryPoint": 2179,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mask_bytes_dynamic": {
"entryPoint": 2417,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 1948,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 1852,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1354,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"prepare_store_t_uint256": {
"entryPoint": 2223,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1344,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 1349,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 1058,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1053,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1222,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_dynamic": {
"entryPoint": 2084,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"shift_right_unsigned_dynamic": {
"entryPoint": 2404,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"storage_set_to_zero_t_uint256": {
"entryPoint": 2275,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"update_byte_slice_dynamic32": {
"entryPoint": 2097,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"update_storage_value_t_uint256_to_t_uint256": {
"entryPoint": 2233,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 1063,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"zero_value_for_split_t_uint256": {
"entryPoint": 2270,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:12498:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:32:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:16:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:2"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:2",
"type": ""
}
],
"src": "7:77:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "155:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "172:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "195:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "177:17:2"
},
"nodeType": "YulFunctionCall",
"src": "177:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "165:6:2"
},
"nodeType": "YulFunctionCall",
"src": "165:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "165:37:2"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "143:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "150:3:2",
"type": ""
}
],
"src": "90:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "312:124:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "322:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "334:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "345:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "330:3:2"
},
"nodeType": "YulFunctionCall",
"src": "330:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "322:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "402:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "415:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "411:3:2"
},
"nodeType": "YulFunctionCall",
"src": "411:17:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "358:43:2"
},
"nodeType": "YulFunctionCall",
"src": "358:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "358:71:2"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "284:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "296:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "307:4:2",
"type": ""
}
],
"src": "214:222:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "482:35:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "492:19:2",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "508:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "502:5:2"
},
"nodeType": "YulFunctionCall",
"src": "502:9:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "492:6:2"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "475:6:2",
"type": ""
}
],
"src": "442:75:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "612:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "629:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "632:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "622:6:2"
},
"nodeType": "YulFunctionCall",
"src": "622:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "622:12:2"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "523:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "735:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "752:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "755:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "745:6:2"
},
"nodeType": "YulFunctionCall",
"src": "745:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "745:12:2"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "646:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "812:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "869:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "878:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "881:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "871:6:2"
},
"nodeType": "YulFunctionCall",
"src": "871:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "871:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "835:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "860:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "842:17:2"
},
"nodeType": "YulFunctionCall",
"src": "842:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "832:2:2"
},
"nodeType": "YulFunctionCall",
"src": "832:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "825:6:2"
},
"nodeType": "YulFunctionCall",
"src": "825:43:2"
},
"nodeType": "YulIf",
"src": "822:63:2"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "805:5:2",
"type": ""
}
],
"src": "769:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "949:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "959:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "981:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "968:12:2"
},
"nodeType": "YulFunctionCall",
"src": "968:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "959:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1024:5:2"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "997:26:2"
},
"nodeType": "YulFunctionCall",
"src": "997:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "997:33:2"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "927:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "935:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "943:5:2",
"type": ""
}
],
"src": "897:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1108:263:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1154:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1156:77:2"
},
"nodeType": "YulFunctionCall",
"src": "1156:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "1156:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1129:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1138:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1125:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1125:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1150:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1121:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1121:32:2"
},
"nodeType": "YulIf",
"src": "1118:119:2"
},
{
"nodeType": "YulBlock",
"src": "1247:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1262:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1276:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1266:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1291:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1326:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1337:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1322:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1322:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1346:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1301:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1301:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1291:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1078:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1089:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1101:6:2",
"type": ""
}
],
"src": "1042:329:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1436:40:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1447:22:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1463:5:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1457:5:2"
},
"nodeType": "YulFunctionCall",
"src": "1457:12:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1447:6:2"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1419:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1429:6:2",
"type": ""
}
],
"src": "1377:99:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1578:73:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1595:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1600:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1588:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1588:19:2"
},
"nodeType": "YulExpressionStatement",
"src": "1588:19:2"
},
{
"nodeType": "YulAssignment",
"src": "1616:29:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1635:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1640:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1631:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1631:14:2"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1616:11:2"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1550:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1555:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1566:11:2",
"type": ""
}
],
"src": "1482:169:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1719:184:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1729:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1738:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1733:1:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1798:63:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1823:3:2"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1828:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1819:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1819:11:2"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1842:3:2"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1847:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1838:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1838:11:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1832:5:2"
},
"nodeType": "YulFunctionCall",
"src": "1832:18:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1812:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1812:39:2"
},
"nodeType": "YulExpressionStatement",
"src": "1812:39:2"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1759:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1762:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1756:2:2"
},
"nodeType": "YulFunctionCall",
"src": "1756:13:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1770:19:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1772:15:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1781:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1784:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1777:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1777:10:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1772:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1752:3:2",
"statements": []
},
"src": "1748:113:2"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1881:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1886:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1877:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1877:16:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1895:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1870:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1870:27:2"
},
"nodeType": "YulExpressionStatement",
"src": "1870:27:2"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1701:3:2",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1706:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1711:6:2",
"type": ""
}
],
"src": "1657:246:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1957:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1967:38:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1985:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1992:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1981:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1981:14:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2001:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1997:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1997:7:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1977:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1977:28:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1967:6:2"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1940:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1950:6:2",
"type": ""
}
],
"src": "1909:102:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2109:285:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2119:53:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2166:5:2"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2133:32:2"
},
"nodeType": "YulFunctionCall",
"src": "2133:39:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2123:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2181:78:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2247:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2252:6:2"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2188:58:2"
},
"nodeType": "YulFunctionCall",
"src": "2188:71:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2181:3:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2307:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2314:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2303:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2303:16:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2321:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2326:6:2"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulIdentifier",
"src": "2268:34:2"
},
"nodeType": "YulFunctionCall",
"src": "2268:65:2"
},
"nodeType": "YulExpressionStatement",
"src": "2268:65:2"
},
{
"nodeType": "YulAssignment",
"src": "2342:46:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2353:3:2"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2380:6:2"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2358:21:2"
},
"nodeType": "YulFunctionCall",
"src": "2358:29:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2349:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2349:39:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2342:3:2"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2090:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2097:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2105:3:2",
"type": ""
}
],
"src": "2017:377:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2546:277:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2556:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2568:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2579:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2564:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2564:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2556:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2636:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2649:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2660:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2645:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2645:17:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "2592:43:2"
},
"nodeType": "YulFunctionCall",
"src": "2592:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "2592:71:2"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2684:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2695:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2680:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2680:18:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2704:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2710:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2700:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2700:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2673:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2673:48:2"
},
"nodeType": "YulExpressionStatement",
"src": "2673:48:2"
},
{
"nodeType": "YulAssignment",
"src": "2730:86:2",
"value": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2802:6:2"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2811:4:2"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2738:63:2"
},
"nodeType": "YulFunctionCall",
"src": "2738:78:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2730:4:2"
}
]
}
]
},
"name": "abi_encode_tuple_t_uint256_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2510:9:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2522:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2530:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2541:4:2",
"type": ""
}
],
"src": "2400:423:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2918:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2935:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2938:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2928:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2928:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "2928:12:2"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "2829:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3041:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3058:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3061:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3051:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3051:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "3051:12:2"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "2952:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3103:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3120:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3123:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3113:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3113:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "3113:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3217:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3220:4:2",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3210:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3210:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "3210:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3241:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3244:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3234:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3234:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "3234:15:2"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "3075:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3304:238:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3314:58:2",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3336:6:2"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3366:4:2"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "3344:21:2"
},
"nodeType": "YulFunctionCall",
"src": "3344:27:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3332:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3332:40:2"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "3318:10:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3483:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "3485:16:2"
},
"nodeType": "YulFunctionCall",
"src": "3485:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "3485:18:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "3426:10:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3438:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3423:2:2"
},
"nodeType": "YulFunctionCall",
"src": "3423:34:2"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "3462:10:2"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3474:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3459:2:2"
},
"nodeType": "YulFunctionCall",
"src": "3459:22:2"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "3420:2:2"
},
"nodeType": "YulFunctionCall",
"src": "3420:62:2"
},
"nodeType": "YulIf",
"src": "3417:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3521:2:2",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "3525:10:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3514:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3514:22:2"
},
"nodeType": "YulExpressionStatement",
"src": "3514:22:2"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3290:6:2",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "3298:4:2",
"type": ""
}
],
"src": "3261:281:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3589:88:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3599:30:2",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "3609:18:2"
},
"nodeType": "YulFunctionCall",
"src": "3609:20:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3599:6:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3658:6:2"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3666:4:2"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "3638:19:2"
},
"nodeType": "YulFunctionCall",
"src": "3638:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "3638:33:2"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "3573:4:2",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3582:6:2",
"type": ""
}
],
"src": "3548:129:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3750:241:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3855:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "3857:16:2"
},
"nodeType": "YulFunctionCall",
"src": "3857:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "3857:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3827:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3835:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3824:2:2"
},
"nodeType": "YulFunctionCall",
"src": "3824:30:2"
},
"nodeType": "YulIf",
"src": "3821:56:2"
},
{
"nodeType": "YulAssignment",
"src": "3887:37:2",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3917:6:2"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "3895:21:2"
},
"nodeType": "YulFunctionCall",
"src": "3895:29:2"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3887:4:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3961:23:2",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3973:4:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3979:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3969:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3969:15:2"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3961:4:2"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3734:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "3745:4:2",
"type": ""
}
],
"src": "3683:308:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4061:82:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4084:3:2"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4089:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4094:6:2"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "4071:12:2"
},
"nodeType": "YulFunctionCall",
"src": "4071:30:2"
},
"nodeType": "YulExpressionStatement",
"src": "4071:30:2"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4121:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4126:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4117:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4117:16:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4135:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4110:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4110:27:2"
},
"nodeType": "YulExpressionStatement",
"src": "4110:27:2"
}
]
},
"name": "copy_calldata_to_memory_with_cleanup",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4043:3:2",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4048:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4053:6:2",
"type": ""
}
],
"src": "3997:146:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4233:341:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4243:75:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4310:6:2"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4268:41:2"
},
"nodeType": "YulFunctionCall",
"src": "4268:49:2"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "4252:15:2"
},
"nodeType": "YulFunctionCall",
"src": "4252:66:2"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4243:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4334:5:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4341:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4327:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4327:21:2"
},
"nodeType": "YulExpressionStatement",
"src": "4327:21:2"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4357:27:2",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4372:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4379:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4368:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4368:16:2"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4361:3:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4422:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "4424:77:2"
},
"nodeType": "YulFunctionCall",
"src": "4424:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "4424:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4403:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4408:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4399:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4399:16:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4417:3:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4396:2:2"
},
"nodeType": "YulFunctionCall",
"src": "4396:25:2"
},
"nodeType": "YulIf",
"src": "4393:112:2"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4551:3:2"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4556:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4561:6:2"
}
],
"functionName": {
"name": "copy_calldata_to_memory_with_cleanup",
"nodeType": "YulIdentifier",
"src": "4514:36:2"
},
"nodeType": "YulFunctionCall",
"src": "4514:54:2"
},
"nodeType": "YulExpressionStatement",
"src": "4514:54:2"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4206:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4211:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4219:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "4227:5:2",
"type": ""
}
],
"src": "4149:425:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4656:278:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4705:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "4707:77:2"
},
"nodeType": "YulFunctionCall",
"src": "4707:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "4707:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4684:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4692:4:2",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4680:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4680:17:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4699:3:2"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "4676:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4676:27:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4669:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4669:35:2"
},
"nodeType": "YulIf",
"src": "4666:122:2"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4797:34:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4824:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "4811:12:2"
},
"nodeType": "YulFunctionCall",
"src": "4811:20:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4801:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4840:88:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4901:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4909:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4897:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4897:17:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4916:6:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4924:3:2"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4849:47:2"
},
"nodeType": "YulFunctionCall",
"src": "4849:79:2"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4840:5:2"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4634:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4642:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "4650:5:2",
"type": ""
}
],
"src": "4594:340:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5033:561:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5079:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "5081:77:2"
},
"nodeType": "YulFunctionCall",
"src": "5081:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "5081:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5054:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5063:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5050:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5050:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5075:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5046:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5046:32:2"
},
"nodeType": "YulIf",
"src": "5043:119:2"
},
{
"nodeType": "YulBlock",
"src": "5172:287:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5187:45:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5218:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5229:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5214:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5214:17:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5201:12:2"
},
"nodeType": "YulFunctionCall",
"src": "5201:31:2"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5191:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5279:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "5281:77:2"
},
"nodeType": "YulFunctionCall",
"src": "5281:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "5281:79:2"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5251:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5259:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5248:2:2"
},
"nodeType": "YulFunctionCall",
"src": "5248:30:2"
},
"nodeType": "YulIf",
"src": "5245:117:2"
},
{
"nodeType": "YulAssignment",
"src": "5376:73:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5421:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5432:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5417:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5417:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5441:7:2"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5386:30:2"
},
"nodeType": "YulFunctionCall",
"src": "5386:63:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5376:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5469:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5484:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5498:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5488:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5514:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5549:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5560:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5545:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5545:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5569:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "5524:20:2"
},
"nodeType": "YulFunctionCall",
"src": "5524:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5514:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptrt_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4995:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "5006:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5018:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5026:6:2",
"type": ""
}
],
"src": "4940:654:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5676:433:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5722:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "5724:77:2"
},
"nodeType": "YulFunctionCall",
"src": "5724:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "5724:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5697:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5706:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5693:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5693:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5718:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5689:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5689:32:2"
},
"nodeType": "YulIf",
"src": "5686:119:2"
},
{
"nodeType": "YulBlock",
"src": "5815:287:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5830:45:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5861:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5872:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5857:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5857:17:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5844:12:2"
},
"nodeType": "YulFunctionCall",
"src": "5844:31:2"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5834:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5922:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "5924:77:2"
},
"nodeType": "YulFunctionCall",
"src": "5924:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "5924:79:2"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5894:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5902:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5891:2:2"
},
"nodeType": "YulFunctionCall",
"src": "5891:30:2"
},
"nodeType": "YulIf",
"src": "5888:117:2"
},
{
"nodeType": "YulAssignment",
"src": "6019:73:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6064:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6075:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6060:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6060:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6084:7:2"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6029:30:2"
},
"nodeType": "YulFunctionCall",
"src": "6029:63:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6019:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5646:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "5657:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5669:6:2",
"type": ""
}
],
"src": "5600:509:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6233:195:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6243:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6255:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6266:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6251:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6251:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6243:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6290:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6301:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6286:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6286:17:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6309:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6315:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6305:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6305:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6279:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6279:47:2"
},
"nodeType": "YulExpressionStatement",
"src": "6279:47:2"
},
{
"nodeType": "YulAssignment",
"src": "6335:86:2",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6407:6:2"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6416:4:2"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "6343:63:2"
},
"nodeType": "YulFunctionCall",
"src": "6343:78:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6335:4:2"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6205:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6217:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6228:4:2",
"type": ""
}
],
"src": "6115:313:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6462:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6479:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6482:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6472:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6472:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "6472:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6576:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6579:4:2",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6569:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6569:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "6569:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6600:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6603:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6593:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6593:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "6593:15:2"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "6434:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6671:269:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6681:22:2",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "6695:4:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6701:1:2",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "6691:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6691:12:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6681:6:2"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "6712:38:2",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "6742:4:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6748:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "6738:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6738:12:2"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "6716:18:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6789:51:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6803:27:2",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6817:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6825:4:2",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "6813:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6813:17:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6803:6:2"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "6769:18:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "6762:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6762:26:2"
},
"nodeType": "YulIf",
"src": "6759:81:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6892:42:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "6906:16:2"
},
"nodeType": "YulFunctionCall",
"src": "6906:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "6906:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "6856:18:2"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6879:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6887:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "6876:2:2"
},
"nodeType": "YulFunctionCall",
"src": "6876:14:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "6853:2:2"
},
"nodeType": "YulFunctionCall",
"src": "6853:38:2"
},
"nodeType": "YulIf",
"src": "6850:84:2"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "6655:4:2",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6664:6:2",
"type": ""
}
],
"src": "6620:320:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6974:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6991:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6994:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6984:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6984:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "6984:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7088:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7091:4:2",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7081:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7081:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "7081:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7112:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7115:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7105:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7105:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "7105:15:2"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "6946:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7176:147:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7186:25:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7209:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7191:17:2"
},
"nodeType": "YulFunctionCall",
"src": "7191:20:2"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7186:1:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "7220:25:2",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7243:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7225:17:2"
},
"nodeType": "YulFunctionCall",
"src": "7225:20:2"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7220:1:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "7254:16:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7265:1:2"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7268:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7261:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7261:9:2"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "7254:3:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7294:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "7296:16:2"
},
"nodeType": "YulFunctionCall",
"src": "7296:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "7296:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7286:1:2"
},
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "7289:3:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "7283:2:2"
},
"nodeType": "YulFunctionCall",
"src": "7283:10:2"
},
"nodeType": "YulIf",
"src": "7280:36:2"
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "7163:1:2",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "7166:1:2",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "7172:3:2",
"type": ""
}
],
"src": "7132:191:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7383:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7393:11:2",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "7401:3:2"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "7393:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7421:1:2",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "7424:3:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7414:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7414:14:2"
},
"nodeType": "YulExpressionStatement",
"src": "7414:14:2"
},
{
"nodeType": "YulAssignment",
"src": "7437:26:2",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7455:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7458:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nodeType": "YulIdentifier",
"src": "7445:9:2"
},
"nodeType": "YulFunctionCall",
"src": "7445:18:2"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "7437:4:2"
}
]
}
]
},
"name": "array_dataslot_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "7370:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "7378:4:2",
"type": ""
}
],
"src": "7329:141:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7520:49:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7530:33:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7548:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7555:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7544:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7544:14:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7560:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "7540:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7540:23:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "7530:6:2"
}
]
}
]
},
"name": "divide_by_32_ceil",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7503:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "7513:6:2",
"type": ""
}
],
"src": "7476:93:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7628:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7638:37:2",
"value": {
"arguments": [
{
"name": "bits",
"nodeType": "YulIdentifier",
"src": "7663:4:2"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7669:5:2"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "7659:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7659:16:2"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "7638:8:2"
}
]
}
]
},
"name": "shift_left_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nodeType": "YulTypedName",
"src": "7603:4:2",
"type": ""
},
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7609:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "7619:8:2",
"type": ""
}
],
"src": "7575:107:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7764:317:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7774:35:2",
"value": {
"arguments": [
{
"name": "shiftBytes",
"nodeType": "YulIdentifier",
"src": "7795:10:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7807:1:2",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "7791:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7791:18:2"
},
"variables": [
{
"name": "shiftBits",
"nodeType": "YulTypedName",
"src": "7778:9:2",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "7818:109:2",
"value": {
"arguments": [
{
"name": "shiftBits",
"nodeType": "YulIdentifier",
"src": "7849:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7860:66:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nodeType": "YulIdentifier",
"src": "7830:18:2"
},
"nodeType": "YulFunctionCall",
"src": "7830:97:2"
},
"variables": [
{
"name": "mask",
"nodeType": "YulTypedName",
"src": "7822:4:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "7936:51:2",
"value": {
"arguments": [
{
"name": "shiftBits",
"nodeType": "YulIdentifier",
"src": "7967:9:2"
},
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "7978:8:2"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nodeType": "YulIdentifier",
"src": "7948:18:2"
},
"nodeType": "YulFunctionCall",
"src": "7948:39:2"
},
"variableNames": [
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "7936:8:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "7996:30:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8009:5:2"
},
{
"arguments": [
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "8020:4:2"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "8016:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8016:9:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "8005:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8005:21:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7996:5:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "8035:40:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8048:5:2"
},
{
"arguments": [
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "8059:8:2"
},
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "8069:4:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "8055:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8055:19:2"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "8045:2:2"
},
"nodeType": "YulFunctionCall",
"src": "8045:30:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "8035:6:2"
}
]
}
]
},
"name": "update_byte_slice_dynamic32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7725:5:2",
"type": ""
},
{
"name": "shiftBytes",
"nodeType": "YulTypedName",
"src": "7732:10:2",
"type": ""
},
{
"name": "toInsert",
"nodeType": "YulTypedName",
"src": "7744:8:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "7757:6:2",
"type": ""
}
],
"src": "7688:393:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8119:28:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8129:12:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "8136:5:2"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "8129:3:2"
}
]
}
]
},
"name": "identity",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8105:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "8115:3:2",
"type": ""
}
],
"src": "8087:60:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8213:82:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8223:66:2",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8281:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "8263:17:2"
},
"nodeType": "YulFunctionCall",
"src": "8263:24:2"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "8254:8:2"
},
"nodeType": "YulFunctionCall",
"src": "8254:34:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "8236:17:2"
},
"nodeType": "YulFunctionCall",
"src": "8236:53:2"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "8223:9:2"
}
]
}
]
},
"name": "convert_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8193:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "8203:9:2",
"type": ""
}
],
"src": "8153:142:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8348:28:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8358:12:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "8365:5:2"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "8358:3:2"
}
]
}
]
},
"name": "prepare_store_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8334:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "8344:3:2",
"type": ""
}
],
"src": "8301:75:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8458:193:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8468:63:2",
"value": {
"arguments": [
{
"name": "value_0",
"nodeType": "YulIdentifier",
"src": "8523:7:2"
}
],
"functionName": {
"name": "convert_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "8492:30:2"
},
"nodeType": "YulFunctionCall",
"src": "8492:39:2"
},
"variables": [
{
"name": "convertedValue_0",
"nodeType": "YulTypedName",
"src": "8472:16:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "8547:4:2"
},
{
"arguments": [
{
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "8587:4:2"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "8581:5:2"
},
"nodeType": "YulFunctionCall",
"src": "8581:11:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8594:6:2"
},
{
"arguments": [
{
"name": "convertedValue_0",
"nodeType": "YulIdentifier",
"src": "8626:16:2"
}
],
"functionName": {
"name": "prepare_store_t_uint256",
"nodeType": "YulIdentifier",
"src": "8602:23:2"
},
"nodeType": "YulFunctionCall",
"src": "8602:41:2"
}
],
"functionName": {
"name": "update_byte_slice_dynamic32",
"nodeType": "YulIdentifier",
"src": "8553:27:2"
},
"nodeType": "YulFunctionCall",
"src": "8553:91:2"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "8540:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8540:105:2"
},
"nodeType": "YulExpressionStatement",
"src": "8540:105:2"
}
]
},
"name": "update_storage_value_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "8435:4:2",
"type": ""
},
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8441:6:2",
"type": ""
},
{
"name": "value_0",
"nodeType": "YulTypedName",
"src": "8449:7:2",
"type": ""
}
],
"src": "8382:269:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8706:24:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8716:8:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8723:1:2",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "8716:3:2"
}
]
}
]
},
"name": "zero_value_for_split_t_uint256",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "8702:3:2",
"type": ""
}
],
"src": "8657:73:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8789:136:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8799:46:2",
"value": {
"arguments": [],
"functionName": {
"name": "zero_value_for_split_t_uint256",
"nodeType": "YulIdentifier",
"src": "8813:30:2"
},
"nodeType": "YulFunctionCall",
"src": "8813:32:2"
},
"variables": [
{
"name": "zero_0",
"nodeType": "YulTypedName",
"src": "8803:6:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "8898:4:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8904:6:2"
},
{
"name": "zero_0",
"nodeType": "YulIdentifier",
"src": "8912:6:2"
}
],
"functionName": {
"name": "update_storage_value_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "8854:43:2"
},
"nodeType": "YulFunctionCall",
"src": "8854:65:2"
},
"nodeType": "YulExpressionStatement",
"src": "8854:65:2"
}
]
},
"name": "storage_set_to_zero_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "8775:4:2",
"type": ""
},
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8781:6:2",
"type": ""
}
],
"src": "8736:189:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8981:136:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "9048:63:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "9092:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9099:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "storage_set_to_zero_t_uint256",
"nodeType": "YulIdentifier",
"src": "9062:29:2"
},
"nodeType": "YulFunctionCall",
"src": "9062:39:2"
},
"nodeType": "YulExpressionStatement",
"src": "9062:39:2"
}
]
},
"condition": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "9001:5:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9008:3:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "8998:2:2"
},
"nodeType": "YulFunctionCall",
"src": "8998:14:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "9013:26:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9015:22:2",
"value": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "9028:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9035:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9024:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9024:13:2"
},
"variableNames": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "9015:5:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "8995:2:2",
"statements": []
},
"src": "8991:120:2"
}
]
},
"name": "clear_storage_range_t_bytes1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nodeType": "YulTypedName",
"src": "8969:5:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8976:3:2",
"type": ""
}
],
"src": "8931:186:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9202:464:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "9228:431:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9242:54:2",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "9290:5:2"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nodeType": "YulIdentifier",
"src": "9258:31:2"
},
"nodeType": "YulFunctionCall",
"src": "9258:38:2"
},
"variables": [
{
"name": "dataArea",
"nodeType": "YulTypedName",
"src": "9246:8:2",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "9309:63:2",
"value": {
"arguments": [
{
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "9332:8:2"
},
{
"arguments": [
{
"name": "startIndex",
"nodeType": "YulIdentifier",
"src": "9360:10:2"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nodeType": "YulIdentifier",
"src": "9342:17:2"
},
"nodeType": "YulFunctionCall",
"src": "9342:29:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9328:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9328:44:2"
},
"variables": [
{
"name": "deleteStart",
"nodeType": "YulTypedName",
"src": "9313:11:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "9529:27:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9531:23:2",
"value": {
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "9546:8:2"
},
"variableNames": [
{
"name": "deleteStart",
"nodeType": "YulIdentifier",
"src": "9531:11:2"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nodeType": "YulIdentifier",
"src": "9513:10:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9525:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "9510:2:2"
},
"nodeType": "YulFunctionCall",
"src": "9510:18:2"
},
"nodeType": "YulIf",
"src": "9507:49:2"
},
{
"expression": {
"arguments": [
{
"name": "deleteStart",
"nodeType": "YulIdentifier",
"src": "9598:11:2"
},
{
"arguments": [
{
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "9615:8:2"
},
{
"arguments": [
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "9643:3:2"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nodeType": "YulIdentifier",
"src": "9625:17:2"
},
"nodeType": "YulFunctionCall",
"src": "9625:22:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9611:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9611:37:2"
}
],
"functionName": {
"name": "clear_storage_range_t_bytes1",
"nodeType": "YulIdentifier",
"src": "9569:28:2"
},
"nodeType": "YulFunctionCall",
"src": "9569:80:2"
},
"nodeType": "YulExpressionStatement",
"src": "9569:80:2"
}
]
},
"condition": {
"arguments": [
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "9219:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9224:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "9216:2:2"
},
"nodeType": "YulFunctionCall",
"src": "9216:11:2"
},
"nodeType": "YulIf",
"src": "9213:446:2"
}
]
},
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "9178:5:2",
"type": ""
},
{
"name": "len",
"nodeType": "YulTypedName",
"src": "9185:3:2",
"type": ""
},
{
"name": "startIndex",
"nodeType": "YulTypedName",
"src": "9190:10:2",
"type": ""
}
],
"src": "9123:543:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9735:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9745:37:2",
"value": {
"arguments": [
{
"name": "bits",
"nodeType": "YulIdentifier",
"src": "9770:4:2"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9776:5:2"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "9766:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9766:16:2"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "9745:8:2"
}
]
}
]
},
"name": "shift_right_unsigned_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nodeType": "YulTypedName",
"src": "9710:4:2",
"type": ""
},
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9716:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "9726:8:2",
"type": ""
}
],
"src": "9672:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9846:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9856:68:2",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9905:1:2",
"type": "",
"value": "8"
},
{
"name": "bytes",
"nodeType": "YulIdentifier",
"src": "9908:5:2"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "9901:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9901:13:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9920:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "9916:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9916:6:2"
}
],
"functionName": {
"name": "shift_right_unsigned_dynamic",
"nodeType": "YulIdentifier",
"src": "9872:28:2"
},
"nodeType": "YulFunctionCall",
"src": "9872:51:2"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "9868:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9868:56:2"
},
"variables": [
{
"name": "mask",
"nodeType": "YulTypedName",
"src": "9860:4:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "9933:25:2",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "9947:4:2"
},
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "9953:4:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "9943:3:2"
},
"nodeType": "YulFunctionCall",
"src": "9943:15:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "9933:6:2"
}
]
}
]
},
"name": "mask_bytes_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "9823:4:2",
"type": ""
},
{
"name": "bytes",
"nodeType": "YulTypedName",
"src": "9829:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "9839:6:2",
"type": ""
}
],
"src": "9795:169:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10050:214:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10183:37:2",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "10210:4:2"
},
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "10216:3:2"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nodeType": "YulIdentifier",
"src": "10191:18:2"
},
"nodeType": "YulFunctionCall",
"src": "10191:29:2"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "10183:4:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "10229:29:2",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "10240:4:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10250:1:2",
"type": "",
"value": "2"
},
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "10253:3:2"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "10246:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10246:11:2"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "10237:2:2"
},
"nodeType": "YulFunctionCall",
"src": "10237:21:2"
},
"variableNames": [
{
"name": "used",
"nodeType": "YulIdentifier",
"src": "10229:4:2"
}
]
}
]
},
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "10031:4:2",
"type": ""
},
{
"name": "len",
"nodeType": "YulTypedName",
"src": "10037:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "used",
"nodeType": "YulTypedName",
"src": "10045:4:2",
"type": ""
}
],
"src": "9969:295:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10361:1303:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10372:51:2",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "10419:3:2"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "10386:32:2"
},
"nodeType": "YulFunctionCall",
"src": "10386:37:2"
},
"variables": [
{
"name": "newLen",
"nodeType": "YulTypedName",
"src": "10376:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "10508:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "10510:16:2"
},
"nodeType": "YulFunctionCall",
"src": "10510:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "10510:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "10480:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10488:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "10477:2:2"
},
"nodeType": "YulFunctionCall",
"src": "10477:30:2"
},
"nodeType": "YulIf",
"src": "10474:56:2"
},
{
"nodeType": "YulVariableDeclaration",
"src": "10540:52:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "10586:4:2"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "10580:5:2"
},
"nodeType": "YulFunctionCall",
"src": "10580:11:2"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nodeType": "YulIdentifier",
"src": "10554:25:2"
},
"nodeType": "YulFunctionCall",
"src": "10554:38:2"
},
"variables": [
{
"name": "oldLen",
"nodeType": "YulTypedName",
"src": "10544:6:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "10685:4:2"
},
{
"name": "oldLen",
"nodeType": "YulIdentifier",
"src": "10691:6:2"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "10699:6:2"
}
],
"functionName": {
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nodeType": "YulIdentifier",
"src": "10639:45:2"
},
"nodeType": "YulFunctionCall",
"src": "10639:67:2"
},
"nodeType": "YulExpressionStatement",
"src": "10639:67:2"
},
{
"nodeType": "YulVariableDeclaration",
"src": "10716:18:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10733:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "srcOffset",
"nodeType": "YulTypedName",
"src": "10720:9:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "10744:17:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10757:4:2",
"type": "",
"value": "0x20"
},
"variableNames": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "10744:9:2"
}
]
},
{
"cases": [
{
"body": {
"nodeType": "YulBlock",
"src": "10808:611:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10822:37:2",
"value": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "10841:6:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10853:4:2",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "10849:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10849:9:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "10837:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10837:22:2"
},
"variables": [
{
"name": "loopEnd",
"nodeType": "YulTypedName",
"src": "10826:7:2",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "10873:51:2",
"value": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "10919:4:2"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nodeType": "YulIdentifier",
"src": "10887:31:2"
},
"nodeType": "YulFunctionCall",
"src": "10887:37:2"
},
"variables": [
{
"name": "dstPtr",
"nodeType": "YulTypedName",
"src": "10877:6:2",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "10937:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10946:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "10941:1:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "11005:163:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "11030:6:2"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "11048:3:2"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "11053:9:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11044:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11044:19:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "11038:5:2"
},
"nodeType": "YulFunctionCall",
"src": "11038:26:2"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "11023:6:2"
},
"nodeType": "YulFunctionCall",
"src": "11023:42:2"
},
"nodeType": "YulExpressionStatement",
"src": "11023:42:2"
},
{
"nodeType": "YulAssignment",
"src": "11082:24:2",
"value": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "11096:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11104:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11092:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11092:14:2"
},
"variableNames": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "11082:6:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "11123:31:2",
"value": {
"arguments": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "11140:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11151:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11136:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11136:18:2"
},
"variableNames": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "11123:9:2"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "10971:1:2"
},
{
"name": "loopEnd",
"nodeType": "YulIdentifier",
"src": "10974:7:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "10968:2:2"
},
"nodeType": "YulFunctionCall",
"src": "10968:14:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "10983:21:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10985:17:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "10994:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10997:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10990:3:2"
},
"nodeType": "YulFunctionCall",
"src": "10990:12:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "10985:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "10964:3:2",
"statements": []
},
"src": "10960:208:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11204:156:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11222:43:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "11249:3:2"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "11254:9:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11245:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11245:19:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "11239:5:2"
},
"nodeType": "YulFunctionCall",
"src": "11239:26:2"
},
"variables": [
{
"name": "lastValue",
"nodeType": "YulTypedName",
"src": "11226:9:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "11289:6:2"
},
{
"arguments": [
{
"name": "lastValue",
"nodeType": "YulIdentifier",
"src": "11316:9:2"
},
{
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "11331:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11339:4:2",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "11327:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11327:17:2"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nodeType": "YulIdentifier",
"src": "11297:18:2"
},
"nodeType": "YulFunctionCall",
"src": "11297:48:2"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "11282:6:2"
},
"nodeType": "YulFunctionCall",
"src": "11282:64:2"
},
"nodeType": "YulExpressionStatement",
"src": "11282:64:2"
}
]
},
"condition": {
"arguments": [
{
"name": "loopEnd",
"nodeType": "YulIdentifier",
"src": "11187:7:2"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "11196:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "11184:2:2"
},
"nodeType": "YulFunctionCall",
"src": "11184:19:2"
},
"nodeType": "YulIf",
"src": "11181:179:2"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "11380:4:2"
},
{
"arguments": [
{
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "11394:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11402:1:2",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "11390:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11390:14:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11406:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11386:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11386:22:2"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "11373:6:2"
},
"nodeType": "YulFunctionCall",
"src": "11373:36:2"
},
"nodeType": "YulExpressionStatement",
"src": "11373:36:2"
}
]
},
"nodeType": "YulCase",
"src": "10801:618:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10806:1:2",
"type": "",
"value": "1"
}
},
{
"body": {
"nodeType": "YulBlock",
"src": "11436:222:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11450:14:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11463:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11454:5:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "11487:67:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11505:35:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "11524:3:2"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "11529:9:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11520:3:2"
},
"nodeType": "YulFunctionCall",
"src": "11520:19:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "11514:5:2"
},
"nodeType": "YulFunctionCall",
"src": "11514:26:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11505:5:2"
}
]
}
]
},
"condition": {
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "11480:6:2"
},
"nodeType": "YulIf",
"src": "11477:77:2"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "11574:4:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11633:5:2"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "11640:6:2"
}
],
"functionName": {
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nodeType": "YulIdentifier",
"src": "11580:52:2"
},
"nodeType": "YulFunctionCall",
"src": "11580:67:2"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "11567:6:2"
},
"nodeType": "YulFunctionCall",
"src": "11567:81:2"
},
"nodeType": "YulExpressionStatement",
"src": "11567:81:2"
}
]
},
"nodeType": "YulCase",
"src": "11428:230:2",
"value": "default"
}
],
"expression": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "10781:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10789:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "10778:2:2"
},
"nodeType": "YulFunctionCall",
"src": "10778:14:2"
},
"nodeType": "YulSwitch",
"src": "10771:887:2"
}
]
},
"name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "10350:4:2",
"type": ""
},
{
"name": "src",
"nodeType": "YulTypedName",
"src": "10356:3:2",
"type": ""
}
],
"src": "10269:1395:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11784:34:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11794:18:2",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11809:3:2"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "11794:11:2"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "11756:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "11761:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "11772:11:2",
"type": ""
}
],
"src": "11670:148:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11934:280:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11944:53:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11991:5:2"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "11958:32:2"
},
"nodeType": "YulFunctionCall",
"src": "11958:39:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "11948:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "12006:96:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12090:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "12095:6:2"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "12013:76:2"
},
"nodeType": "YulFunctionCall",
"src": "12013:89:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12006:3:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12150:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12157:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12146:3:2"
},
"nodeType": "YulFunctionCall",
"src": "12146:16:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12164:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "12169:6:2"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulIdentifier",
"src": "12111:34:2"
},
"nodeType": "YulFunctionCall",
"src": "12111:65:2"
},
"nodeType": "YulExpressionStatement",
"src": "12111:65:2"
},
{
"nodeType": "YulAssignment",
"src": "12185:23:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12196:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "12201:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12192:3:2"
},
"nodeType": "YulFunctionCall",
"src": "12192:16:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12185:3:2"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11915:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "11922:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "11930:3:2",
"type": ""
}
],
"src": "11824:390:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12356:139:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12367:102:2",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "12456:6:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12465:3:2"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "12374:81:2"
},
"nodeType": "YulFunctionCall",
"src": "12374:95:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12367:3:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "12479:10:2",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12486:3:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12479:3:2"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "12335:3:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "12341:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "12352:3:2",
"type": ""
}
],
"src": "12220:275:2"
}
]
},
"contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_uint256_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061007d5760003560e01c80636f760f411161005b5780636f760f41146100ed5780638bab8dd514610109578063b4a24f5014610139578063ef5fb05b146101585761007d565b80632e64cec1146100825780632ebce631146100a05780636057361d146100d1575b600080fd5b61008a610176565b60405161009791906103f8565b60405180910390f35b6100ba60048036038101906100b59190610453565b61017f565b6040516100c8929190610510565b60405180910390f35b6100eb60048036038101906100e69190610453565b61023b565b005b61010760048036038101906101029190610675565b610251565b005b610123600480360381019061011e91906106d1565b6102da565b60405161013091906103f8565b60405180910390f35b610141610308565b60405161014f929190610510565b60405180910390f35b6101606103a2565b60405161016d919061071a565b60405180910390f35b60008054905090565b6002818154811061018f57600080fd5b90600052602060002090600202016000915090508060000154908060010180546101b89061076b565b80601f01602080910402602001604051908101604052809291908181526020018280546101e49061076b565b80156102315780601f1061020657610100808354040283529160200191610231565b820191906000526020600020905b81548152906001019060200180831161021457829003601f168201915b5050505050905082565b60058161024891906107cb565b60008190555050565b600260405180604001604052808381526020018481525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010190816102b091906109ab565b505050806003836040516102c49190610ab9565b9081526020016040518091039020819055505050565b6003818051602081018201805184825260208301602085012081835280955050505050506000915090505481565b600480600001549080600101805461031f9061076b565b80601f016020809104026020016040519081016040528092919081815260200182805461034b9061076b565b80156103985780601f1061036d57610100808354040283529160200191610398565b820191906000526020600020905b81548152906001019060200180831161037b57829003601f168201915b5050505050905082565b60606040518060400160405280600581526020017f48656c6c6f000000000000000000000000000000000000000000000000000000815250905090565b6000819050919050565b6103f2816103df565b82525050565b600060208201905061040d60008301846103e9565b92915050565b6000604051905090565b600080fd5b600080fd5b610430816103df565b811461043b57600080fd5b50565b60008135905061044d81610427565b92915050565b6000602082840312156104695761046861041d565b5b60006104778482850161043e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156104ba57808201518184015260208101905061049f565b60008484015250505050565b6000601f19601f8301169050919050565b60006104e282610480565b6104ec818561048b565b93506104fc81856020860161049c565b610505816104c6565b840191505092915050565b600060408201905061052560008301856103e9565b818103602083015261053781846104d7565b90509392505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610582826104c6565b810181811067ffffffffffffffff821117156105a1576105a061054a565b5b80604052505050565b60006105b4610413565b90506105c08282610579565b919050565b600067ffffffffffffffff8211156105e0576105df61054a565b5b6105e9826104c6565b9050602081019050919050565b82818337600083830152505050565b6000610618610613846105c5565b6105aa565b90508281526020810184848401111561063457610633610545565b5b61063f8482856105f6565b509392505050565b600082601f83011261065c5761065b610540565b5b813561066c848260208601610605565b91505092915050565b6000806040838503121561068c5761068b61041d565b5b600083013567ffffffffffffffff8111156106aa576106a9610422565b5b6106b685828601610647565b92505060206106c78582860161043e565b9150509250929050565b6000602082840312156106e7576106e661041d565b5b600082013567ffffffffffffffff81111561070557610704610422565b5b61071184828501610647565b91505092915050565b6000602082019050818103600083015261073481846104d7565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061078357607f821691505b6020821081036107965761079561073c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006107d6826103df565b91506107e1836103df565b92508282019050808211156107f9576107f861079c565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026108617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610824565b61086b8683610824565b95508019841693508086168417925050509392505050565b6000819050919050565b60006108a86108a361089e846103df565b610883565b6103df565b9050919050565b6000819050919050565b6108c28361088d565b6108d66108ce826108af565b848454610831565b825550505050565b600090565b6108eb6108de565b6108f68184846108b9565b505050565b5b8181101561091a5761090f6000826108e3565b6001810190506108fc565b5050565b601f82111561095f57610930816107ff565b61093984610814565b81016020851015610948578190505b61095c61095485610814565b8301826108fb565b50505b505050565b600082821c905092915050565b600061098260001984600802610964565b1980831691505092915050565b600061099b8383610971565b9150826002028217905092915050565b6109b482610480565b67ffffffffffffffff8111156109cd576109cc61054a565b5b6109d7825461076b565b6109e282828561091e565b600060209050601f831160018114610a155760008415610a03578287015190505b610a0d858261098f565b865550610a75565b601f198416610a23866107ff565b60005b82811015610a4b57848901518255600182019150602085019450602081019050610a26565b86831015610a685784890151610a64601f891682610971565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b6000610a9382610480565b610a9d8185610a7d565b9350610aad81856020860161049c565b80840191505092915050565b6000610ac58284610a88565b91508190509291505056fea26469706673582212205f66ddcb933cd24d7f48d607b618937bdffc2379b55ca7c6c00c1eb45f941c2464736f6c63430008130033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6F760F41 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x6F760F41 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x8BAB8DD5 EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0xB4A24F50 EQ PUSH2 0x139 JUMPI DUP1 PUSH4 0xEF5FB05B EQ PUSH2 0x158 JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x2EBCE631 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0xD1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8A PUSH2 0x176 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x3F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB5 SWAP2 SWAP1 PUSH2 0x453 JUMP JUMPDEST PUSH2 0x17F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP3 SWAP2 SWAP1 PUSH2 0x510 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE6 SWAP2 SWAP1 PUSH2 0x453 JUMP JUMPDEST PUSH2 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x107 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x102 SWAP2 SWAP1 PUSH2 0x675 JUMP JUMPDEST PUSH2 0x251 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x123 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x11E SWAP2 SWAP1 PUSH2 0x6D1 JUMP JUMPDEST PUSH2 0x2DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x130 SWAP2 SWAP1 PUSH2 0x3F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x141 PUSH2 0x308 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14F SWAP3 SWAP2 SWAP1 PUSH2 0x510 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x160 PUSH2 0x3A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16D SWAP2 SWAP1 PUSH2 0x71A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x18F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x1B8 SWAP1 PUSH2 0x76B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1E4 SWAP1 PUSH2 0x76B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x231 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x206 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x231 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x214 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x5 DUP2 PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x7CB JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0x2B0 SWAP2 SWAP1 PUSH2 0x9AB JUMP JUMPDEST POP POP POP DUP1 PUSH1 0x3 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2C4 SWAP2 SWAP1 PUSH2 0xAB9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 ADD DUP1 MLOAD DUP5 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP6 ADD KECCAK256 DUP2 DUP4 MSTORE DUP1 SWAP6 POP POP POP POP POP POP PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x31F SWAP1 PUSH2 0x76B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x34B SWAP1 PUSH2 0x76B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x398 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x36D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x398 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x37B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x48656C6C6F000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3F2 DUP2 PUSH2 0x3DF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x40D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3E9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x430 DUP2 PUSH2 0x3DF JUMP JUMPDEST DUP2 EQ PUSH2 0x43B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x44D DUP2 PUSH2 0x427 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x469 JUMPI PUSH2 0x468 PUSH2 0x41D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x477 DUP5 DUP3 DUP6 ADD PUSH2 0x43E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4BA JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x49F JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4E2 DUP3 PUSH2 0x480 JUMP JUMPDEST PUSH2 0x4EC DUP2 DUP6 PUSH2 0x48B JUMP JUMPDEST SWAP4 POP PUSH2 0x4FC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x49C JUMP JUMPDEST PUSH2 0x505 DUP2 PUSH2 0x4C6 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x525 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3E9 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x537 DUP2 DUP5 PUSH2 0x4D7 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x582 DUP3 PUSH2 0x4C6 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x5A1 JUMPI PUSH2 0x5A0 PUSH2 0x54A JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B4 PUSH2 0x413 JUMP JUMPDEST SWAP1 POP PUSH2 0x5C0 DUP3 DUP3 PUSH2 0x579 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5E0 JUMPI PUSH2 0x5DF PUSH2 0x54A JUMP JUMPDEST JUMPDEST PUSH2 0x5E9 DUP3 PUSH2 0x4C6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x618 PUSH2 0x613 DUP5 PUSH2 0x5C5 JUMP JUMPDEST PUSH2 0x5AA JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x634 JUMPI PUSH2 0x633 PUSH2 0x545 JUMP JUMPDEST JUMPDEST PUSH2 0x63F DUP5 DUP3 DUP6 PUSH2 0x5F6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x65C JUMPI PUSH2 0x65B PUSH2 0x540 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x66C DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x605 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x68C JUMPI PUSH2 0x68B PUSH2 0x41D JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6AA JUMPI PUSH2 0x6A9 PUSH2 0x422 JUMP JUMPDEST JUMPDEST PUSH2 0x6B6 DUP6 DUP3 DUP7 ADD PUSH2 0x647 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6C7 DUP6 DUP3 DUP7 ADD PUSH2 0x43E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6E7 JUMPI PUSH2 0x6E6 PUSH2 0x41D JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x705 JUMPI PUSH2 0x704 PUSH2 0x422 JUMP JUMPDEST JUMPDEST PUSH2 0x711 DUP5 DUP3 DUP6 ADD PUSH2 0x647 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x734 DUP2 DUP5 PUSH2 0x4D7 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x783 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x796 JUMPI PUSH2 0x795 PUSH2 0x73C JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x7D6 DUP3 PUSH2 0x3DF JUMP JUMPDEST SWAP2 POP PUSH2 0x7E1 DUP4 PUSH2 0x3DF JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x7F9 JUMPI PUSH2 0x7F8 PUSH2 0x79C JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x861 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x824 JUMP JUMPDEST PUSH2 0x86B DUP7 DUP4 PUSH2 0x824 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A8 PUSH2 0x8A3 PUSH2 0x89E DUP5 PUSH2 0x3DF JUMP JUMPDEST PUSH2 0x883 JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8C2 DUP4 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x8D6 PUSH2 0x8CE DUP3 PUSH2 0x8AF JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x831 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x8EB PUSH2 0x8DE JUMP JUMPDEST PUSH2 0x8F6 DUP2 DUP5 DUP5 PUSH2 0x8B9 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x91A JUMPI PUSH2 0x90F PUSH1 0x0 DUP3 PUSH2 0x8E3 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x8FC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x95F JUMPI PUSH2 0x930 DUP2 PUSH2 0x7FF JUMP JUMPDEST PUSH2 0x939 DUP5 PUSH2 0x814 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x948 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x95C PUSH2 0x954 DUP6 PUSH2 0x814 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x8FB JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x982 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x964 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x99B DUP4 DUP4 PUSH2 0x971 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9B4 DUP3 PUSH2 0x480 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9CD JUMPI PUSH2 0x9CC PUSH2 0x54A JUMP JUMPDEST JUMPDEST PUSH2 0x9D7 DUP3 SLOAD PUSH2 0x76B JUMP JUMPDEST PUSH2 0x9E2 DUP3 DUP3 DUP6 PUSH2 0x91E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xA15 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xA03 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0xA0D DUP6 DUP3 PUSH2 0x98F JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0xA75 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0xA23 DUP7 PUSH2 0x7FF JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xA4B JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA26 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0xA68 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0xA64 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x971 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA93 DUP3 PUSH2 0x480 JUMP JUMPDEST PUSH2 0xA9D DUP2 DUP6 PUSH2 0xA7D JUMP JUMPDEST SWAP4 POP PUSH2 0xAAD DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x49C JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC5 DUP3 DUP5 PUSH2 0xA88 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5F PUSH7 0xDDCB933CD24D7F BASEFEE 0xD6 SMOD 0xB6 XOR SWAP4 PUSH28 0xDFFC2379B55CA7C6C00C1EB45F941C2464736F6C6343000813003300 ",
"sourceMap": "171:314:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;829:91:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;544:28;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;379:103:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;961:262:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;581:54;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;644:60;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;219:88:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;829:91:1;869:7;896:16;;889:23;;829:91;:::o;544:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;379:103:0:-;473:1;460:10;:14;;;;:::i;:::-;441:16;:33;;;;379:103;:::o;961:262:1:-;1110:12;1128:30;;;;;;;;1135:15;1128:30;;;;1152:5;1128:30;;;1110:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1200:15;1170:20;1191:5;1170:27;;;;;;:::i;:::-;;;;;;;;;;;;;:45;;;;961:262;;:::o;581:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;644:60::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;219:88:0:-;259:13;285:14;;;;;;;;;;;;;;;;;;;219:88;:::o;7:77:2:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:99::-;1429:6;1463:5;1457:12;1447:22;;1377:99;;;:::o;1482:169::-;1566:11;1600:6;1595:3;1588:19;1640:4;1635:3;1631:14;1616:29;;1482:169;;;;:::o;1657:246::-;1738:1;1748:113;1762:6;1759:1;1756:13;1748:113;;;1847:1;1842:3;1838:11;1832:18;1828:1;1823:3;1819:11;1812:39;1784:2;1781:1;1777:10;1772:15;;1748:113;;;1895:1;1886:6;1881:3;1877:16;1870:27;1719:184;1657:246;;;:::o;1909:102::-;1950:6;2001:2;1997:7;1992:2;1985:5;1981:14;1977:28;1967:38;;1909:102;;;:::o;2017:377::-;2105:3;2133:39;2166:5;2133:39;:::i;:::-;2188:71;2252:6;2247:3;2188:71;:::i;:::-;2181:78;;2268:65;2326:6;2321:3;2314:4;2307:5;2303:16;2268:65;:::i;:::-;2358:29;2380:6;2358:29;:::i;:::-;2353:3;2349:39;2342:46;;2109:285;2017:377;;;;:::o;2400:423::-;2541:4;2579:2;2568:9;2564:18;2556:26;;2592:71;2660:1;2649:9;2645:17;2636:6;2592:71;:::i;:::-;2710:9;2704:4;2700:20;2695:2;2684:9;2680:18;2673:48;2738:78;2811:4;2802:6;2738:78;:::i;:::-;2730:86;;2400:423;;;;;:::o;2829:117::-;2938:1;2935;2928:12;2952:117;3061:1;3058;3051:12;3075:180;3123:77;3120:1;3113:88;3220:4;3217:1;3210:15;3244:4;3241:1;3234:15;3261:281;3344:27;3366:4;3344:27;:::i;:::-;3336:6;3332:40;3474:6;3462:10;3459:22;3438:18;3426:10;3423:34;3420:62;3417:88;;;3485:18;;:::i;:::-;3417:88;3525:10;3521:2;3514:22;3304:238;3261:281;;:::o;3548:129::-;3582:6;3609:20;;:::i;:::-;3599:30;;3638:33;3666:4;3658:6;3638:33;:::i;:::-;3548:129;;;:::o;3683:308::-;3745:4;3835:18;3827:6;3824:30;3821:56;;;3857:18;;:::i;:::-;3821:56;3895:29;3917:6;3895:29;:::i;:::-;3887:37;;3979:4;3973;3969:15;3961:23;;3683:308;;;:::o;3997:146::-;4094:6;4089:3;4084;4071:30;4135:1;4126:6;4121:3;4117:16;4110:27;3997:146;;;:::o;4149:425::-;4227:5;4252:66;4268:49;4310:6;4268:49;:::i;:::-;4252:66;:::i;:::-;4243:75;;4341:6;4334:5;4327:21;4379:4;4372:5;4368:16;4417:3;4408:6;4403:3;4399:16;4396:25;4393:112;;;4424:79;;:::i;:::-;4393:112;4514:54;4561:6;4556:3;4551;4514:54;:::i;:::-;4233:341;4149:425;;;;;:::o;4594:340::-;4650:5;4699:3;4692:4;4684:6;4680:17;4676:27;4666:122;;4707:79;;:::i;:::-;4666:122;4824:6;4811:20;4849:79;4924:3;4916:6;4909:4;4901:6;4897:17;4849:79;:::i;:::-;4840:88;;4656:278;4594:340;;;;:::o;4940:654::-;5018:6;5026;5075:2;5063:9;5054:7;5050:23;5046:32;5043:119;;;5081:79;;:::i;:::-;5043:119;5229:1;5218:9;5214:17;5201:31;5259:18;5251:6;5248:30;5245:117;;;5281:79;;:::i;:::-;5245:117;5386:63;5441:7;5432:6;5421:9;5417:22;5386:63;:::i;:::-;5376:73;;5172:287;5498:2;5524:53;5569:7;5560:6;5549:9;5545:22;5524:53;:::i;:::-;5514:63;;5469:118;4940:654;;;;;:::o;5600:509::-;5669:6;5718:2;5706:9;5697:7;5693:23;5689:32;5686:119;;;5724:79;;:::i;:::-;5686:119;5872:1;5861:9;5857:17;5844:31;5902:18;5894:6;5891:30;5888:117;;;5924:79;;:::i;:::-;5888:117;6029:63;6084:7;6075:6;6064:9;6060:22;6029:63;:::i;:::-;6019:73;;5815:287;5600:509;;;;:::o;6115:313::-;6228:4;6266:2;6255:9;6251:18;6243:26;;6315:9;6309:4;6305:20;6301:1;6290:9;6286:17;6279:47;6343:78;6416:4;6407:6;6343:78;:::i;:::-;6335:86;;6115:313;;;;:::o;6434:180::-;6482:77;6479:1;6472:88;6579:4;6576:1;6569:15;6603:4;6600:1;6593:15;6620:320;6664:6;6701:1;6695:4;6691:12;6681:22;;6748:1;6742:4;6738:12;6769:18;6759:81;;6825:4;6817:6;6813:17;6803:27;;6759:81;6887:2;6879:6;6876:14;6856:18;6853:38;6850:84;;6906:18;;:::i;:::-;6850:84;6671:269;6620:320;;;:::o;6946:180::-;6994:77;6991:1;6984:88;7091:4;7088:1;7081:15;7115:4;7112:1;7105:15;7132:191;7172:3;7191:20;7209:1;7191:20;:::i;:::-;7186:25;;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7268:1;7265;7261:9;7254:16;;7289:3;7286:1;7283:10;7280:36;;;7296:18;;:::i;:::-;7280:36;7132:191;;;;:::o;7329:141::-;7378:4;7401:3;7393:11;;7424:3;7421:1;7414:14;7458:4;7455:1;7445:18;7437:26;;7329:141;;;:::o;7476:93::-;7513:6;7560:2;7555;7548:5;7544:14;7540:23;7530:33;;7476:93;;;:::o;7575:107::-;7619:8;7669:5;7663:4;7659:16;7638:37;;7575:107;;;;:::o;7688:393::-;7757:6;7807:1;7795:10;7791:18;7830:97;7860:66;7849:9;7830:97;:::i;:::-;7948:39;7978:8;7967:9;7948:39;:::i;:::-;7936:51;;8020:4;8016:9;8009:5;8005:21;7996:30;;8069:4;8059:8;8055:19;8048:5;8045:30;8035:40;;7764:317;;7688:393;;;;;:::o;8087:60::-;8115:3;8136:5;8129:12;;8087:60;;;:::o;8153:142::-;8203:9;8236:53;8254:34;8263:24;8281:5;8263:24;:::i;:::-;8254:34;:::i;:::-;8236:53;:::i;:::-;8223:66;;8153:142;;;:::o;8301:75::-;8344:3;8365:5;8358:12;;8301:75;;;:::o;8382:269::-;8492:39;8523:7;8492:39;:::i;:::-;8553:91;8602:41;8626:16;8602:41;:::i;:::-;8594:6;8587:4;8581:11;8553:91;:::i;:::-;8547:4;8540:105;8458:193;8382:269;;;:::o;8657:73::-;8702:3;8657:73;:::o;8736:189::-;8813:32;;:::i;:::-;8854:65;8912:6;8904;8898:4;8854:65;:::i;:::-;8789:136;8736:189;;:::o;8931:186::-;8991:120;9008:3;9001:5;8998:14;8991:120;;;9062:39;9099:1;9092:5;9062:39;:::i;:::-;9035:1;9028:5;9024:13;9015:22;;8991:120;;;8931:186;;:::o;9123:543::-;9224:2;9219:3;9216:11;9213:446;;;9258:38;9290:5;9258:38;:::i;:::-;9342:29;9360:10;9342:29;:::i;:::-;9332:8;9328:44;9525:2;9513:10;9510:18;9507:49;;;9546:8;9531:23;;9507:49;9569:80;9625:22;9643:3;9625:22;:::i;:::-;9615:8;9611:37;9598:11;9569:80;:::i;:::-;9228:431;;9213:446;9123:543;;;:::o;9672:117::-;9726:8;9776:5;9770:4;9766:16;9745:37;;9672:117;;;;:::o;9795:169::-;9839:6;9872:51;9920:1;9916:6;9908:5;9905:1;9901:13;9872:51;:::i;:::-;9868:56;9953:4;9947;9943:15;9933:25;;9846:118;9795:169;;;;:::o;9969:295::-;10045:4;10191:29;10216:3;10210:4;10191:29;:::i;:::-;10183:37;;10253:3;10250:1;10246:11;10240:4;10237:21;10229:29;;9969:295;;;;:::o;10269:1395::-;10386:37;10419:3;10386:37;:::i;:::-;10488:18;10480:6;10477:30;10474:56;;;10510:18;;:::i;:::-;10474:56;10554:38;10586:4;10580:11;10554:38;:::i;:::-;10639:67;10699:6;10691;10685:4;10639:67;:::i;:::-;10733:1;10757:4;10744:17;;10789:2;10781:6;10778:14;10806:1;10801:618;;;;11463:1;11480:6;11477:77;;;11529:9;11524:3;11520:19;11514:26;11505:35;;11477:77;11580:67;11640:6;11633:5;11580:67;:::i;:::-;11574:4;11567:81;11436:222;10771:887;;10801:618;10853:4;10849:9;10841:6;10837:22;10887:37;10919:4;10887:37;:::i;:::-;10946:1;10960:208;10974:7;10971:1;10968:14;10960:208;;;11053:9;11048:3;11044:19;11038:26;11030:6;11023:42;11104:1;11096:6;11092:14;11082:24;;11151:2;11140:9;11136:18;11123:31;;10997:4;10994:1;10990:12;10985:17;;10960:208;;;11196:6;11187:7;11184:19;11181:179;;;11254:9;11249:3;11245:19;11239:26;11297:48;11339:4;11331:6;11327:17;11316:9;11297:48;:::i;:::-;11289:6;11282:64;11204:156;11181:179;11406:1;11402;11394:6;11390:14;11386:22;11380:4;11373:36;10808:611;;;10771:887;;10361:1303;;;10269:1395;;:::o;11670:148::-;11772:11;11809:3;11794:18;;11670:148;;;;:::o;11824:390::-;11930:3;11958:39;11991:5;11958:39;:::i;:::-;12013:89;12095:6;12090:3;12013:89;:::i;:::-;12006:96;;12111:65;12169:6;12164:3;12157:4;12150:5;12146:16;12111:65;:::i;:::-;12201:6;12196:3;12192:16;12185:23;;11934:280;11824:390;;;;:::o;12220:275::-;12352:3;12374:95;12465:3;12456:6;12374:95;:::i;:::-;12367:102;;12486:3;12479:10;;12220:275;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "564400",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"addPerson(string,uint256)": "infinite",
"listOfPeople(uint256)": "infinite",
"nameToFavoriteNumber(string)": "infinite",
"pat()": "infinite",
"retrieve()": "2438",
"sayHello()": "infinite",
"store(uint256)": "infinite"
}
},
"methodIdentifiers": {
"addPerson(string,uint256)": "6f760f41",
"listOfPeople(uint256)": "2ebce631",
"nameToFavoriteNumber(string)": "8bab8dd5",
"pat()": "b4a24f50",
"retrieve()": "2e64cec1",
"sayHello()": "ef5fb05b",
"store(uint256)": "6057361d"
}
},
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "uint256",
"name": "_favoriteNumber",
"type": "uint256"
}
],
"name": "addPerson",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "listOfPeople",
"outputs": [
{
"internalType": "uint256",
"name": "favoriteNumber",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"name": "nameToFavoriteNumber",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pat",
"outputs": [
{
"internalType": "uint256",
"name": "favoriteNumber",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "retrieve",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "sayHello",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_newNumber",
"type": "uint256"
}
],
"name": "store",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.19+commit.7dd6d404"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "uint256",
"name": "_favoriteNumber",
"type": "uint256"
}
],
"name": "addPerson",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "listOfPeople",
"outputs": [
{
"internalType": "uint256",
"name": "favoriteNumber",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"name": "nameToFavoriteNumber",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pat",
"outputs": [
{
"internalType": "uint256",
"name": "favoriteNumber",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "retrieve",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "sayHello",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_newNumber",
"type": "uint256"
}
],
"name": "store",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"gist-e80a7180ef9e469c4fbd59a07298e6c9/AddFiveStorage.sol": "AddFiveStorage"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"gist-e80a7180ef9e469c4fbd59a07298e6c9/AddFiveStorage.sol": {
"keccak256": "0x95b8515f81418dcddc14f0777e000ca27d156b7d0c333b7fdfddabe265fdb563",
"license": "MIT",
"urls": [
"bzz-raw://cf4dd6a966b030ffa6ebc3e9498f48975eabb236c36594c33bcd9af1af8032b7",
"dweb:/ipfs/Qmdb8tWGL54Das7dLJDghq2ZUZ4SfmXzj2U5hYUQFHs4vM"
]
},
"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol": {
"keccak256": "0x553f986d81a071201d8be211b9f3e4714fbf82d81d7a16a5ab5494c059707dfe",
"license": "MIT",
"urls": [
"bzz-raw://688721a3f21dbb6b76192e40e013109d436b06ec73fbc957c95198a7632d4799",
"dweb:/ipfs/QmbN12FAM1rQNGRz2G8mwo5mdEahKq1qDnMLw9LLzZpXEA"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"array_dataslot_t_string_storage": {
"entryPoint": 295,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 137,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clean_up_bytearray_end_slots_t_string_storage": {
"entryPoint": 616,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"cleanup_t_uint256": {
"entryPoint": 431,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clear_storage_range_t_bytes1": {
"entryPoint": 577,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"convert_t_uint256_to_t_uint256": {
"entryPoint": 451,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
"entryPoint": 771,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"divide_by_32_ceil": {
"entryPoint": 316,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 242,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_used_part_and_set_length_of_short_byte_array": {
"entryPoint": 741,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"identity": {
"entryPoint": 441,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mask_bytes_dynamic": {
"entryPoint": 709,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 195,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 148,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"prepare_store_t_uint256": {
"entryPoint": 491,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_dynamic": {
"entryPoint": 332,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"shift_right_unsigned_dynamic": {
"entryPoint": 696,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"storage_set_to_zero_t_uint256": {
"entryPoint": 549,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"update_byte_slice_dynamic32": {
"entryPoint": 345,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"update_storage_value_t_uint256_to_t_uint256": {
"entryPoint": 501,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"zero_value_for_split_t_uint256": {
"entryPoint": 544,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:5231:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "66:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "77:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "93:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "87:5:1"
},
"nodeType": "YulFunctionCall",
"src": "87:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "77:6:1"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "49:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "59:6:1",
"type": ""
}
],
"src": "7:99:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "140:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "157:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "160:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "150:6:1"
},
"nodeType": "YulFunctionCall",
"src": "150:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "150:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "254:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "257:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "247:6:1"
},
"nodeType": "YulFunctionCall",
"src": "247:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "247:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "278:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "281:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "271:6:1"
},
"nodeType": "YulFunctionCall",
"src": "271:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "271:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "112:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "326:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "343:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "346:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "336:6:1"
},
"nodeType": "YulFunctionCall",
"src": "336:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "336:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "440:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "443:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "433:6:1"
},
"nodeType": "YulFunctionCall",
"src": "433:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "433:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "464:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "467:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "457:6:1"
},
"nodeType": "YulFunctionCall",
"src": "457:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "457:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "298:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "535:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "545:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "559:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "565:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "555:3:1"
},
"nodeType": "YulFunctionCall",
"src": "555:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "545:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "576:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "606:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "612:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "602:3:1"
},
"nodeType": "YulFunctionCall",
"src": "602:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "580:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "653:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "667:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "681:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "689:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "677:3:1"
},
"nodeType": "YulFunctionCall",
"src": "677:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "667:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "633:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "626:6:1"
},
"nodeType": "YulFunctionCall",
"src": "626:26:1"
},
"nodeType": "YulIf",
"src": "623:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "756:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "770:16:1"
},
"nodeType": "YulFunctionCall",
"src": "770:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "770:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "720:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "743:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "751:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "740:2:1"
},
"nodeType": "YulFunctionCall",
"src": "740:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "717:2:1"
},
"nodeType": "YulFunctionCall",
"src": "717:38:1"
},
"nodeType": "YulIf",
"src": "714:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "519:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "528:6:1",
"type": ""
}
],
"src": "484:320:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "864:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "874:11:1",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "882:3:1"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "874:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "902:1:1",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "905:3:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "895:6:1"
},
"nodeType": "YulFunctionCall",
"src": "895:14:1"
},
"nodeType": "YulExpressionStatement",
"src": "895:14:1"
},
{
"nodeType": "YulAssignment",
"src": "918:26:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "936:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "939:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nodeType": "YulIdentifier",
"src": "926:9:1"
},
"nodeType": "YulFunctionCall",
"src": "926:18:1"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "918:4:1"
}
]
}
]
},
"name": "array_dataslot_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "851:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "859:4:1",
"type": ""
}
],
"src": "810:141:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1001:49:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1011:33:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1029:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1036:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1025:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1025:14:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1041:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "1021:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1021:23:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1011:6:1"
}
]
}
]
},
"name": "divide_by_32_ceil",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "984:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "994:6:1",
"type": ""
}
],
"src": "957:93:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1109:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1119:37:1",
"value": {
"arguments": [
{
"name": "bits",
"nodeType": "YulIdentifier",
"src": "1144:4:1"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1150:5:1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1140:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1140:16:1"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "1119:8:1"
}
]
}
]
},
"name": "shift_left_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nodeType": "YulTypedName",
"src": "1084:4:1",
"type": ""
},
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1090:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "1100:8:1",
"type": ""
}
],
"src": "1056:107:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1245:317:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1255:35:1",
"value": {
"arguments": [
{
"name": "shiftBytes",
"nodeType": "YulIdentifier",
"src": "1276:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1288:1:1",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "1272:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1272:18:1"
},
"variables": [
{
"name": "shiftBits",
"nodeType": "YulTypedName",
"src": "1259:9:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1299:109:1",
"value": {
"arguments": [
{
"name": "shiftBits",
"nodeType": "YulIdentifier",
"src": "1330:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1341:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nodeType": "YulIdentifier",
"src": "1311:18:1"
},
"nodeType": "YulFunctionCall",
"src": "1311:97:1"
},
"variables": [
{
"name": "mask",
"nodeType": "YulTypedName",
"src": "1303:4:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1417:51:1",
"value": {
"arguments": [
{
"name": "shiftBits",
"nodeType": "YulIdentifier",
"src": "1448:9:1"
},
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "1459:8:1"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nodeType": "YulIdentifier",
"src": "1429:18:1"
},
"nodeType": "YulFunctionCall",
"src": "1429:39:1"
},
"variableNames": [
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "1417:8:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1477:30:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1490:5:1"
},
{
"arguments": [
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "1501:4:1"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1497:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1497:9:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1486:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1486:21:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1477:5:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1516:40:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1529:5:1"
},
{
"arguments": [
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "1540:8:1"
},
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "1550:4:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1536:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1536:19:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1526:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1526:30:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1516:6:1"
}
]
}
]
},
"name": "update_byte_slice_dynamic32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1206:5:1",
"type": ""
},
{
"name": "shiftBytes",
"nodeType": "YulTypedName",
"src": "1213:10:1",
"type": ""
},
{
"name": "toInsert",
"nodeType": "YulTypedName",
"src": "1225:8:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1238:6:1",
"type": ""
}
],
"src": "1169:393:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1613:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1623:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1634:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1623:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1595:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1605:7:1",
"type": ""
}
],
"src": "1568:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1683:28:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1693:12:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1700:5:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "1693:3:1"
}
]
}
]
},
"name": "identity",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1669:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "1679:3:1",
"type": ""
}
],
"src": "1651:60:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1777:82:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1787:66:1",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1845:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1827:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1827:24:1"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "1818:8:1"
},
"nodeType": "YulFunctionCall",
"src": "1818:34:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1800:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1800:53:1"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "1787:9:1"
}
]
}
]
},
"name": "convert_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1757:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "1767:9:1",
"type": ""
}
],
"src": "1717:142:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1912:28:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1922:12:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1929:5:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "1922:3:1"
}
]
}
]
},
"name": "prepare_store_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1898:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "1908:3:1",
"type": ""
}
],
"src": "1865:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2022:193:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2032:63:1",
"value": {
"arguments": [
{
"name": "value_0",
"nodeType": "YulIdentifier",
"src": "2087:7:1"
}
],
"functionName": {
"name": "convert_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "2056:30:1"
},
"nodeType": "YulFunctionCall",
"src": "2056:39:1"
},
"variables": [
{
"name": "convertedValue_0",
"nodeType": "YulTypedName",
"src": "2036:16:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "2111:4:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "2151:4:1"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "2145:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2145:11:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2158:6:1"
},
{
"arguments": [
{
"name": "convertedValue_0",
"nodeType": "YulIdentifier",
"src": "2190:16:1"
}
],
"functionName": {
"name": "prepare_store_t_uint256",
"nodeType": "YulIdentifier",
"src": "2166:23:1"
},
"nodeType": "YulFunctionCall",
"src": "2166:41:1"
}
],
"functionName": {
"name": "update_byte_slice_dynamic32",
"nodeType": "YulIdentifier",
"src": "2117:27:1"
},
"nodeType": "YulFunctionCall",
"src": "2117:91:1"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "2104:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2104:105:1"
},
"nodeType": "YulExpressionStatement",
"src": "2104:105:1"
}
]
},
"name": "update_storage_value_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "1999:4:1",
"type": ""
},
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2005:6:1",
"type": ""
},
{
"name": "value_0",
"nodeType": "YulTypedName",
"src": "2013:7:1",
"type": ""
}
],
"src": "1946:269:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2270:24:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2280:8:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2287:1:1",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "2280:3:1"
}
]
}
]
},
"name": "zero_value_for_split_t_uint256",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "2266:3:1",
"type": ""
}
],
"src": "2221:73:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2353:136:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2363:46:1",
"value": {
"arguments": [],
"functionName": {
"name": "zero_value_for_split_t_uint256",
"nodeType": "YulIdentifier",
"src": "2377:30:1"
},
"nodeType": "YulFunctionCall",
"src": "2377:32:1"
},
"variables": [
{
"name": "zero_0",
"nodeType": "YulTypedName",
"src": "2367:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "2462:4:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2468:6:1"
},
{
"name": "zero_0",
"nodeType": "YulIdentifier",
"src": "2476:6:1"
}
],
"functionName": {
"name": "update_storage_value_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "2418:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2418:65:1"
},
"nodeType": "YulExpressionStatement",
"src": "2418:65:1"
}
]
},
"name": "storage_set_to_zero_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "2339:4:1",
"type": ""
},
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2345:6:1",
"type": ""
}
],
"src": "2300:189:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2545:136:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2612:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2656:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2663:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "storage_set_to_zero_t_uint256",
"nodeType": "YulIdentifier",
"src": "2626:29:1"
},
"nodeType": "YulFunctionCall",
"src": "2626:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "2626:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2565:5:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2572:3:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2562:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2562:14:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2577:26:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2579:22:1",
"value": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2592:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2599:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2588:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2588:13:1"
},
"variableNames": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2579:5:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2559:2:1",
"statements": []
},
"src": "2555:120:1"
}
]
},
"name": "clear_storage_range_t_bytes1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nodeType": "YulTypedName",
"src": "2533:5:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2540:3:1",
"type": ""
}
],
"src": "2495:186:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2766:464:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2792:431:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2806:54:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2854:5:1"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nodeType": "YulIdentifier",
"src": "2822:31:1"
},
"nodeType": "YulFunctionCall",
"src": "2822:38:1"
},
"variables": [
{
"name": "dataArea",
"nodeType": "YulTypedName",
"src": "2810:8:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2873:63:1",
"value": {
"arguments": [
{
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "2896:8:1"
},
{
"arguments": [
{
"name": "startIndex",
"nodeType": "YulIdentifier",
"src": "2924:10:1"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nodeType": "YulIdentifier",
"src": "2906:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2906:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2892:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2892:44:1"
},
"variables": [
{
"name": "deleteStart",
"nodeType": "YulTypedName",
"src": "2877:11:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3093:27:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3095:23:1",
"value": {
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "3110:8:1"
},
"variableNames": [
{
"name": "deleteStart",
"nodeType": "YulIdentifier",
"src": "3095:11:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nodeType": "YulIdentifier",
"src": "3077:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3089:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3074:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3074:18:1"
},
"nodeType": "YulIf",
"src": "3071:49:1"
},
{
"expression": {
"arguments": [
{
"name": "deleteStart",
"nodeType": "YulIdentifier",
"src": "3162:11:1"
},
{
"arguments": [
{
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "3179:8:1"
},
{
"arguments": [
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "3207:3:1"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nodeType": "YulIdentifier",
"src": "3189:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3189:22:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3175:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3175:37:1"
}
],
"functionName": {
"name": "clear_storage_range_t_bytes1",
"nodeType": "YulIdentifier",
"src": "3133:28:1"
},
"nodeType": "YulFunctionCall",
"src": "3133:80:1"
},
"nodeType": "YulExpressionStatement",
"src": "3133:80:1"
}
]
},
"condition": {
"arguments": [
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "2783:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2788:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2780:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2780:11:1"
},
"nodeType": "YulIf",
"src": "2777:446:1"
}
]
},
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2742:5:1",
"type": ""
},
{
"name": "len",
"nodeType": "YulTypedName",
"src": "2749:3:1",
"type": ""
},
{
"name": "startIndex",
"nodeType": "YulTypedName",
"src": "2754:10:1",
"type": ""
}
],
"src": "2687:543:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3299:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3309:37:1",
"value": {
"arguments": [
{
"name": "bits",
"nodeType": "YulIdentifier",
"src": "3334:4:1"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3340:5:1"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "3330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3330:16:1"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "3309:8:1"
}
]
}
]
},
"name": "shift_right_unsigned_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nodeType": "YulTypedName",
"src": "3274:4:1",
"type": ""
},
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3280:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "3290:8:1",
"type": ""
}
],
"src": "3236:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3410:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3420:68:1",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3469:1:1",
"type": "",
"value": "8"
},
{
"name": "bytes",
"nodeType": "YulIdentifier",
"src": "3472:5:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "3465:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3465:13:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3484:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3480:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3480:6:1"
}
],
"functionName": {
"name": "shift_right_unsigned_dynamic",
"nodeType": "YulIdentifier",
"src": "3436:28:1"
},
"nodeType": "YulFunctionCall",
"src": "3436:51:1"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3432:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3432:56:1"
},
"variables": [
{
"name": "mask",
"nodeType": "YulTypedName",
"src": "3424:4:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3497:25:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3511:4:1"
},
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "3517:4:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3507:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3507:15:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "3497:6:1"
}
]
}
]
},
"name": "mask_bytes_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "3387:4:1",
"type": ""
},
{
"name": "bytes",
"nodeType": "YulTypedName",
"src": "3393:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "3403:6:1",
"type": ""
}
],
"src": "3359:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3614:214:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3747:37:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3774:4:1"
},
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "3780:3:1"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nodeType": "YulIdentifier",
"src": "3755:18:1"
},
"nodeType": "YulFunctionCall",
"src": "3755:29:1"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3747:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3793:29:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3804:4:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3814:1:1",
"type": "",
"value": "2"
},
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "3817:3:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "3810:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3810:11:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "3801:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3801:21:1"
},
"variableNames": [
{
"name": "used",
"nodeType": "YulIdentifier",
"src": "3793:4:1"
}
]
}
]
},
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "3595:4:1",
"type": ""
},
{
"name": "len",
"nodeType": "YulTypedName",
"src": "3601:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "used",
"nodeType": "YulTypedName",
"src": "3609:4:1",
"type": ""
}
],
"src": "3533:295:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3925:1303:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3936:51:1",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "3983:3:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3950:32:1"
},
"nodeType": "YulFunctionCall",
"src": "3950:37:1"
},
"variables": [
{
"name": "newLen",
"nodeType": "YulTypedName",
"src": "3940:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4072:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4074:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4074:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4074:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4044:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4052:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4041:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4041:30:1"
},
"nodeType": "YulIf",
"src": "4038:56:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4104:52:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4150:4:1"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "4144:5:1"
},
"nodeType": "YulFunctionCall",
"src": "4144:11:1"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nodeType": "YulIdentifier",
"src": "4118:25:1"
},
"nodeType": "YulFunctionCall",
"src": "4118:38:1"
},
"variables": [
{
"name": "oldLen",
"nodeType": "YulTypedName",
"src": "4108:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4249:4:1"
},
{
"name": "oldLen",
"nodeType": "YulIdentifier",
"src": "4255:6:1"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4263:6:1"
}
],
"functionName": {
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nodeType": "YulIdentifier",
"src": "4203:45:1"
},
"nodeType": "YulFunctionCall",
"src": "4203:67:1"
},
"nodeType": "YulExpressionStatement",
"src": "4203:67:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4280:18:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4297:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "srcOffset",
"nodeType": "YulTypedName",
"src": "4284:9:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4308:17:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4321:4:1",
"type": "",
"value": "0x20"
},
"variableNames": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4308:9:1"
}
]
},
{
"cases": [
{
"body": {
"nodeType": "YulBlock",
"src": "4372:611:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4386:37:1",
"value": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4405:6:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4417:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "4413:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4413:9:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4401:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4401:22:1"
},
"variables": [
{
"name": "loopEnd",
"nodeType": "YulTypedName",
"src": "4390:7:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4437:51:1",
"value": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4483:4:1"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nodeType": "YulIdentifier",
"src": "4451:31:1"
},
"nodeType": "YulFunctionCall",
"src": "4451:37:1"
},
"variables": [
{
"name": "dstPtr",
"nodeType": "YulTypedName",
"src": "4441:6:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4501:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4510:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "4505:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4569:163:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4594:6:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4612:3:1"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4617:9:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4608:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4608:19:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4602:5:1"
},
"nodeType": "YulFunctionCall",
"src": "4602:26:1"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "4587:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4587:42:1"
},
"nodeType": "YulExpressionStatement",
"src": "4587:42:1"
},
{
"nodeType": "YulAssignment",
"src": "4646:24:1",
"value": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4660:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4668:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4656:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4656:14:1"
},
"variableNames": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4646:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4687:31:1",
"value": {
"arguments": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4704:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4715:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4700:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4700:18:1"
},
"variableNames": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4687:9:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4535:1:1"
},
{
"name": "loopEnd",
"nodeType": "YulIdentifier",
"src": "4538:7:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4532:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4532:14:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "4547:21:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4549:17:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4558:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4561:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4554:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4554:12:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4549:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "4528:3:1",
"statements": []
},
"src": "4524:208:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4768:156:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4786:43:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4813:3:1"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4818:9:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4809:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4809:19:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4803:5:1"
},
"nodeType": "YulFunctionCall",
"src": "4803:26:1"
},
"variables": [
{
"name": "lastValue",
"nodeType": "YulTypedName",
"src": "4790:9:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4853:6:1"
},
{
"arguments": [
{
"name": "lastValue",
"nodeType": "YulIdentifier",
"src": "4880:9:1"
},
{
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4895:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4903:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4891:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4891:17:1"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nodeType": "YulIdentifier",
"src": "4861:18:1"
},
"nodeType": "YulFunctionCall",
"src": "4861:48:1"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "4846:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4846:64:1"
},
"nodeType": "YulExpressionStatement",
"src": "4846:64:1"
}
]
},
"condition": {
"arguments": [
{
"name": "loopEnd",
"nodeType": "YulIdentifier",
"src": "4751:7:1"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4760:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4748:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4748:19:1"
},
"nodeType": "YulIf",
"src": "4745:179:1"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4944:4:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4958:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4966:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "4954:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4954:14:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4970:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4950:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4950:22:1"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "4937:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4937:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "4937:36:1"
}
]
},
"nodeType": "YulCase",
"src": "4365:618:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4370:1:1",
"type": "",
"value": "1"
}
},
{
"body": {
"nodeType": "YulBlock",
"src": "5000:222:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5014:14:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5027:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5018:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5051:67:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5069:35:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5088:3:1"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "5093:9:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5084:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5084:19:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5078:5:1"
},
"nodeType": "YulFunctionCall",
"src": "5078:26:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5069:5:1"
}
]
}
]
},
"condition": {
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "5044:6:1"
},
"nodeType": "YulIf",
"src": "5041:77:1"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "5138:4:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5197:5:1"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "5204:6:1"
}
],
"functionName": {
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nodeType": "YulIdentifier",
"src": "5144:52:1"
},
"nodeType": "YulFunctionCall",
"src": "5144:67:1"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "5131:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5131:81:1"
},
"nodeType": "YulExpressionStatement",
"src": "5131:81:1"
}
]
},
"nodeType": "YulCase",
"src": "4992:230:1",
"value": "default"
}
],
"expression": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4345:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4353:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4342:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4342:14:1"
},
"nodeType": "YulSwitch",
"src": "4335:887:1"
}
]
},
"name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "3914:4:1",
"type": ""
},
{
"name": "src",
"nodeType": "YulTypedName",
"src": "3920:3:1",
"type": ""
}
],
"src": "3833:1395:1"
}
]
},
"contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040526040518060400160405280600781526020016040518060400160405280600381526020017f5061740000000000000000000000000000000000000000000000000000000000815250815250600460008201518160000155602082015181600101908162000072919062000303565b5050503480156200008257600080fd5b50620003ea565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200010b57607f821691505b602082108103620001215762000120620000c3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200018b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200014c565b6200019786836200014c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620001e4620001de620001d884620001af565b620001b9565b620001af565b9050919050565b6000819050919050565b6200020083620001c3565b620002186200020f82620001eb565b84845462000159565b825550505050565b600090565b6200022f62000220565b6200023c818484620001f5565b505050565b5b8181101562000264576200025860008262000225565b60018101905062000242565b5050565b601f821115620002b3576200027d8162000127565b62000288846200013c565b8101602085101562000298578190505b620002b0620002a7856200013c565b83018262000241565b50505b505050565b600082821c905092915050565b6000620002d860001984600802620002b8565b1980831691505092915050565b6000620002f38383620002c5565b9150826002028217905092915050565b6200030e8262000089565b67ffffffffffffffff8111156200032a576200032962000094565b5b620003368254620000f2565b6200034382828562000268565b600060209050601f8311600181146200037b576000841562000366578287015190505b620003728582620002e5565b865550620003e2565b601f1984166200038b8662000127565b60005b82811015620003b5578489015182556001820191506020850194506020810190506200038e565b86831015620003d55784890151620003d1601f891682620002c5565b8355505b6001600288020188555050505b505050505050565b6109ff80620003fa6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80632e64cec1146100675780632ebce631146100855780636057361d146100b65780636f760f41146100d25780638bab8dd5146100ee578063b4a24f501461011e575b600080fd5b61006f61013d565b60405161007c9190610376565b60405180910390f35b61009f600480360381019061009a91906103d1565b610146565b6040516100ad92919061048e565b60405180910390f35b6100d060048036038101906100cb91906103d1565b610202565b005b6100ec60048036038101906100e791906105f3565b61020c565b005b6101086004803603810190610103919061064f565b610295565b6040516101159190610376565b60405180910390f35b6101266102c3565b60405161013492919061048e565b60405180910390f35b60008054905090565b6002818154811061015657600080fd5b906000526020600020906002020160009150905080600001549080600101805461017f906106c7565b80601f01602080910402602001604051908101604052809291908181526020018280546101ab906106c7565b80156101f85780601f106101cd576101008083540402835291602001916101f8565b820191906000526020600020905b8154815290600101906020018083116101db57829003601f168201915b5050505050905082565b8060008190555050565b6002604051806040016040528083815260200184815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000155602082015181600101908161026b91906108a4565b5050508060038360405161027f91906109b2565b9081526020016040518091039020819055505050565b6003818051602081018201805184825260208301602085012081835280955050505050506000915090505481565b60048060000154908060010180546102da906106c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610306906106c7565b80156103535780601f1061032857610100808354040283529160200191610353565b820191906000526020600020905b81548152906001019060200180831161033657829003601f168201915b5050505050905082565b6000819050919050565b6103708161035d565b82525050565b600060208201905061038b6000830184610367565b92915050565b6000604051905090565b600080fd5b600080fd5b6103ae8161035d565b81146103b957600080fd5b50565b6000813590506103cb816103a5565b92915050565b6000602082840312156103e7576103e661039b565b5b60006103f5848285016103bc565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561043857808201518184015260208101905061041d565b60008484015250505050565b6000601f19601f8301169050919050565b6000610460826103fe565b61046a8185610409565b935061047a81856020860161041a565b61048381610444565b840191505092915050565b60006040820190506104a36000830185610367565b81810360208301526104b58184610455565b90509392505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61050082610444565b810181811067ffffffffffffffff8211171561051f5761051e6104c8565b5b80604052505050565b6000610532610391565b905061053e82826104f7565b919050565b600067ffffffffffffffff82111561055e5761055d6104c8565b5b61056782610444565b9050602081019050919050565b82818337600083830152505050565b600061059661059184610543565b610528565b9050828152602081018484840111156105b2576105b16104c3565b5b6105bd848285610574565b509392505050565b600082601f8301126105da576105d96104be565b5b81356105ea848260208601610583565b91505092915050565b6000806040838503121561060a5761060961039b565b5b600083013567ffffffffffffffff811115610628576106276103a0565b5b610634858286016105c5565b9250506020610645858286016103bc565b9150509250929050565b6000602082840312156106655761066461039b565b5b600082013567ffffffffffffffff811115610683576106826103a0565b5b61068f848285016105c5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806106df57607f821691505b6020821081036106f2576106f1610698565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261075a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261071d565b610764868361071d565b95508019841693508086168417925050509392505050565b6000819050919050565b60006107a161079c6107978461035d565b61077c565b61035d565b9050919050565b6000819050919050565b6107bb83610786565b6107cf6107c7826107a8565b84845461072a565b825550505050565b600090565b6107e46107d7565b6107ef8184846107b2565b505050565b5b81811015610813576108086000826107dc565b6001810190506107f5565b5050565b601f82111561085857610829816106f8565b6108328461070d565b81016020851015610841578190505b61085561084d8561070d565b8301826107f4565b50505b505050565b600082821c905092915050565b600061087b6000198460080261085d565b1980831691505092915050565b6000610894838361086a565b9150826002028217905092915050565b6108ad826103fe565b67ffffffffffffffff8111156108c6576108c56104c8565b5b6108d082546106c7565b6108db828285610817565b600060209050601f83116001811461090e57600084156108fc578287015190505b6109068582610888565b86555061096e565b601f19841661091c866106f8565b60005b828110156109445784890151825560018201915060208501945060208101905061091f565b86831015610961578489015161095d601f89168261086a565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b600061098c826103fe565b6109968185610976565b93506109a681856020860161041a565b80840191505092915050565b60006109be8284610981565b91508190509291505056fea264697066735822122073f3fc5e89657ffcdc6c2c556c3b44801aa146b830efe72688aea974169050ba64736f6c63430008130033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5061740000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 MSTORE POP PUSH1 0x4 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH3 0x72 SWAP2 SWAP1 PUSH3 0x303 JUMP JUMPDEST POP POP POP CALLVALUE DUP1 ISZERO PUSH3 0x82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x3EA JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x10B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x121 JUMPI PUSH3 0x120 PUSH3 0xC3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x18B PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x14C JUMP JUMPDEST PUSH3 0x197 DUP7 DUP4 PUSH3 0x14C JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1E4 PUSH3 0x1DE PUSH3 0x1D8 DUP5 PUSH3 0x1AF JUMP JUMPDEST PUSH3 0x1B9 JUMP JUMPDEST PUSH3 0x1AF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x200 DUP4 PUSH3 0x1C3 JUMP JUMPDEST PUSH3 0x218 PUSH3 0x20F DUP3 PUSH3 0x1EB JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x159 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x22F PUSH3 0x220 JUMP JUMPDEST PUSH3 0x23C DUP2 DUP5 DUP5 PUSH3 0x1F5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x264 JUMPI PUSH3 0x258 PUSH1 0x0 DUP3 PUSH3 0x225 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x242 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2B3 JUMPI PUSH3 0x27D DUP2 PUSH3 0x127 JUMP JUMPDEST PUSH3 0x288 DUP5 PUSH3 0x13C JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x298 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2B0 PUSH3 0x2A7 DUP6 PUSH3 0x13C JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x241 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D8 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2B8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F3 DUP4 DUP4 PUSH3 0x2C5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x30E DUP3 PUSH3 0x89 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x32A JUMPI PUSH3 0x329 PUSH3 0x94 JUMP JUMPDEST JUMPDEST PUSH3 0x336 DUP3 SLOAD PUSH3 0xF2 JUMP JUMPDEST PUSH3 0x343 DUP3 DUP3 DUP6 PUSH3 0x268 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x37B JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x366 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x372 DUP6 DUP3 PUSH3 0x2E5 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x3E2 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x38B DUP7 PUSH3 0x127 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3B5 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x38E JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3D5 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3D1 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2C5 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9FF DUP1 PUSH3 0x3FA PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x2EBCE631 EQ PUSH2 0x85 JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0x6F760F41 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x8BAB8DD5 EQ PUSH2 0xEE JUMPI DUP1 PUSH4 0xB4A24F50 EQ PUSH2 0x11E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6F PUSH2 0x13D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9A SWAP2 SWAP1 PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x146 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP3 SWAP2 SWAP1 PUSH2 0x48E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCB SWAP2 SWAP1 PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x202 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xEC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE7 SWAP2 SWAP1 PUSH2 0x5F3 JUMP JUMPDEST PUSH2 0x20C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x108 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x103 SWAP2 SWAP1 PUSH2 0x64F JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x115 SWAP2 SWAP1 PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x126 PUSH2 0x2C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP3 SWAP2 SWAP1 PUSH2 0x48E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x17F SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1AB SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1F8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1CD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1F8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1DB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x8A4 JUMP JUMPDEST POP POP POP DUP1 PUSH1 0x3 DUP4 PUSH1 0x40 MLOAD PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x9B2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 ADD DUP1 MLOAD DUP5 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP6 ADD KECCAK256 DUP2 DUP4 MSTORE DUP1 SWAP6 POP POP POP POP POP POP PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x2DA SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x306 SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x353 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x328 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x353 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x336 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x370 DUP2 PUSH2 0x35D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x38B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x367 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3AE DUP2 PUSH2 0x35D JUMP JUMPDEST DUP2 EQ PUSH2 0x3B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3CB DUP2 PUSH2 0x3A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E7 JUMPI PUSH2 0x3E6 PUSH2 0x39B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3F5 DUP5 DUP3 DUP6 ADD PUSH2 0x3BC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x438 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x41D JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x460 DUP3 PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x46A DUP2 DUP6 PUSH2 0x409 JUMP JUMPDEST SWAP4 POP PUSH2 0x47A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x41A JUMP JUMPDEST PUSH2 0x483 DUP2 PUSH2 0x444 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x4A3 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x367 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4B5 DUP2 DUP5 PUSH2 0x455 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x500 DUP3 PUSH2 0x444 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x4C8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x532 PUSH2 0x391 JUMP JUMPDEST SWAP1 POP PUSH2 0x53E DUP3 DUP3 PUSH2 0x4F7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x55E JUMPI PUSH2 0x55D PUSH2 0x4C8 JUMP JUMPDEST JUMPDEST PUSH2 0x567 DUP3 PUSH2 0x444 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x596 PUSH2 0x591 DUP5 PUSH2 0x543 JUMP JUMPDEST PUSH2 0x528 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5B2 JUMPI PUSH2 0x5B1 PUSH2 0x4C3 JUMP JUMPDEST JUMPDEST PUSH2 0x5BD DUP5 DUP3 DUP6 PUSH2 0x574 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5DA JUMPI PUSH2 0x5D9 PUSH2 0x4BE JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5EA DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x60A JUMPI PUSH2 0x609 PUSH2 0x39B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x628 JUMPI PUSH2 0x627 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST PUSH2 0x634 DUP6 DUP3 DUP7 ADD PUSH2 0x5C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x645 DUP6 DUP3 DUP7 ADD PUSH2 0x3BC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x665 JUMPI PUSH2 0x664 PUSH2 0x39B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x683 JUMPI PUSH2 0x682 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST PUSH2 0x68F DUP5 DUP3 DUP6 ADD PUSH2 0x5C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x6DF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x6F2 JUMPI PUSH2 0x6F1 PUSH2 0x698 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x75A PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x71D JUMP JUMPDEST PUSH2 0x764 DUP7 DUP4 PUSH2 0x71D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A1 PUSH2 0x79C PUSH2 0x797 DUP5 PUSH2 0x35D JUMP JUMPDEST PUSH2 0x77C JUMP JUMPDEST PUSH2 0x35D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7BB DUP4 PUSH2 0x786 JUMP JUMPDEST PUSH2 0x7CF PUSH2 0x7C7 DUP3 PUSH2 0x7A8 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x72A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x7E4 PUSH2 0x7D7 JUMP JUMPDEST PUSH2 0x7EF DUP2 DUP5 DUP5 PUSH2 0x7B2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x813 JUMPI PUSH2 0x808 PUSH1 0x0 DUP3 PUSH2 0x7DC JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x7F5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x858 JUMPI PUSH2 0x829 DUP2 PUSH2 0x6F8 JUMP JUMPDEST PUSH2 0x832 DUP5 PUSH2 0x70D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x841 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x855 PUSH2 0x84D DUP6 PUSH2 0x70D JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x7F4 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x87B PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x85D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x894 DUP4 DUP4 PUSH2 0x86A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8AD DUP3 PUSH2 0x3FE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8C6 JUMPI PUSH2 0x8C5 PUSH2 0x4C8 JUMP JUMPDEST JUMPDEST PUSH2 0x8D0 DUP3 SLOAD PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0x8DB DUP3 DUP3 DUP6 PUSH2 0x817 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x90E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x8FC JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x906 DUP6 DUP3 PUSH2 0x888 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x96E JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x91C DUP7 PUSH2 0x6F8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x944 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x91F JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x961 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x95D PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x86A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x98C DUP3 PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x996 DUP2 DUP6 PUSH2 0x976 JUMP JUMPDEST SWAP4 POP PUSH2 0x9A6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x41A JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9BE DUP3 DUP5 PUSH2 0x981 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xF3FC5E89657FFCDC6C2C556C3B44801AA146B830 0xEF 0xE7 0x26 DUP9 0xAE 0xA9 PUSH21 0x169050BA64736F6C63430008130033000000000000 ",
"sourceMap": "119:1107:0:-:0;;;664:40;;;;;;;;688:1;664:40;;;;;;;;;;;;;;;;;;;;;;;;644:60;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;119:1107;;;;;;;;;;;;7:99:1;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;119:1107:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@addPerson_67": {
"entryPoint": 524,
"id": 67,
"parameterSlots": 2,
"returnSlots": 0
},
"@listOfPeople_15": {
"entryPoint": 326,
"id": 15,
"parameterSlots": 0,
"returnSlots": 0
},
"@nameToFavoriteNumber_19": {
"entryPoint": 661,
"id": 19,
"parameterSlots": 0,
"returnSlots": 0
},
"@pat_26": {
"entryPoint": 707,
"id": 26,
"parameterSlots": 0,
"returnSlots": 0
},
"@retrieve_44": {
"entryPoint": 317,
"id": 44,
"parameterSlots": 0,
"returnSlots": 1
},
"@store_36": {
"entryPoint": 514,
"id": 36,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 1411,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 1477,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 956,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptr": {
"entryPoint": 1615,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptrt_uint256": {
"entryPoint": 1523,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 977,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1109,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 2433,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 871,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 2482,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 886,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1166,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1320,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 913,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 1347,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_string_storage": {
"entryPoint": 1784,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 1022,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 1033,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 2422,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"clean_up_bytearray_end_slots_t_string_storage": {
"entryPoint": 2071,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"cleanup_t_uint256": {
"entryPoint": 861,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clear_storage_range_t_bytes1": {
"entryPoint": 2036,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"convert_t_uint256_to_t_uint256": {
"entryPoint": 1926,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
"entryPoint": 2212,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"copy_calldata_to_memory_with_cleanup": {
"entryPoint": 1396,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 1050,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"divide_by_32_ceil": {
"entryPoint": 1805,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 1735,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_used_part_and_set_length_of_short_byte_array": {
"entryPoint": 2184,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1271,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"identity": {
"entryPoint": 1916,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mask_bytes_dynamic": {
"entryPoint": 2154,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 1688,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1224,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"prepare_store_t_uint256": {
"entryPoint": 1960,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1214,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 1219,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 928,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 923,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1092,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_dynamic": {
"entryPoint": 1821,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"shift_right_unsigned_dynamic": {
"entryPoint": 2141,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"storage_set_to_zero_t_uint256": {
"entryPoint": 2012,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"update_byte_slice_dynamic32": {
"entryPoint": 1834,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"update_storage_value_t_uint256_to_t_uint256": {
"entryPoint": 1970,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 933,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"zero_value_for_split_t_uint256": {
"entryPoint": 2007,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:11796:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:1",
"type": ""
}
],
"src": "7:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "155:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "172:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "195:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "177:17:1"
},
"nodeType": "YulFunctionCall",
"src": "177:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "165:6:1"
},
"nodeType": "YulFunctionCall",
"src": "165:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "165:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "143:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "150:3:1",
"type": ""
}
],
"src": "90:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "312:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "322:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "334:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "345:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "330:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "322:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "402:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "415:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "411:3:1"
},
"nodeType": "YulFunctionCall",
"src": "411:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "358:43:1"
},
"nodeType": "YulFunctionCall",
"src": "358:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "358:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "284:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "296:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "307:4:1",
"type": ""
}
],
"src": "214:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "482:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "492:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "508:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "502:5:1"
},
"nodeType": "YulFunctionCall",
"src": "502:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "492:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "475:6:1",
"type": ""
}
],
"src": "442:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "612:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "629:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "632:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "622:6:1"
},
"nodeType": "YulFunctionCall",
"src": "622:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "622:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "523:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "735:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "752:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "755:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "745:6:1"
},
"nodeType": "YulFunctionCall",
"src": "745:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "745:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "646:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "812:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "869:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "878:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "881:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "871:6:1"
},
"nodeType": "YulFunctionCall",
"src": "871:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "871:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "835:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "860:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "842:17:1"
},
"nodeType": "YulFunctionCall",
"src": "842:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "832:2:1"
},
"nodeType": "YulFunctionCall",
"src": "832:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "825:6:1"
},
"nodeType": "YulFunctionCall",
"src": "825:43:1"
},
"nodeType": "YulIf",
"src": "822:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "805:5:1",
"type": ""
}
],
"src": "769:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "949:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "959:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "981:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "968:12:1"
},
"nodeType": "YulFunctionCall",
"src": "968:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "959:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1024:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "997:26:1"
},
"nodeType": "YulFunctionCall",
"src": "997:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "997:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "927:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "935:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "943:5:1",
"type": ""
}
],
"src": "897:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1108:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1154:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1156:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1156:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1156:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1129:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1138:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1125:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1125:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1150:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1121:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1121:32:1"
},
"nodeType": "YulIf",
"src": "1118:119:1"
},
{
"nodeType": "YulBlock",
"src": "1247:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1262:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1276:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1266:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1291:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1326:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1337:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1322:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1322:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1346:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1301:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1301:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1291:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1078:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1089:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1101:6:1",
"type": ""
}
],
"src": "1042:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1436:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1447:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1463:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1457:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1457:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1447:6:1"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1419:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1429:6:1",
"type": ""
}
],
"src": "1377:99:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1578:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1595:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1600:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1588:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1588:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "1588:19:1"
},
{
"nodeType": "YulAssignment",
"src": "1616:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1635:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1640:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1631:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1631:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1616:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1550:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1555:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1566:11:1",
"type": ""
}
],
"src": "1482:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1719:184:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1729:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1738:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1733:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1798:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1823:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1828:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1819:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1819:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1842:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1847:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1838:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1838:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1832:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1832:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1812:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1812:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "1812:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1759:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1762:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1756:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1756:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1770:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1772:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1781:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1784:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1777:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1777:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1772:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1752:3:1",
"statements": []
},
"src": "1748:113:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1881:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1886:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1877:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1877:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1895:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1870:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1870:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "1870:27:1"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1701:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1706:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1711:6:1",
"type": ""
}
],
"src": "1657:246:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1957:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1967:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1985:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1992:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1981:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1981:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2001:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1997:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1997:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1977:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1977:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1967:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1940:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1950:6:1",
"type": ""
}
],
"src": "1909:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2109:285:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2119:53:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2166:5:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2133:32:1"
},
"nodeType": "YulFunctionCall",
"src": "2133:39:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2123:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2181:78:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2247:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2252:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2188:58:1"
},
"nodeType": "YulFunctionCall",
"src": "2188:71:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2181:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2307:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2314:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2303:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2303:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2321:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2326:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulIdentifier",
"src": "2268:34:1"
},
"nodeType": "YulFunctionCall",
"src": "2268:65:1"
},
"nodeType": "YulExpressionStatement",
"src": "2268:65:1"
},
{
"nodeType": "YulAssignment",
"src": "2342:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2353:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2380:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2358:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2358:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2349:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2349:39:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2342:3:1"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2090:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2097:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2105:3:1",
"type": ""
}
],
"src": "2017:377:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2546:277:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2556:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2568:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2579:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2564:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2564:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2556:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2636:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2649:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2660:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2645:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2645:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "2592:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2592:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "2592:71:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2684:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2695:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2680:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2680:18:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2704:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2710:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2700:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2700:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2673:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2673:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "2673:48:1"
},
{
"nodeType": "YulAssignment",
"src": "2730:86:1",
"value": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2802:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2811:4:1"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2738:63:1"
},
"nodeType": "YulFunctionCall",
"src": "2738:78:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2730:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_uint256_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2510:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2522:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2530:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2541:4:1",
"type": ""
}
],
"src": "2400:423:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2918:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2935:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2938:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2928:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2928:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2928:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "2829:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3041:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3058:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3061:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3051:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3051:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3051:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "2952:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3103:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3120:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3123:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3113:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3113:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3113:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3217:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3220:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3210:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3210:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3210:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3241:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3244:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3234:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3234:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3234:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "3075:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3304:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3314:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3336:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3366:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "3344:21:1"
},
"nodeType": "YulFunctionCall",
"src": "3344:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3332:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3332:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "3318:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3483:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "3485:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3485:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "3485:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "3426:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3438:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3423:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3423:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "3462:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3474:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3459:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3459:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "3420:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3420:62:1"
},
"nodeType": "YulIf",
"src": "3417:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3521:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "3525:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3514:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3514:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "3514:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3290:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "3298:4:1",
"type": ""
}
],
"src": "3261:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3589:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3599:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "3609:18:1"
},
"nodeType": "YulFunctionCall",
"src": "3609:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3599:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3658:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3666:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "3638:19:1"
},
"nodeType": "YulFunctionCall",
"src": "3638:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "3638:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "3573:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3582:6:1",
"type": ""
}
],
"src": "3548:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3750:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3855:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "3857:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3857:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "3857:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3827:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3835:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3824:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3824:30:1"
},
"nodeType": "YulIf",
"src": "3821:56:1"
},
{
"nodeType": "YulAssignment",
"src": "3887:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3917:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "3895:21:1"
},
"nodeType": "YulFunctionCall",
"src": "3895:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3887:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3961:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3973:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3979:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3969:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3969:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3961:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3734:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "3745:4:1",
"type": ""
}
],
"src": "3683:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4061:82:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4084:3:1"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4089:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4094:6:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "4071:12:1"
},
"nodeType": "YulFunctionCall",
"src": "4071:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4071:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4121:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4126:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4117:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4117:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4135:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4110:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4110:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "4110:27:1"
}
]
},
"name": "copy_calldata_to_memory_with_cleanup",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4043:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4048:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4053:6:1",
"type": ""
}
],
"src": "3997:146:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4233:341:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4243:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4310:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4268:41:1"
},
"nodeType": "YulFunctionCall",
"src": "4268:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "4252:15:1"
},
"nodeType": "YulFunctionCall",
"src": "4252:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4243:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4334:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4341:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4327:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4327:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "4327:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4357:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4372:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4379:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4368:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4368:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4361:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4422:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "4424:77:1"
},
"nodeType": "YulFunctionCall",
"src": "4424:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "4424:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4403:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4408:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4399:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4399:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4417:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4396:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4396:25:1"
},
"nodeType": "YulIf",
"src": "4393:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4551:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4556:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4561:6:1"
}
],
"functionName": {
"name": "copy_calldata_to_memory_with_cleanup",
"nodeType": "YulIdentifier",
"src": "4514:36:1"
},
"nodeType": "YulFunctionCall",
"src": "4514:54:1"
},
"nodeType": "YulExpressionStatement",
"src": "4514:54:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4206:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4211:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4219:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "4227:5:1",
"type": ""
}
],
"src": "4149:425:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4656:278:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4705:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "4707:77:1"
},
"nodeType": "YulFunctionCall",
"src": "4707:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "4707:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4684:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4692:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4680:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4680:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4699:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "4676:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4676:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4669:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4669:35:1"
},
"nodeType": "YulIf",
"src": "4666:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4797:34:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4824:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "4811:12:1"
},
"nodeType": "YulFunctionCall",
"src": "4811:20:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4801:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4840:88:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4901:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4909:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4897:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4897:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4916:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4924:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4849:47:1"
},
"nodeType": "YulFunctionCall",
"src": "4849:79:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4840:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4634:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4642:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "4650:5:1",
"type": ""
}
],
"src": "4594:340:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5033:561:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5079:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "5081:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5081:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5081:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5054:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5063:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5050:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5050:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5075:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5046:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5046:32:1"
},
"nodeType": "YulIf",
"src": "5043:119:1"
},
{
"nodeType": "YulBlock",
"src": "5172:287:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5187:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5218:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5229:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5214:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5214:17:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5201:12:1"
},
"nodeType": "YulFunctionCall",
"src": "5201:31:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5191:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5279:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "5281:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5281:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5281:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5251:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5259:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5248:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5248:30:1"
},
"nodeType": "YulIf",
"src": "5245:117:1"
},
{
"nodeType": "YulAssignment",
"src": "5376:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5421:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5432:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5417:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5417:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5441:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5386:30:1"
},
"nodeType": "YulFunctionCall",
"src": "5386:63:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5376:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5469:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5484:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5498:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5488:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5514:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5549:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5560:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5545:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5545:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5569:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "5524:20:1"
},
"nodeType": "YulFunctionCall",
"src": "5524:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5514:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptrt_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4995:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "5006:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5018:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5026:6:1",
"type": ""
}
],
"src": "4940:654:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5676:433:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5722:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "5724:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5724:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5724:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5697:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5706:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5693:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5693:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5718:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5689:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5689:32:1"
},
"nodeType": "YulIf",
"src": "5686:119:1"
},
{
"nodeType": "YulBlock",
"src": "5815:287:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5830:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5861:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5872:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5857:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5857:17:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5844:12:1"
},
"nodeType": "YulFunctionCall",
"src": "5844:31:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5834:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5922:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "5924:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5924:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5924:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5894:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5902:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5891:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5891:30:1"
},
"nodeType": "YulIf",
"src": "5888:117:1"
},
{
"nodeType": "YulAssignment",
"src": "6019:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6064:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6075:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6060:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6060:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6084:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6029:30:1"
},
"nodeType": "YulFunctionCall",
"src": "6029:63:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6019:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5646:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "5657:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5669:6:1",
"type": ""
}
],
"src": "5600:509:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6143:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6160:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6163:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6153:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6153:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "6153:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6257:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6260:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6250:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6250:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6250:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6281:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6284:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6274:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6274:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6274:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "6115:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6352:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6362:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "6376:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6382:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "6372:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6372:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6362:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "6393:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "6423:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6429:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "6419:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6419:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "6397:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6470:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6484:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6498:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6506:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "6494:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6494:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6484:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "6450:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "6443:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6443:26:1"
},
"nodeType": "YulIf",
"src": "6440:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6573:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "6587:16:1"
},
"nodeType": "YulFunctionCall",
"src": "6587:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "6587:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "6537:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6560:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6568:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "6557:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6557:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "6534:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6534:38:1"
},
"nodeType": "YulIf",
"src": "6531:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "6336:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6345:6:1",
"type": ""
}
],
"src": "6301:320:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6681:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6691:11:1",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "6699:3:1"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "6691:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6719:1:1",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "6722:3:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6712:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6712:14:1"
},
"nodeType": "YulExpressionStatement",
"src": "6712:14:1"
},
{
"nodeType": "YulAssignment",
"src": "6735:26:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6753:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6756:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nodeType": "YulIdentifier",
"src": "6743:9:1"
},
"nodeType": "YulFunctionCall",
"src": "6743:18:1"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "6735:4:1"
}
]
}
]
},
"name": "array_dataslot_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "6668:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "6676:4:1",
"type": ""
}
],
"src": "6627:141:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6818:49:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6828:33:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6846:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6853:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6842:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6842:14:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6858:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "6838:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6838:23:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "6828:6:1"
}
]
}
]
},
"name": "divide_by_32_ceil",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6801:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "6811:6:1",
"type": ""
}
],
"src": "6774:93:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6926:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6936:37:1",
"value": {
"arguments": [
{
"name": "bits",
"nodeType": "YulIdentifier",
"src": "6961:4:1"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6967:5:1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "6957:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6957:16:1"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "6936:8:1"
}
]
}
]
},
"name": "shift_left_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nodeType": "YulTypedName",
"src": "6901:4:1",
"type": ""
},
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6907:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "6917:8:1",
"type": ""
}
],
"src": "6873:107:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7062:317:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7072:35:1",
"value": {
"arguments": [
{
"name": "shiftBytes",
"nodeType": "YulIdentifier",
"src": "7093:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7105:1:1",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "7089:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7089:18:1"
},
"variables": [
{
"name": "shiftBits",
"nodeType": "YulTypedName",
"src": "7076:9:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "7116:109:1",
"value": {
"arguments": [
{
"name": "shiftBits",
"nodeType": "YulIdentifier",
"src": "7147:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7158:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nodeType": "YulIdentifier",
"src": "7128:18:1"
},
"nodeType": "YulFunctionCall",
"src": "7128:97:1"
},
"variables": [
{
"name": "mask",
"nodeType": "YulTypedName",
"src": "7120:4:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "7234:51:1",
"value": {
"arguments": [
{
"name": "shiftBits",
"nodeType": "YulIdentifier",
"src": "7265:9:1"
},
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "7276:8:1"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nodeType": "YulIdentifier",
"src": "7246:18:1"
},
"nodeType": "YulFunctionCall",
"src": "7246:39:1"
},
"variableNames": [
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "7234:8:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "7294:30:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7307:5:1"
},
{
"arguments": [
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "7318:4:1"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "7314:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7314:9:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7303:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7303:21:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7294:5:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "7333:40:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7346:5:1"
},
{
"arguments": [
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "7357:8:1"
},
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "7367:4:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7353:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7353:19:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "7343:2:1"
},
"nodeType": "YulFunctionCall",
"src": "7343:30:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "7333:6:1"
}
]
}
]
},
"name": "update_byte_slice_dynamic32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7023:5:1",
"type": ""
},
{
"name": "shiftBytes",
"nodeType": "YulTypedName",
"src": "7030:10:1",
"type": ""
},
{
"name": "toInsert",
"nodeType": "YulTypedName",
"src": "7042:8:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "7055:6:1",
"type": ""
}
],
"src": "6986:393:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7417:28:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7427:12:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "7434:5:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "7427:3:1"
}
]
}
]
},
"name": "identity",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7403:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "7413:3:1",
"type": ""
}
],
"src": "7385:60:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7511:82:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7521:66:1",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7579:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7561:17:1"
},
"nodeType": "YulFunctionCall",
"src": "7561:24:1"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "7552:8:1"
},
"nodeType": "YulFunctionCall",
"src": "7552:34:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7534:17:1"
},
"nodeType": "YulFunctionCall",
"src": "7534:53:1"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "7521:9:1"
}
]
}
]
},
"name": "convert_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7491:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "7501:9:1",
"type": ""
}
],
"src": "7451:142:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7646:28:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7656:12:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "7663:5:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "7656:3:1"
}
]
}
]
},
"name": "prepare_store_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7632:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "7642:3:1",
"type": ""
}
],
"src": "7599:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7756:193:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7766:63:1",
"value": {
"arguments": [
{
"name": "value_0",
"nodeType": "YulIdentifier",
"src": "7821:7:1"
}
],
"functionName": {
"name": "convert_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "7790:30:1"
},
"nodeType": "YulFunctionCall",
"src": "7790:39:1"
},
"variables": [
{
"name": "convertedValue_0",
"nodeType": "YulTypedName",
"src": "7770:16:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "7845:4:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "7885:4:1"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "7879:5:1"
},
"nodeType": "YulFunctionCall",
"src": "7879:11:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "7892:6:1"
},
{
"arguments": [
{
"name": "convertedValue_0",
"nodeType": "YulIdentifier",
"src": "7924:16:1"
}
],
"functionName": {
"name": "prepare_store_t_uint256",
"nodeType": "YulIdentifier",
"src": "7900:23:1"
},
"nodeType": "YulFunctionCall",
"src": "7900:41:1"
}
],
"functionName": {
"name": "update_byte_slice_dynamic32",
"nodeType": "YulIdentifier",
"src": "7851:27:1"
},
"nodeType": "YulFunctionCall",
"src": "7851:91:1"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "7838:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7838:105:1"
},
"nodeType": "YulExpressionStatement",
"src": "7838:105:1"
}
]
},
"name": "update_storage_value_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "7733:4:1",
"type": ""
},
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "7739:6:1",
"type": ""
},
{
"name": "value_0",
"nodeType": "YulTypedName",
"src": "7747:7:1",
"type": ""
}
],
"src": "7680:269:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8004:24:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8014:8:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8021:1:1",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "8014:3:1"
}
]
}
]
},
"name": "zero_value_for_split_t_uint256",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "8000:3:1",
"type": ""
}
],
"src": "7955:73:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8087:136:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8097:46:1",
"value": {
"arguments": [],
"functionName": {
"name": "zero_value_for_split_t_uint256",
"nodeType": "YulIdentifier",
"src": "8111:30:1"
},
"nodeType": "YulFunctionCall",
"src": "8111:32:1"
},
"variables": [
{
"name": "zero_0",
"nodeType": "YulTypedName",
"src": "8101:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "8196:4:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8202:6:1"
},
{
"name": "zero_0",
"nodeType": "YulIdentifier",
"src": "8210:6:1"
}
],
"functionName": {
"name": "update_storage_value_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "8152:43:1"
},
"nodeType": "YulFunctionCall",
"src": "8152:65:1"
},
"nodeType": "YulExpressionStatement",
"src": "8152:65:1"
}
]
},
"name": "storage_set_to_zero_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "8073:4:1",
"type": ""
},
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8079:6:1",
"type": ""
}
],
"src": "8034:189:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8279:136:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8346:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "8390:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8397:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "storage_set_to_zero_t_uint256",
"nodeType": "YulIdentifier",
"src": "8360:29:1"
},
"nodeType": "YulFunctionCall",
"src": "8360:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "8360:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "8299:5:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "8306:3:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "8296:2:1"
},
"nodeType": "YulFunctionCall",
"src": "8296:14:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "8311:26:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8313:22:1",
"value": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "8326:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8333:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8322:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8322:13:1"
},
"variableNames": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "8313:5:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "8293:2:1",
"statements": []
},
"src": "8289:120:1"
}
]
},
"name": "clear_storage_range_t_bytes1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nodeType": "YulTypedName",
"src": "8267:5:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8274:3:1",
"type": ""
}
],
"src": "8229:186:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8500:464:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8526:431:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8540:54:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "8588:5:1"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nodeType": "YulIdentifier",
"src": "8556:31:1"
},
"nodeType": "YulFunctionCall",
"src": "8556:38:1"
},
"variables": [
{
"name": "dataArea",
"nodeType": "YulTypedName",
"src": "8544:8:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "8607:63:1",
"value": {
"arguments": [
{
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "8630:8:1"
},
{
"arguments": [
{
"name": "startIndex",
"nodeType": "YulIdentifier",
"src": "8658:10:1"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nodeType": "YulIdentifier",
"src": "8640:17:1"
},
"nodeType": "YulFunctionCall",
"src": "8640:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8626:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8626:44:1"
},
"variables": [
{
"name": "deleteStart",
"nodeType": "YulTypedName",
"src": "8611:11:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "8827:27:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8829:23:1",
"value": {
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "8844:8:1"
},
"variableNames": [
{
"name": "deleteStart",
"nodeType": "YulIdentifier",
"src": "8829:11:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nodeType": "YulIdentifier",
"src": "8811:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8823:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "8808:2:1"
},
"nodeType": "YulFunctionCall",
"src": "8808:18:1"
},
"nodeType": "YulIf",
"src": "8805:49:1"
},
{
"expression": {
"arguments": [
{
"name": "deleteStart",
"nodeType": "YulIdentifier",
"src": "8896:11:1"
},
{
"arguments": [
{
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "8913:8:1"
},
{
"arguments": [
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "8941:3:1"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nodeType": "YulIdentifier",
"src": "8923:17:1"
},
"nodeType": "YulFunctionCall",
"src": "8923:22:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8909:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8909:37:1"
}
],
"functionName": {
"name": "clear_storage_range_t_bytes1",
"nodeType": "YulIdentifier",
"src": "8867:28:1"
},
"nodeType": "YulFunctionCall",
"src": "8867:80:1"
},
"nodeType": "YulExpressionStatement",
"src": "8867:80:1"
}
]
},
"condition": {
"arguments": [
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "8517:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8522:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "8514:2:1"
},
"nodeType": "YulFunctionCall",
"src": "8514:11:1"
},
"nodeType": "YulIf",
"src": "8511:446:1"
}
]
},
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "8476:5:1",
"type": ""
},
{
"name": "len",
"nodeType": "YulTypedName",
"src": "8483:3:1",
"type": ""
},
{
"name": "startIndex",
"nodeType": "YulTypedName",
"src": "8488:10:1",
"type": ""
}
],
"src": "8421:543:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9033:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9043:37:1",
"value": {
"arguments": [
{
"name": "bits",
"nodeType": "YulIdentifier",
"src": "9068:4:1"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9074:5:1"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "9064:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9064:16:1"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "9043:8:1"
}
]
}
]
},
"name": "shift_right_unsigned_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nodeType": "YulTypedName",
"src": "9008:4:1",
"type": ""
},
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9014:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "9024:8:1",
"type": ""
}
],
"src": "8970:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9144:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9154:68:1",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9203:1:1",
"type": "",
"value": "8"
},
{
"name": "bytes",
"nodeType": "YulIdentifier",
"src": "9206:5:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "9199:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9199:13:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9218:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "9214:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9214:6:1"
}
],
"functionName": {
"name": "shift_right_unsigned_dynamic",
"nodeType": "YulIdentifier",
"src": "9170:28:1"
},
"nodeType": "YulFunctionCall",
"src": "9170:51:1"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "9166:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9166:56:1"
},
"variables": [
{
"name": "mask",
"nodeType": "YulTypedName",
"src": "9158:4:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "9231:25:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "9245:4:1"
},
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "9251:4:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "9241:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9241:15:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "9231:6:1"
}
]
}
]
},
"name": "mask_bytes_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "9121:4:1",
"type": ""
},
{
"name": "bytes",
"nodeType": "YulTypedName",
"src": "9127:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "9137:6:1",
"type": ""
}
],
"src": "9093:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9348:214:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9481:37:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "9508:4:1"
},
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "9514:3:1"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nodeType": "YulIdentifier",
"src": "9489:18:1"
},
"nodeType": "YulFunctionCall",
"src": "9489:29:1"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "9481:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "9527:29:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "9538:4:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9548:1:1",
"type": "",
"value": "2"
},
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "9551:3:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "9544:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9544:11:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "9535:2:1"
},
"nodeType": "YulFunctionCall",
"src": "9535:21:1"
},
"variableNames": [
{
"name": "used",
"nodeType": "YulIdentifier",
"src": "9527:4:1"
}
]
}
]
},
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "9329:4:1",
"type": ""
},
{
"name": "len",
"nodeType": "YulTypedName",
"src": "9335:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "used",
"nodeType": "YulTypedName",
"src": "9343:4:1",
"type": ""
}
],
"src": "9267:295:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9659:1303:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9670:51:1",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "9717:3:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "9684:32:1"
},
"nodeType": "YulFunctionCall",
"src": "9684:37:1"
},
"variables": [
{
"name": "newLen",
"nodeType": "YulTypedName",
"src": "9674:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "9806:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "9808:16:1"
},
"nodeType": "YulFunctionCall",
"src": "9808:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "9808:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "9778:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9786:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "9775:2:1"
},
"nodeType": "YulFunctionCall",
"src": "9775:30:1"
},
"nodeType": "YulIf",
"src": "9772:56:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "9838:52:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "9884:4:1"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "9878:5:1"
},
"nodeType": "YulFunctionCall",
"src": "9878:11:1"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nodeType": "YulIdentifier",
"src": "9852:25:1"
},
"nodeType": "YulFunctionCall",
"src": "9852:38:1"
},
"variables": [
{
"name": "oldLen",
"nodeType": "YulTypedName",
"src": "9842:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "9983:4:1"
},
{
"name": "oldLen",
"nodeType": "YulIdentifier",
"src": "9989:6:1"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "9997:6:1"
}
],
"functionName": {
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nodeType": "YulIdentifier",
"src": "9937:45:1"
},
"nodeType": "YulFunctionCall",
"src": "9937:67:1"
},
"nodeType": "YulExpressionStatement",
"src": "9937:67:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "10014:18:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10031:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "srcOffset",
"nodeType": "YulTypedName",
"src": "10018:9:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "10042:17:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10055:4:1",
"type": "",
"value": "0x20"
},
"variableNames": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "10042:9:1"
}
]
},
{
"cases": [
{
"body": {
"nodeType": "YulBlock",
"src": "10106:611:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10120:37:1",
"value": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "10139:6:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10151:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "10147:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10147:9:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "10135:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10135:22:1"
},
"variables": [
{
"name": "loopEnd",
"nodeType": "YulTypedName",
"src": "10124:7:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "10171:51:1",
"value": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "10217:4:1"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nodeType": "YulIdentifier",
"src": "10185:31:1"
},
"nodeType": "YulFunctionCall",
"src": "10185:37:1"
},
"variables": [
{
"name": "dstPtr",
"nodeType": "YulTypedName",
"src": "10175:6:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "10235:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10244:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "10239:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "10303:163:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "10328:6:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "10346:3:1"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "10351:9:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10342:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10342:19:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "10336:5:1"
},
"nodeType": "YulFunctionCall",
"src": "10336:26:1"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "10321:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10321:42:1"
},
"nodeType": "YulExpressionStatement",
"src": "10321:42:1"
},
{
"nodeType": "YulAssignment",
"src": "10380:24:1",
"value": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "10394:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10402:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10390:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10390:14:1"
},
"variableNames": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "10380:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "10421:31:1",
"value": {
"arguments": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "10438:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10449:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10434:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10434:18:1"
},
"variableNames": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "10421:9:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "10269:1:1"
},
{
"name": "loopEnd",
"nodeType": "YulIdentifier",
"src": "10272:7:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "10266:2:1"
},
"nodeType": "YulFunctionCall",
"src": "10266:14:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "10281:21:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10283:17:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "10292:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10295:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10288:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10288:12:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "10283:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "10262:3:1",
"statements": []
},
"src": "10258:208:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10502:156:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10520:43:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "10547:3:1"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "10552:9:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10543:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10543:19:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "10537:5:1"
},
"nodeType": "YulFunctionCall",
"src": "10537:26:1"
},
"variables": [
{
"name": "lastValue",
"nodeType": "YulTypedName",
"src": "10524:9:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "10587:6:1"
},
{
"arguments": [
{
"name": "lastValue",
"nodeType": "YulIdentifier",
"src": "10614:9:1"
},
{
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "10629:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10637:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "10625:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10625:17:1"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nodeType": "YulIdentifier",
"src": "10595:18:1"
},
"nodeType": "YulFunctionCall",
"src": "10595:48:1"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "10580:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10580:64:1"
},
"nodeType": "YulExpressionStatement",
"src": "10580:64:1"
}
]
},
"condition": {
"arguments": [
{
"name": "loopEnd",
"nodeType": "YulIdentifier",
"src": "10485:7:1"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "10494:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "10482:2:1"
},
"nodeType": "YulFunctionCall",
"src": "10482:19:1"
},
"nodeType": "YulIf",
"src": "10479:179:1"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "10678:4:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "10692:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10700:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "10688:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10688:14:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10704:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10684:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10684:22:1"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "10671:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10671:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "10671:36:1"
}
]
},
"nodeType": "YulCase",
"src": "10099:618:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10104:1:1",
"type": "",
"value": "1"
}
},
{
"body": {
"nodeType": "YulBlock",
"src": "10734:222:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10748:14:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10761:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "10752:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "10785:67:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10803:35:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "10822:3:1"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "10827:9:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10818:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10818:19:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "10812:5:1"
},
"nodeType": "YulFunctionCall",
"src": "10812:26:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10803:5:1"
}
]
}
]
},
"condition": {
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "10778:6:1"
},
"nodeType": "YulIf",
"src": "10775:77:1"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "10872:4:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10931:5:1"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "10938:6:1"
}
],
"functionName": {
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nodeType": "YulIdentifier",
"src": "10878:52:1"
},
"nodeType": "YulFunctionCall",
"src": "10878:67:1"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "10865:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10865:81:1"
},
"nodeType": "YulExpressionStatement",
"src": "10865:81:1"
}
]
},
"nodeType": "YulCase",
"src": "10726:230:1",
"value": "default"
}
],
"expression": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "10079:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10087:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "10076:2:1"
},
"nodeType": "YulFunctionCall",
"src": "10076:14:1"
},
"nodeType": "YulSwitch",
"src": "10069:887:1"
}
]
},
"name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "9648:4:1",
"type": ""
},
{
"name": "src",
"nodeType": "YulTypedName",
"src": "9654:3:1",
"type": ""
}
],
"src": "9567:1395:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11082:34:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11092:18:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11107:3:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "11092:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "11054:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "11059:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "11070:11:1",
"type": ""
}
],
"src": "10968:148:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11232:280:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11242:53:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11289:5:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "11256:32:1"
},
"nodeType": "YulFunctionCall",
"src": "11256:39:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "11246:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "11304:96:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11388:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "11393:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "11311:76:1"
},
"nodeType": "YulFunctionCall",
"src": "11311:89:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11304:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11448:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11455:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11444:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11444:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11462:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "11467:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulIdentifier",
"src": "11409:34:1"
},
"nodeType": "YulFunctionCall",
"src": "11409:65:1"
},
"nodeType": "YulExpressionStatement",
"src": "11409:65:1"
},
{
"nodeType": "YulAssignment",
"src": "11483:23:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11494:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "11499:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11490:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11490:16:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11483:3:1"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11213:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "11220:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "11228:3:1",
"type": ""
}
],
"src": "11122:390:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11654:139:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11665:102:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11754:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11763:3:1"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "11672:81:1"
},
"nodeType": "YulFunctionCall",
"src": "11672:95:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11665:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "11777:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11784:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11777:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "11633:3:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11639:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "11650:3:1",
"type": ""
}
],
"src": "11518:275:1"
}
]
},
"contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_uint256_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100625760003560e01c80632e64cec1146100675780632ebce631146100855780636057361d146100b65780636f760f41146100d25780638bab8dd5146100ee578063b4a24f501461011e575b600080fd5b61006f61013d565b60405161007c9190610376565b60405180910390f35b61009f600480360381019061009a91906103d1565b610146565b6040516100ad92919061048e565b60405180910390f35b6100d060048036038101906100cb91906103d1565b610202565b005b6100ec60048036038101906100e791906105f3565b61020c565b005b6101086004803603810190610103919061064f565b610295565b6040516101159190610376565b60405180910390f35b6101266102c3565b60405161013492919061048e565b60405180910390f35b60008054905090565b6002818154811061015657600080fd5b906000526020600020906002020160009150905080600001549080600101805461017f906106c7565b80601f01602080910402602001604051908101604052809291908181526020018280546101ab906106c7565b80156101f85780601f106101cd576101008083540402835291602001916101f8565b820191906000526020600020905b8154815290600101906020018083116101db57829003601f168201915b5050505050905082565b8060008190555050565b6002604051806040016040528083815260200184815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000155602082015181600101908161026b91906108a4565b5050508060038360405161027f91906109b2565b9081526020016040518091039020819055505050565b6003818051602081018201805184825260208301602085012081835280955050505050506000915090505481565b60048060000154908060010180546102da906106c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610306906106c7565b80156103535780601f1061032857610100808354040283529160200191610353565b820191906000526020600020905b81548152906001019060200180831161033657829003601f168201915b5050505050905082565b6000819050919050565b6103708161035d565b82525050565b600060208201905061038b6000830184610367565b92915050565b6000604051905090565b600080fd5b600080fd5b6103ae8161035d565b81146103b957600080fd5b50565b6000813590506103cb816103a5565b92915050565b6000602082840312156103e7576103e661039b565b5b60006103f5848285016103bc565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561043857808201518184015260208101905061041d565b60008484015250505050565b6000601f19601f8301169050919050565b6000610460826103fe565b61046a8185610409565b935061047a81856020860161041a565b61048381610444565b840191505092915050565b60006040820190506104a36000830185610367565b81810360208301526104b58184610455565b90509392505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61050082610444565b810181811067ffffffffffffffff8211171561051f5761051e6104c8565b5b80604052505050565b6000610532610391565b905061053e82826104f7565b919050565b600067ffffffffffffffff82111561055e5761055d6104c8565b5b61056782610444565b9050602081019050919050565b82818337600083830152505050565b600061059661059184610543565b610528565b9050828152602081018484840111156105b2576105b16104c3565b5b6105bd848285610574565b509392505050565b600082601f8301126105da576105d96104be565b5b81356105ea848260208601610583565b91505092915050565b6000806040838503121561060a5761060961039b565b5b600083013567ffffffffffffffff811115610628576106276103a0565b5b610634858286016105c5565b9250506020610645858286016103bc565b9150509250929050565b6000602082840312156106655761066461039b565b5b600082013567ffffffffffffffff811115610683576106826103a0565b5b61068f848285016105c5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806106df57607f821691505b6020821081036106f2576106f1610698565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261075a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261071d565b610764868361071d565b95508019841693508086168417925050509392505050565b6000819050919050565b60006107a161079c6107978461035d565b61077c565b61035d565b9050919050565b6000819050919050565b6107bb83610786565b6107cf6107c7826107a8565b84845461072a565b825550505050565b600090565b6107e46107d7565b6107ef8184846107b2565b505050565b5b81811015610813576108086000826107dc565b6001810190506107f5565b5050565b601f82111561085857610829816106f8565b6108328461070d565b81016020851015610841578190505b61085561084d8561070d565b8301826107f4565b50505b505050565b600082821c905092915050565b600061087b6000198460080261085d565b1980831691505092915050565b6000610894838361086a565b9150826002028217905092915050565b6108ad826103fe565b67ffffffffffffffff8111156108c6576108c56104c8565b5b6108d082546106c7565b6108db828285610817565b600060209050601f83116001811461090e57600084156108fc578287015190505b6109068582610888565b86555061096e565b601f19841661091c866106f8565b60005b828110156109445784890151825560018201915060208501945060208101905061091f565b86831015610961578489015161095d601f89168261086a565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b600061098c826103fe565b6109968185610976565b93506109a681856020860161041a565b80840191505092915050565b60006109be8284610981565b91508190509291505056fea264697066735822122073f3fc5e89657ffcdc6c2c556c3b44801aa146b830efe72688aea974169050ba64736f6c63430008130033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x2EBCE631 EQ PUSH2 0x85 JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0x6F760F41 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x8BAB8DD5 EQ PUSH2 0xEE JUMPI DUP1 PUSH4 0xB4A24F50 EQ PUSH2 0x11E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6F PUSH2 0x13D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9A SWAP2 SWAP1 PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x146 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP3 SWAP2 SWAP1 PUSH2 0x48E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCB SWAP2 SWAP1 PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x202 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xEC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE7 SWAP2 SWAP1 PUSH2 0x5F3 JUMP JUMPDEST PUSH2 0x20C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x108 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x103 SWAP2 SWAP1 PUSH2 0x64F JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x115 SWAP2 SWAP1 PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x126 PUSH2 0x2C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP3 SWAP2 SWAP1 PUSH2 0x48E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x17F SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1AB SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1F8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1CD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1F8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1DB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x8A4 JUMP JUMPDEST POP POP POP DUP1 PUSH1 0x3 DUP4 PUSH1 0x40 MLOAD PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x9B2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 ADD DUP1 MLOAD DUP5 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP6 ADD KECCAK256 DUP2 DUP4 MSTORE DUP1 SWAP6 POP POP POP POP POP POP PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x2DA SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x306 SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x353 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x328 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x353 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x336 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x370 DUP2 PUSH2 0x35D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x38B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x367 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3AE DUP2 PUSH2 0x35D JUMP JUMPDEST DUP2 EQ PUSH2 0x3B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3CB DUP2 PUSH2 0x3A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E7 JUMPI PUSH2 0x3E6 PUSH2 0x39B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3F5 DUP5 DUP3 DUP6 ADD PUSH2 0x3BC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x438 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x41D JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x460 DUP3 PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x46A DUP2 DUP6 PUSH2 0x409 JUMP JUMPDEST SWAP4 POP PUSH2 0x47A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x41A JUMP JUMPDEST PUSH2 0x483 DUP2 PUSH2 0x444 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x4A3 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x367 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4B5 DUP2 DUP5 PUSH2 0x455 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x500 DUP3 PUSH2 0x444 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x4C8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x532 PUSH2 0x391 JUMP JUMPDEST SWAP1 POP PUSH2 0x53E DUP3 DUP3 PUSH2 0x4F7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x55E JUMPI PUSH2 0x55D PUSH2 0x4C8 JUMP JUMPDEST JUMPDEST PUSH2 0x567 DUP3 PUSH2 0x444 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x596 PUSH2 0x591 DUP5 PUSH2 0x543 JUMP JUMPDEST PUSH2 0x528 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5B2 JUMPI PUSH2 0x5B1 PUSH2 0x4C3 JUMP JUMPDEST JUMPDEST PUSH2 0x5BD DUP5 DUP3 DUP6 PUSH2 0x574 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5DA JUMPI PUSH2 0x5D9 PUSH2 0x4BE JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5EA DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x60A JUMPI PUSH2 0x609 PUSH2 0x39B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x628 JUMPI PUSH2 0x627 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST PUSH2 0x634 DUP6 DUP3 DUP7 ADD PUSH2 0x5C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x645 DUP6 DUP3 DUP7 ADD PUSH2 0x3BC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x665 JUMPI PUSH2 0x664 PUSH2 0x39B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x683 JUMPI PUSH2 0x682 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST PUSH2 0x68F DUP5 DUP3 DUP6 ADD PUSH2 0x5C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x6DF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x6F2 JUMPI PUSH2 0x6F1 PUSH2 0x698 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x75A PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x71D JUMP JUMPDEST PUSH2 0x764 DUP7 DUP4 PUSH2 0x71D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A1 PUSH2 0x79C PUSH2 0x797 DUP5 PUSH2 0x35D JUMP JUMPDEST PUSH2 0x77C JUMP JUMPDEST PUSH2 0x35D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7BB DUP4 PUSH2 0x786 JUMP JUMPDEST PUSH2 0x7CF PUSH2 0x7C7 DUP3 PUSH2 0x7A8 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x72A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x7E4 PUSH2 0x7D7 JUMP JUMPDEST PUSH2 0x7EF DUP2 DUP5 DUP5 PUSH2 0x7B2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x813 JUMPI PUSH2 0x808 PUSH1 0x0 DUP3 PUSH2 0x7DC JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x7F5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x858 JUMPI PUSH2 0x829 DUP2 PUSH2 0x6F8 JUMP JUMPDEST PUSH2 0x832 DUP5 PUSH2 0x70D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x841 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x855 PUSH2 0x84D DUP6 PUSH2 0x70D JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x7F4 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x87B PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x85D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x894 DUP4 DUP4 PUSH2 0x86A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8AD DUP3 PUSH2 0x3FE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8C6 JUMPI PUSH2 0x8C5 PUSH2 0x4C8 JUMP JUMPDEST JUMPDEST PUSH2 0x8D0 DUP3 SLOAD PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0x8DB DUP3 DUP3 DUP6 PUSH2 0x817 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x90E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x8FC JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x906 DUP6 DUP3 PUSH2 0x888 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x96E JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x91C DUP7 PUSH2 0x6F8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x944 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x91F JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x961 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x95D PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x86A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x98C DUP3 PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x996 DUP2 DUP6 PUSH2 0x976 JUMP JUMPDEST SWAP4 POP PUSH2 0x9A6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x41A JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9BE DUP3 DUP5 PUSH2 0x981 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xF3FC5E89657FFCDC6C2C556C3B44801AA146B830 0xEF 0xE7 0x26 DUP9 0xAE 0xA9 PUSH21 0x169050BA64736F6C63430008130033000000000000 ",
"sourceMap": "119:1107:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;829:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;544:28;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;713:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;961:262;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;581:54;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;644:60;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;829:91;869:7;896:16;;889:23;;829:91;:::o;544:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;713:108::-;798:15;779:16;:34;;;;713:108;:::o;961:262::-;1110:12;1128:30;;;;;;;;1135:15;1128:30;;;;1152:5;1128:30;;;1110:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1200:15;1170:20;1191:5;1170:27;;;;;;:::i;:::-;;;;;;;;;;;;;:45;;;;961:262;;:::o;581:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;644:60::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:99::-;1429:6;1463:5;1457:12;1447:22;;1377:99;;;:::o;1482:169::-;1566:11;1600:6;1595:3;1588:19;1640:4;1635:3;1631:14;1616:29;;1482:169;;;;:::o;1657:246::-;1738:1;1748:113;1762:6;1759:1;1756:13;1748:113;;;1847:1;1842:3;1838:11;1832:18;1828:1;1823:3;1819:11;1812:39;1784:2;1781:1;1777:10;1772:15;;1748:113;;;1895:1;1886:6;1881:3;1877:16;1870:27;1719:184;1657:246;;;:::o;1909:102::-;1950:6;2001:2;1997:7;1992:2;1985:5;1981:14;1977:28;1967:38;;1909:102;;;:::o;2017:377::-;2105:3;2133:39;2166:5;2133:39;:::i;:::-;2188:71;2252:6;2247:3;2188:71;:::i;:::-;2181:78;;2268:65;2326:6;2321:3;2314:4;2307:5;2303:16;2268:65;:::i;:::-;2358:29;2380:6;2358:29;:::i;:::-;2353:3;2349:39;2342:46;;2109:285;2017:377;;;;:::o;2400:423::-;2541:4;2579:2;2568:9;2564:18;2556:26;;2592:71;2660:1;2649:9;2645:17;2636:6;2592:71;:::i;:::-;2710:9;2704:4;2700:20;2695:2;2684:9;2680:18;2673:48;2738:78;2811:4;2802:6;2738:78;:::i;:::-;2730:86;;2400:423;;;;;:::o;2829:117::-;2938:1;2935;2928:12;2952:117;3061:1;3058;3051:12;3075:180;3123:77;3120:1;3113:88;3220:4;3217:1;3210:15;3244:4;3241:1;3234:15;3261:281;3344:27;3366:4;3344:27;:::i;:::-;3336:6;3332:40;3474:6;3462:10;3459:22;3438:18;3426:10;3423:34;3420:62;3417:88;;;3485:18;;:::i;:::-;3417:88;3525:10;3521:2;3514:22;3304:238;3261:281;;:::o;3548:129::-;3582:6;3609:20;;:::i;:::-;3599:30;;3638:33;3666:4;3658:6;3638:33;:::i;:::-;3548:129;;;:::o;3683:308::-;3745:4;3835:18;3827:6;3824:30;3821:56;;;3857:18;;:::i;:::-;3821:56;3895:29;3917:6;3895:29;:::i;:::-;3887:37;;3979:4;3973;3969:15;3961:23;;3683:308;;;:::o;3997:146::-;4094:6;4089:3;4084;4071:30;4135:1;4126:6;4121:3;4117:16;4110:27;3997:146;;;:::o;4149:425::-;4227:5;4252:66;4268:49;4310:6;4268:49;:::i;:::-;4252:66;:::i;:::-;4243:75;;4341:6;4334:5;4327:21;4379:4;4372:5;4368:16;4417:3;4408:6;4403:3;4399:16;4396:25;4393:112;;;4424:79;;:::i;:::-;4393:112;4514:54;4561:6;4556:3;4551;4514:54;:::i;:::-;4233:341;4149:425;;;;;:::o;4594:340::-;4650:5;4699:3;4692:4;4684:6;4680:17;4676:27;4666:122;;4707:79;;:::i;:::-;4666:122;4824:6;4811:20;4849:79;4924:3;4916:6;4909:4;4901:6;4897:17;4849:79;:::i;:::-;4840:88;;4656:278;4594:340;;;;:::o;4940:654::-;5018:6;5026;5075:2;5063:9;5054:7;5050:23;5046:32;5043:119;;;5081:79;;:::i;:::-;5043:119;5229:1;5218:9;5214:17;5201:31;5259:18;5251:6;5248:30;5245:117;;;5281:79;;:::i;:::-;5245:117;5386:63;5441:7;5432:6;5421:9;5417:22;5386:63;:::i;:::-;5376:73;;5172:287;5498:2;5524:53;5569:7;5560:6;5549:9;5545:22;5524:53;:::i;:::-;5514:63;;5469:118;4940:654;;;;;:::o;5600:509::-;5669:6;5718:2;5706:9;5697:7;5693:23;5689:32;5686:119;;;5724:79;;:::i;:::-;5686:119;5872:1;5861:9;5857:17;5844:31;5902:18;5894:6;5891:30;5888:117;;;5924:79;;:::i;:::-;5888:117;6029:63;6084:7;6075:6;6064:9;6060:22;6029:63;:::i;:::-;6019:73;;5815:287;5600:509;;;;:::o;6115:180::-;6163:77;6160:1;6153:88;6260:4;6257:1;6250:15;6284:4;6281:1;6274:15;6301:320;6345:6;6382:1;6376:4;6372:12;6362:22;;6429:1;6423:4;6419:12;6450:18;6440:81;;6506:4;6498:6;6494:17;6484:27;;6440:81;6568:2;6560:6;6557:14;6537:18;6534:38;6531:84;;6587:18;;:::i;:::-;6531:84;6352:269;6301:320;;;:::o;6627:141::-;6676:4;6699:3;6691:11;;6722:3;6719:1;6712:14;6756:4;6753:1;6743:18;6735:26;;6627:141;;;:::o;6774:93::-;6811:6;6858:2;6853;6846:5;6842:14;6838:23;6828:33;;6774:93;;;:::o;6873:107::-;6917:8;6967:5;6961:4;6957:16;6936:37;;6873:107;;;;:::o;6986:393::-;7055:6;7105:1;7093:10;7089:18;7128:97;7158:66;7147:9;7128:97;:::i;:::-;7246:39;7276:8;7265:9;7246:39;:::i;:::-;7234:51;;7318:4;7314:9;7307:5;7303:21;7294:30;;7367:4;7357:8;7353:19;7346:5;7343:30;7333:40;;7062:317;;6986:393;;;;;:::o;7385:60::-;7413:3;7434:5;7427:12;;7385:60;;;:::o;7451:142::-;7501:9;7534:53;7552:34;7561:24;7579:5;7561:24;:::i;:::-;7552:34;:::i;:::-;7534:53;:::i;:::-;7521:66;;7451:142;;;:::o;7599:75::-;7642:3;7663:5;7656:12;;7599:75;;;:::o;7680:269::-;7790:39;7821:7;7790:39;:::i;:::-;7851:91;7900:41;7924:16;7900:41;:::i;:::-;7892:6;7885:4;7879:11;7851:91;:::i;:::-;7845:4;7838:105;7756:193;7680:269;;;:::o;7955:73::-;8000:3;7955:73;:::o;8034:189::-;8111:32;;:::i;:::-;8152:65;8210:6;8202;8196:4;8152:65;:::i;:::-;8087:136;8034:189;;:::o;8229:186::-;8289:120;8306:3;8299:5;8296:14;8289:120;;;8360:39;8397:1;8390:5;8360:39;:::i;:::-;8333:1;8326:5;8322:13;8313:22;;8289:120;;;8229:186;;:::o;8421:543::-;8522:2;8517:3;8514:11;8511:446;;;8556:38;8588:5;8556:38;:::i;:::-;8640:29;8658:10;8640:29;:::i;:::-;8630:8;8626:44;8823:2;8811:10;8808:18;8805:49;;;8844:8;8829:23;;8805:49;8867:80;8923:22;8941:3;8923:22;:::i;:::-;8913:8;8909:37;8896:11;8867:80;:::i;:::-;8526:431;;8511:446;8421:543;;;:::o;8970:117::-;9024:8;9074:5;9068:4;9064:16;9043:37;;8970:117;;;;:::o;9093:169::-;9137:6;9170:51;9218:1;9214:6;9206:5;9203:1;9199:13;9170:51;:::i;:::-;9166:56;9251:4;9245;9241:15;9231:25;;9144:118;9093:169;;;;:::o;9267:295::-;9343:4;9489:29;9514:3;9508:4;9489:29;:::i;:::-;9481:37;;9551:3;9548:1;9544:11;9538:4;9535:21;9527:29;;9267:295;;;;:::o;9567:1395::-;9684:37;9717:3;9684:37;:::i;:::-;9786:18;9778:6;9775:30;9772:56;;;9808:18;;:::i;:::-;9772:56;9852:38;9884:4;9878:11;9852:38;:::i;:::-;9937:67;9997:6;9989;9983:4;9937:67;:::i;:::-;10031:1;10055:4;10042:17;;10087:2;10079:6;10076:14;10104:1;10099:618;;;;10761:1;10778:6;10775:77;;;10827:9;10822:3;10818:19;10812:26;10803:35;;10775:77;10878:67;10938:6;10931:5;10878:67;:::i;:::-;10872:4;10865:81;10734:222;10069:887;;10099:618;10151:4;10147:9;10139:6;10135:22;10185:37;10217:4;10185:37;:::i;:::-;10244:1;10258:208;10272:7;10269:1;10266:14;10258:208;;;10351:9;10346:3;10342:19;10336:26;10328:6;10321:42;10402:1;10394:6;10390:14;10380:24;;10449:2;10438:9;10434:18;10421:31;;10295:4;10292:1;10288:12;10283:17;;10258:208;;;10494:6;10485:7;10482:19;10479:179;;;10552:9;10547:3;10543:19;10537:26;10595:48;10637:4;10629:6;10625:17;10614:9;10595:48;:::i;:::-;10587:6;10580:64;10502:156;10479:179;10704:1;10700;10692:6;10688:14;10684:22;10678:4;10671:36;10106:611;;;10069:887;;9659:1303;;;9567:1395;;:::o;10968:148::-;11070:11;11107:3;11092:18;;10968:148;;;;:::o;11122:390::-;11228:3;11256:39;11289:5;11256:39;:::i;:::-;11311:89;11393:6;11388:3;11311:89;:::i;:::-;11304:96;;11409:65;11467:6;11462:3;11455:4;11448:5;11444:16;11409:65;:::i;:::-;11499:6;11494:3;11490:16;11483:23;;11232:280;11122:390;;;;:::o;11518:275::-;11650:3;11672:95;11763:3;11754:6;11672:95;:::i;:::-;11665:102;;11784:3;11777:10;;11518:275;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "511800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"addPerson(string,uint256)": "infinite",
"listOfPeople(uint256)": "infinite",
"nameToFavoriteNumber(string)": "infinite",
"pat()": "infinite",
"retrieve()": "2415",
"store(uint256)": "22542"
}
},
"methodIdentifiers": {
"addPerson(string,uint256)": "6f760f41",
"listOfPeople(uint256)": "2ebce631",
"nameToFavoriteNumber(string)": "8bab8dd5",
"pat()": "b4a24f50",
"retrieve()": "2e64cec1",
"store(uint256)": "6057361d"
}
},
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "uint256",
"name": "_favoriteNumber",
"type": "uint256"
}
],
"name": "addPerson",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "listOfPeople",
"outputs": [
{
"internalType": "uint256",
"name": "favoriteNumber",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"name": "nameToFavoriteNumber",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pat",
"outputs": [
{
"internalType": "uint256",
"name": "favoriteNumber",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "retrieve",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_favoriteNumber",
"type": "uint256"
}
],
"name": "store",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.19+commit.7dd6d404"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "uint256",
"name": "_favoriteNumber",
"type": "uint256"
}
],
"name": "addPerson",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "listOfPeople",
"outputs": [
{
"internalType": "uint256",
"name": "favoriteNumber",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"name": "nameToFavoriteNumber",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pat",
"outputs": [
{
"internalType": "uint256",
"name": "favoriteNumber",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "retrieve",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_favoriteNumber",
"type": "uint256"
}
],
"name": "store",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol": "SimpleStorage"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol": {
"keccak256": "0x553f986d81a071201d8be211b9f3e4714fbf82d81d7a16a5ab5494c059707dfe",
"license": "MIT",
"urls": [
"bzz-raw://688721a3f21dbb6b76192e40e013109d436b06ec73fbc957c95198a7632d4799",
"dweb:/ipfs/QmbN12FAM1rQNGRz2G8mwo5mdEahKq1qDnMLw9LLzZpXEA"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50611383806100206000396000f3fe60806040523480156200001157600080fd5b5060043610620000525760003560e01c80631563700f146200005757806340d66b3b1462000077578063a1786dbe1462000083578063c5f19c2014620000b9575b600080fd5b6200007560048036038101906200006f91906200038d565b620000ef565b005b62000081620001a8565b005b620000a160048036038101906200009b9190620003d4565b6200023e565b604051620000b0919062000491565b60405180910390f35b620000d76004803603810190620000d19190620003d4565b6200027e565b604051620000e69190620004bf565b60405180910390f35b6000808381548110620001075762000106620004dc565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16636057361d836040518263ffffffff1660e01b81526004016200016f9190620004bf565b600060405180830381600087803b1580156200018a57600080fd5b505af11580156200019f573d6000803e3d6000fd5b50505050505050565b6000604051620001b8906200033f565b604051809103906000f080158015620001d5573d6000803e3d6000fd5b5090506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081815481106200024f57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008381548110620002985762000297620004dc565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16632e64cec16040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000311573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000337919062000522565b915050919050565b610df9806200055583390190565b600080fd5b6000819050919050565b620003678162000352565b81146200037357600080fd5b50565b60008135905062000387816200035c565b92915050565b60008060408385031215620003a757620003a66200034d565b5b6000620003b78582860162000376565b9250506020620003ca8582860162000376565b9150509250929050565b600060208284031215620003ed57620003ec6200034d565b5b6000620003fd8482850162000376565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620004516200044b620004458462000406565b62000426565b62000406565b9050919050565b6000620004658262000430565b9050919050565b6000620004798262000458565b9050919050565b6200048b816200046c565b82525050565b6000602082019050620004a8600083018462000480565b92915050565b620004b98162000352565b82525050565b6000602082019050620004d66000830184620004ae565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506200051c816200035c565b92915050565b6000602082840312156200053b576200053a6200034d565b5b60006200054b848285016200050b565b9150509291505056fe60806040526040518060400160405280600781526020016040518060400160405280600381526020017f5061740000000000000000000000000000000000000000000000000000000000815250815250600460008201518160000155602082015181600101908162000072919062000303565b5050503480156200008257600080fd5b50620003ea565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200010b57607f821691505b602082108103620001215762000120620000c3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200018b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200014c565b6200019786836200014c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620001e4620001de620001d884620001af565b620001b9565b620001af565b9050919050565b6000819050919050565b6200020083620001c3565b620002186200020f82620001eb565b84845462000159565b825550505050565b600090565b6200022f62000220565b6200023c818484620001f5565b505050565b5b8181101562000264576200025860008262000225565b60018101905062000242565b5050565b601f821115620002b3576200027d8162000127565b62000288846200013c565b8101602085101562000298578190505b620002b0620002a7856200013c565b83018262000241565b50505b505050565b600082821c905092915050565b6000620002d860001984600802620002b8565b1980831691505092915050565b6000620002f38383620002c5565b9150826002028217905092915050565b6200030e8262000089565b67ffffffffffffffff8111156200032a576200032962000094565b5b620003368254620000f2565b6200034382828562000268565b600060209050601f8311600181146200037b576000841562000366578287015190505b620003728582620002e5565b865550620003e2565b601f1984166200038b8662000127565b60005b82811015620003b5578489015182556001820191506020850194506020810190506200038e565b86831015620003d55784890151620003d1601f891682620002c5565b8355505b6001600288020188555050505b505050505050565b6109ff80620003fa6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80632e64cec1146100675780632ebce631146100855780636057361d146100b65780636f760f41146100d25780638bab8dd5146100ee578063b4a24f501461011e575b600080fd5b61006f61013d565b60405161007c9190610376565b60405180910390f35b61009f600480360381019061009a91906103d1565b610146565b6040516100ad92919061048e565b60405180910390f35b6100d060048036038101906100cb91906103d1565b610202565b005b6100ec60048036038101906100e791906105f3565b61020c565b005b6101086004803603810190610103919061064f565b610295565b6040516101159190610376565b60405180910390f35b6101266102c3565b60405161013492919061048e565b60405180910390f35b60008054905090565b6002818154811061015657600080fd5b906000526020600020906002020160009150905080600001549080600101805461017f906106c7565b80601f01602080910402602001604051908101604052809291908181526020018280546101ab906106c7565b80156101f85780601f106101cd576101008083540402835291602001916101f8565b820191906000526020600020905b8154815290600101906020018083116101db57829003601f168201915b5050505050905082565b8060008190555050565b6002604051806040016040528083815260200184815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000155602082015181600101908161026b91906108a4565b5050508060038360405161027f91906109b2565b9081526020016040518091039020819055505050565b6003818051602081018201805184825260208301602085012081835280955050505050506000915090505481565b60048060000154908060010180546102da906106c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610306906106c7565b80156103535780601f1061032857610100808354040283529160200191610353565b820191906000526020600020905b81548152906001019060200180831161033657829003601f168201915b5050505050905082565b6000819050919050565b6103708161035d565b82525050565b600060208201905061038b6000830184610367565b92915050565b6000604051905090565b600080fd5b600080fd5b6103ae8161035d565b81146103b957600080fd5b50565b6000813590506103cb816103a5565b92915050565b6000602082840312156103e7576103e661039b565b5b60006103f5848285016103bc565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561043857808201518184015260208101905061041d565b60008484015250505050565b6000601f19601f8301169050919050565b6000610460826103fe565b61046a8185610409565b935061047a81856020860161041a565b61048381610444565b840191505092915050565b60006040820190506104a36000830185610367565b81810360208301526104b58184610455565b90509392505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61050082610444565b810181811067ffffffffffffffff8211171561051f5761051e6104c8565b5b80604052505050565b6000610532610391565b905061053e82826104f7565b919050565b600067ffffffffffffffff82111561055e5761055d6104c8565b5b61056782610444565b9050602081019050919050565b82818337600083830152505050565b600061059661059184610543565b610528565b9050828152602081018484840111156105b2576105b16104c3565b5b6105bd848285610574565b509392505050565b600082601f8301126105da576105d96104be565b5b81356105ea848260208601610583565b91505092915050565b6000806040838503121561060a5761060961039b565b5b600083013567ffffffffffffffff811115610628576106276103a0565b5b610634858286016105c5565b9250506020610645858286016103bc565b9150509250929050565b6000602082840312156106655761066461039b565b5b600082013567ffffffffffffffff811115610683576106826103a0565b5b61068f848285016105c5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806106df57607f821691505b6020821081036106f2576106f1610698565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261075a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261071d565b610764868361071d565b95508019841693508086168417925050509392505050565b6000819050919050565b60006107a161079c6107978461035d565b61077c565b61035d565b9050919050565b6000819050919050565b6107bb83610786565b6107cf6107c7826107a8565b84845461072a565b825550505050565b600090565b6107e46107d7565b6107ef8184846107b2565b505050565b5b81811015610813576108086000826107dc565b6001810190506107f5565b5050565b601f82111561085857610829816106f8565b6108328461070d565b81016020851015610841578190505b61085561084d8561070d565b8301826107f4565b50505b505050565b600082821c905092915050565b600061087b6000198460080261085d565b1980831691505092915050565b6000610894838361086a565b9150826002028217905092915050565b6108ad826103fe565b67ffffffffffffffff8111156108c6576108c56104c8565b5b6108d082546106c7565b6108db828285610817565b600060209050601f83116001811461090e57600084156108fc578287015190505b6109068582610888565b86555061096e565b601f19841661091c866106f8565b60005b828110156109445784890151825560018201915060208501945060208101905061091f565b86831015610961578489015161095d601f89168261086a565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b600061098c826103fe565b6109968185610976565b93506109a681856020860161041a565b80840191505092915050565b60006109be8284610981565b91508190509291505056fea26469706673582212203a8afcc6cd0a0b36b8aecbc61940446e256a488b475641b2628fd650e143f27564736f6c63430008130033a2646970667358221220f6fa121a9f1f0c6604fb2c46b9573dd31e02f6979fffe5c79fec2e6c428e0abd64736f6c63430008130033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1383 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x52 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1563700F EQ PUSH3 0x57 JUMPI DUP1 PUSH4 0x40D66B3B EQ PUSH3 0x77 JUMPI DUP1 PUSH4 0xA1786DBE EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0xC5F19C20 EQ PUSH3 0xB9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x75 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x6F SWAP2 SWAP1 PUSH3 0x38D JUMP JUMPDEST PUSH3 0xEF JUMP JUMPDEST STOP JUMPDEST PUSH3 0x81 PUSH3 0x1A8 JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x3D4 JUMP JUMPDEST PUSH3 0x23E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x491 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x3D4 JUMP JUMPDEST PUSH3 0x27E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xE6 SWAP2 SWAP1 PUSH3 0x4BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP4 DUP2 SLOAD DUP2 LT PUSH3 0x107 JUMPI PUSH3 0x106 PUSH3 0x4DC JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6057361D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x16F SWAP2 SWAP1 PUSH3 0x4BF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x18A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x19F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH3 0x1B8 SWAP1 PUSH3 0x33F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x1D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH3 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 SLOAD DUP2 LT PUSH3 0x298 JUMPI PUSH3 0x297 PUSH3 0x4DC JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2E64CEC1 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x311 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x337 SWAP2 SWAP1 PUSH3 0x522 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDF9 DUP1 PUSH3 0x555 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x367 DUP2 PUSH3 0x352 JUMP JUMPDEST DUP2 EQ PUSH3 0x373 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x387 DUP2 PUSH3 0x35C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x3A7 JUMPI PUSH3 0x3A6 PUSH3 0x34D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x3B7 DUP6 DUP3 DUP7 ADD PUSH3 0x376 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x3CA DUP6 DUP3 DUP7 ADD PUSH3 0x376 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x3ED JUMPI PUSH3 0x3EC PUSH3 0x34D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x3FD DUP5 DUP3 DUP6 ADD PUSH3 0x376 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x451 PUSH3 0x44B PUSH3 0x445 DUP5 PUSH3 0x406 JUMP JUMPDEST PUSH3 0x426 JUMP JUMPDEST PUSH3 0x406 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x465 DUP3 PUSH3 0x430 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x479 DUP3 PUSH3 0x458 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x48B DUP2 PUSH3 0x46C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x4A8 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x480 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x4B9 DUP2 PUSH3 0x352 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x4D6 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x4AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x51C DUP2 PUSH3 0x35C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x53B JUMPI PUSH3 0x53A PUSH3 0x34D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x54B DUP5 DUP3 DUP6 ADD PUSH3 0x50B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5061740000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 MSTORE POP PUSH1 0x4 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH3 0x72 SWAP2 SWAP1 PUSH3 0x303 JUMP JUMPDEST POP POP POP CALLVALUE DUP1 ISZERO PUSH3 0x82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x3EA JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x10B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x121 JUMPI PUSH3 0x120 PUSH3 0xC3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x18B PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x14C JUMP JUMPDEST PUSH3 0x197 DUP7 DUP4 PUSH3 0x14C JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1E4 PUSH3 0x1DE PUSH3 0x1D8 DUP5 PUSH3 0x1AF JUMP JUMPDEST PUSH3 0x1B9 JUMP JUMPDEST PUSH3 0x1AF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x200 DUP4 PUSH3 0x1C3 JUMP JUMPDEST PUSH3 0x218 PUSH3 0x20F DUP3 PUSH3 0x1EB JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x159 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x22F PUSH3 0x220 JUMP JUMPDEST PUSH3 0x23C DUP2 DUP5 DUP5 PUSH3 0x1F5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x264 JUMPI PUSH3 0x258 PUSH1 0x0 DUP3 PUSH3 0x225 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x242 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2B3 JUMPI PUSH3 0x27D DUP2 PUSH3 0x127 JUMP JUMPDEST PUSH3 0x288 DUP5 PUSH3 0x13C JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x298 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2B0 PUSH3 0x2A7 DUP6 PUSH3 0x13C JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x241 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D8 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2B8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F3 DUP4 DUP4 PUSH3 0x2C5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x30E DUP3 PUSH3 0x89 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x32A JUMPI PUSH3 0x329 PUSH3 0x94 JUMP JUMPDEST JUMPDEST PUSH3 0x336 DUP3 SLOAD PUSH3 0xF2 JUMP JUMPDEST PUSH3 0x343 DUP3 DUP3 DUP6 PUSH3 0x268 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x37B JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x366 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x372 DUP6 DUP3 PUSH3 0x2E5 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x3E2 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x38B DUP7 PUSH3 0x127 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3B5 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x38E JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3D5 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3D1 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2C5 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9FF DUP1 PUSH3 0x3FA PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x2EBCE631 EQ PUSH2 0x85 JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0x6F760F41 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x8BAB8DD5 EQ PUSH2 0xEE JUMPI DUP1 PUSH4 0xB4A24F50 EQ PUSH2 0x11E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6F PUSH2 0x13D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9A SWAP2 SWAP1 PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x146 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP3 SWAP2 SWAP1 PUSH2 0x48E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCB SWAP2 SWAP1 PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x202 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xEC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE7 SWAP2 SWAP1 PUSH2 0x5F3 JUMP JUMPDEST PUSH2 0x20C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x108 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x103 SWAP2 SWAP1 PUSH2 0x64F JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x115 SWAP2 SWAP1 PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x126 PUSH2 0x2C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP3 SWAP2 SWAP1 PUSH2 0x48E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x17F SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1AB SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1F8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1CD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1F8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1DB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x8A4 JUMP JUMPDEST POP POP POP DUP1 PUSH1 0x3 DUP4 PUSH1 0x40 MLOAD PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x9B2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 ADD DUP1 MLOAD DUP5 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP6 ADD KECCAK256 DUP2 DUP4 MSTORE DUP1 SWAP6 POP POP POP POP POP POP PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x2DA SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x306 SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x353 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x328 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x353 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x336 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x370 DUP2 PUSH2 0x35D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x38B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x367 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3AE DUP2 PUSH2 0x35D JUMP JUMPDEST DUP2 EQ PUSH2 0x3B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3CB DUP2 PUSH2 0x3A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E7 JUMPI PUSH2 0x3E6 PUSH2 0x39B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3F5 DUP5 DUP3 DUP6 ADD PUSH2 0x3BC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x438 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x41D JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x460 DUP3 PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x46A DUP2 DUP6 PUSH2 0x409 JUMP JUMPDEST SWAP4 POP PUSH2 0x47A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x41A JUMP JUMPDEST PUSH2 0x483 DUP2 PUSH2 0x444 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x4A3 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x367 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4B5 DUP2 DUP5 PUSH2 0x455 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x500 DUP3 PUSH2 0x444 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x4C8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x532 PUSH2 0x391 JUMP JUMPDEST SWAP1 POP PUSH2 0x53E DUP3 DUP3 PUSH2 0x4F7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x55E JUMPI PUSH2 0x55D PUSH2 0x4C8 JUMP JUMPDEST JUMPDEST PUSH2 0x567 DUP3 PUSH2 0x444 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x596 PUSH2 0x591 DUP5 PUSH2 0x543 JUMP JUMPDEST PUSH2 0x528 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5B2 JUMPI PUSH2 0x5B1 PUSH2 0x4C3 JUMP JUMPDEST JUMPDEST PUSH2 0x5BD DUP5 DUP3 DUP6 PUSH2 0x574 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5DA JUMPI PUSH2 0x5D9 PUSH2 0x4BE JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5EA DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x60A JUMPI PUSH2 0x609 PUSH2 0x39B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x628 JUMPI PUSH2 0x627 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST PUSH2 0x634 DUP6 DUP3 DUP7 ADD PUSH2 0x5C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x645 DUP6 DUP3 DUP7 ADD PUSH2 0x3BC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x665 JUMPI PUSH2 0x664 PUSH2 0x39B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x683 JUMPI PUSH2 0x682 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST PUSH2 0x68F DUP5 DUP3 DUP6 ADD PUSH2 0x5C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x6DF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x6F2 JUMPI PUSH2 0x6F1 PUSH2 0x698 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x75A PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x71D JUMP JUMPDEST PUSH2 0x764 DUP7 DUP4 PUSH2 0x71D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A1 PUSH2 0x79C PUSH2 0x797 DUP5 PUSH2 0x35D JUMP JUMPDEST PUSH2 0x77C JUMP JUMPDEST PUSH2 0x35D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7BB DUP4 PUSH2 0x786 JUMP JUMPDEST PUSH2 0x7CF PUSH2 0x7C7 DUP3 PUSH2 0x7A8 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x72A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x7E4 PUSH2 0x7D7 JUMP JUMPDEST PUSH2 0x7EF DUP2 DUP5 DUP5 PUSH2 0x7B2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x813 JUMPI PUSH2 0x808 PUSH1 0x0 DUP3 PUSH2 0x7DC JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x7F5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x858 JUMPI PUSH2 0x829 DUP2 PUSH2 0x6F8 JUMP JUMPDEST PUSH2 0x832 DUP5 PUSH2 0x70D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x841 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x855 PUSH2 0x84D DUP6 PUSH2 0x70D JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x7F4 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x87B PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x85D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x894 DUP4 DUP4 PUSH2 0x86A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8AD DUP3 PUSH2 0x3FE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8C6 JUMPI PUSH2 0x8C5 PUSH2 0x4C8 JUMP JUMPDEST JUMPDEST PUSH2 0x8D0 DUP3 SLOAD PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0x8DB DUP3 DUP3 DUP6 PUSH2 0x817 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x90E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x8FC JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x906 DUP6 DUP3 PUSH2 0x888 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x96E JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x91C DUP7 PUSH2 0x6F8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x944 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x91F JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x961 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x95D PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x86A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x98C DUP3 PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x996 DUP2 DUP6 PUSH2 0x976 JUMP JUMPDEST SWAP4 POP PUSH2 0x9A6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x41A JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9BE DUP3 DUP5 PUSH2 0x981 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASPRICE DUP11 0xFC 0xC6 0xCD EXP SIGNEXTEND CALLDATASIZE 0xB8 0xAE 0xCB 0xC6 NOT BLOCKHASH PREVRANDAO PUSH15 0x256A488B475641B2628FD650E143F2 PUSH22 0x64736F6C63430008130033A2646970667358221220F6 STATICCALL SLT BYTE SWAP16 0x1F 0xC PUSH7 0x4FB2C46B9573D 0xD3 0x1E MUL 0xF6 SWAP8 SWAP16 SELFDESTRUCT 0xE5 0xC7 SWAP16 0xEC 0x2E PUSH13 0x428E0ABD64736F6C6343000813 STOP CALLER ",
"sourceMap": "283:774:1:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@createSimpleStorage_94": {
"entryPoint": 424,
"id": 94,
"parameterSlots": 0,
"returnSlots": 0
},
"@listOfSimpleStorage_76": {
"entryPoint": 574,
"id": 76,
"parameterSlots": 0,
"returnSlots": 0
},
"@sfGet_134": {
"entryPoint": 638,
"id": 134,
"parameterSlots": 1,
"returnSlots": 1
},
"@sfStore_115": {
"entryPoint": 239,
"id": 115,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_t_uint256": {
"entryPoint": 886,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 1291,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 980,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 1314,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_uint256": {
"entryPoint": 909,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_contract$_SimpleStorage_$68_to_t_address_fromStack": {
"entryPoint": 1152,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 1198,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_contract$_SimpleStorage_$68__to_t_address__fromStack_reversed": {
"entryPoint": 1169,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 1215,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1030,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 850,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_contract$_SimpleStorage_$68_to_t_address": {
"entryPoint": 1132,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint160_to_t_address": {
"entryPoint": 1112,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint160_to_t_uint160": {
"entryPoint": 1072,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"identity": {
"entryPoint": 1062,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x32": {
"entryPoint": 1244,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 845,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 860,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:3621:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:2",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:2"
},
"nodeType": "YulFunctionCall",
"src": "67:9:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:2"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:2",
"type": ""
}
],
"src": "7:75:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:2"
},
"nodeType": "YulFunctionCall",
"src": "187:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:2"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:2"
},
"nodeType": "YulFunctionCall",
"src": "310:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:2"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:32:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:16:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "400:5:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:2"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:2",
"type": ""
}
],
"src": "334:77:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "460:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "517:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "526:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "529:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "519:6:2"
},
"nodeType": "YulFunctionCall",
"src": "519:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "519:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "483:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "508:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "490:17:2"
},
"nodeType": "YulFunctionCall",
"src": "490:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "480:2:2"
},
"nodeType": "YulFunctionCall",
"src": "480:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "473:6:2"
},
"nodeType": "YulFunctionCall",
"src": "473:43:2"
},
"nodeType": "YulIf",
"src": "470:63:2"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "453:5:2",
"type": ""
}
],
"src": "417:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "597:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "607:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "629:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "616:12:2"
},
"nodeType": "YulFunctionCall",
"src": "616:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "607:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "672:5:2"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "645:26:2"
},
"nodeType": "YulFunctionCall",
"src": "645:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "645:33:2"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "575:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "583:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "591:5:2",
"type": ""
}
],
"src": "545:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "773:391:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "819:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "821:77:2"
},
"nodeType": "YulFunctionCall",
"src": "821:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "821:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "794:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "803:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "790:3:2"
},
"nodeType": "YulFunctionCall",
"src": "790:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "815:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "786:3:2"
},
"nodeType": "YulFunctionCall",
"src": "786:32:2"
},
"nodeType": "YulIf",
"src": "783:119:2"
},
{
"nodeType": "YulBlock",
"src": "912:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "927:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "941:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "931:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "956:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "991:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1002:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "987:3:2"
},
"nodeType": "YulFunctionCall",
"src": "987:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1011:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "966:20:2"
},
"nodeType": "YulFunctionCall",
"src": "966:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "956:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1039:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1054:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1068:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1058:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1084:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1119:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1130:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1115:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1115:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1139:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1094:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1094:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1084:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "735:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "746:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "758:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "766:6:2",
"type": ""
}
],
"src": "690:474:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1236:263:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1282:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1284:77:2"
},
"nodeType": "YulFunctionCall",
"src": "1284:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "1284:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1257:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1266:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1253:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1253:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1278:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1249:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1249:32:2"
},
"nodeType": "YulIf",
"src": "1246:119:2"
},
{
"nodeType": "YulBlock",
"src": "1375:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1390:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1404:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1394:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1419:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1454:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1465:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1450:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1450:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1474:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1429:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1429:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1419:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1206:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1217:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1229:6:2",
"type": ""
}
],
"src": "1170:329:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1550:81:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1560:65:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1575:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1582:42:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1571:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1571:54:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1560:7:2"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1532:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1542:7:2",
"type": ""
}
],
"src": "1505:126:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1669:28:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1679:12:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1686:5:2"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "1679:3:2"
}
]
}
]
},
"name": "identity",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1655:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "1665:3:2",
"type": ""
}
],
"src": "1637:60:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1763:82:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1773:66:2",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1831:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "1813:17:2"
},
"nodeType": "YulFunctionCall",
"src": "1813:24:2"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "1804:8:2"
},
"nodeType": "YulFunctionCall",
"src": "1804:34:2"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "1786:17:2"
},
"nodeType": "YulFunctionCall",
"src": "1786:53:2"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "1773:9:2"
}
]
}
]
},
"name": "convert_t_uint160_to_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1743:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "1753:9:2",
"type": ""
}
],
"src": "1703:142:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1911:66:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1921:50:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1965:5:2"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_uint160",
"nodeType": "YulIdentifier",
"src": "1934:30:2"
},
"nodeType": "YulFunctionCall",
"src": "1934:37:2"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "1921:9:2"
}
]
}
]
},
"name": "convert_t_uint160_to_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1891:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "1901:9:2",
"type": ""
}
],
"src": "1851:126:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2063:66:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2073:50:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2117:5:2"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_address",
"nodeType": "YulIdentifier",
"src": "2086:30:2"
},
"nodeType": "YulFunctionCall",
"src": "2086:37:2"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "2073:9:2"
}
]
}
]
},
"name": "convert_t_contract$_SimpleStorage_$68_to_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2043:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "2053:9:2",
"type": ""
}
],
"src": "1983:146:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2220:86:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2237:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2293:5:2"
}
],
"functionName": {
"name": "convert_t_contract$_SimpleStorage_$68_to_t_address",
"nodeType": "YulIdentifier",
"src": "2242:50:2"
},
"nodeType": "YulFunctionCall",
"src": "2242:57:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2230:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2230:70:2"
},
"nodeType": "YulExpressionStatement",
"src": "2230:70:2"
}
]
},
"name": "abi_encode_t_contract$_SimpleStorage_$68_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2208:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2215:3:2",
"type": ""
}
],
"src": "2135:171:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2430:144:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2440:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2452:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2463:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2448:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2448:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2440:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2540:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2553:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2564:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2549:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2549:17:2"
}
],
"functionName": {
"name": "abi_encode_t_contract$_SimpleStorage_$68_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "2476:63:2"
},
"nodeType": "YulFunctionCall",
"src": "2476:91:2"
},
"nodeType": "YulExpressionStatement",
"src": "2476:91:2"
}
]
},
"name": "abi_encode_tuple_t_contract$_SimpleStorage_$68__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2402:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2414:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2425:4:2",
"type": ""
}
],
"src": "2312:262:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2645:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2662:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2685:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2667:17:2"
},
"nodeType": "YulFunctionCall",
"src": "2667:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2655:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2655:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "2655:37:2"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2633:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2640:3:2",
"type": ""
}
],
"src": "2580:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2802:124:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2812:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2824:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2835:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2820:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2820:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2812:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2892:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2905:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2916:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2901:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2901:17:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "2848:43:2"
},
"nodeType": "YulFunctionCall",
"src": "2848:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "2848:71:2"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2774:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2786:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2797:4:2",
"type": ""
}
],
"src": "2704:222:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2960:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2977:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2980:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2970:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2970:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "2970:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3074:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3077:4:2",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3067:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3067:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "3067:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3098:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3101:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3091:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3091:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "3091:15:2"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "2932:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3181:80:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3191:22:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3206:6:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3200:5:2"
},
"nodeType": "YulFunctionCall",
"src": "3200:13:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3191:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3249:5:2"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "3222:26:2"
},
"nodeType": "YulFunctionCall",
"src": "3222:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "3222:33:2"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3159:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3167:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3175:5:2",
"type": ""
}
],
"src": "3118:143:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3344:274:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3390:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3392:77:2"
},
"nodeType": "YulFunctionCall",
"src": "3392:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "3392:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3365:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3374:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3361:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3361:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3386:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3357:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3357:32:2"
},
"nodeType": "YulIf",
"src": "3354:119:2"
},
{
"nodeType": "YulBlock",
"src": "3483:128:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3498:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3512:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3502:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3527:74:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3573:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3584:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3569:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3569:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3593:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "3537:31:2"
},
"nodeType": "YulFunctionCall",
"src": "3537:64:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3527:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3314:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3325:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3337:6:2",
"type": ""
}
],
"src": "3267:351:2"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_SimpleStorage_$68_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_SimpleStorage_$68_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_SimpleStorage_$68_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_SimpleStorage_$68__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_SimpleStorage_$68_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040523480156200001157600080fd5b5060043610620000525760003560e01c80631563700f146200005757806340d66b3b1462000077578063a1786dbe1462000083578063c5f19c2014620000b9575b600080fd5b6200007560048036038101906200006f91906200038d565b620000ef565b005b62000081620001a8565b005b620000a160048036038101906200009b9190620003d4565b6200023e565b604051620000b0919062000491565b60405180910390f35b620000d76004803603810190620000d19190620003d4565b6200027e565b604051620000e69190620004bf565b60405180910390f35b6000808381548110620001075762000106620004dc565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16636057361d836040518263ffffffff1660e01b81526004016200016f9190620004bf565b600060405180830381600087803b1580156200018a57600080fd5b505af11580156200019f573d6000803e3d6000fd5b50505050505050565b6000604051620001b8906200033f565b604051809103906000f080158015620001d5573d6000803e3d6000fd5b5090506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081815481106200024f57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008381548110620002985762000297620004dc565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16632e64cec16040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000311573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000337919062000522565b915050919050565b610df9806200055583390190565b600080fd5b6000819050919050565b620003678162000352565b81146200037357600080fd5b50565b60008135905062000387816200035c565b92915050565b60008060408385031215620003a757620003a66200034d565b5b6000620003b78582860162000376565b9250506020620003ca8582860162000376565b9150509250929050565b600060208284031215620003ed57620003ec6200034d565b5b6000620003fd8482850162000376565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620004516200044b620004458462000406565b62000426565b62000406565b9050919050565b6000620004658262000430565b9050919050565b6000620004798262000458565b9050919050565b6200048b816200046c565b82525050565b6000602082019050620004a8600083018462000480565b92915050565b620004b98162000352565b82525050565b6000602082019050620004d66000830184620004ae565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506200051c816200035c565b92915050565b6000602082840312156200053b576200053a6200034d565b5b60006200054b848285016200050b565b9150509291505056fe60806040526040518060400160405280600781526020016040518060400160405280600381526020017f5061740000000000000000000000000000000000000000000000000000000000815250815250600460008201518160000155602082015181600101908162000072919062000303565b5050503480156200008257600080fd5b50620003ea565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200010b57607f821691505b602082108103620001215762000120620000c3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200018b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200014c565b6200019786836200014c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620001e4620001de620001d884620001af565b620001b9565b620001af565b9050919050565b6000819050919050565b6200020083620001c3565b620002186200020f82620001eb565b84845462000159565b825550505050565b600090565b6200022f62000220565b6200023c818484620001f5565b505050565b5b8181101562000264576200025860008262000225565b60018101905062000242565b5050565b601f821115620002b3576200027d8162000127565b62000288846200013c565b8101602085101562000298578190505b620002b0620002a7856200013c565b83018262000241565b50505b505050565b600082821c905092915050565b6000620002d860001984600802620002b8565b1980831691505092915050565b6000620002f38383620002c5565b9150826002028217905092915050565b6200030e8262000089565b67ffffffffffffffff8111156200032a576200032962000094565b5b620003368254620000f2565b6200034382828562000268565b600060209050601f8311600181146200037b576000841562000366578287015190505b620003728582620002e5565b865550620003e2565b601f1984166200038b8662000127565b60005b82811015620003b5578489015182556001820191506020850194506020810190506200038e565b86831015620003d55784890151620003d1601f891682620002c5565b8355505b6001600288020188555050505b505050505050565b6109ff80620003fa6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80632e64cec1146100675780632ebce631146100855780636057361d146100b65780636f760f41146100d25780638bab8dd5146100ee578063b4a24f501461011e575b600080fd5b61006f61013d565b60405161007c9190610376565b60405180910390f35b61009f600480360381019061009a91906103d1565b610146565b6040516100ad92919061048e565b60405180910390f35b6100d060048036038101906100cb91906103d1565b610202565b005b6100ec60048036038101906100e791906105f3565b61020c565b005b6101086004803603810190610103919061064f565b610295565b6040516101159190610376565b60405180910390f35b6101266102c3565b60405161013492919061048e565b60405180910390f35b60008054905090565b6002818154811061015657600080fd5b906000526020600020906002020160009150905080600001549080600101805461017f906106c7565b80601f01602080910402602001604051908101604052809291908181526020018280546101ab906106c7565b80156101f85780601f106101cd576101008083540402835291602001916101f8565b820191906000526020600020905b8154815290600101906020018083116101db57829003601f168201915b5050505050905082565b8060008190555050565b6002604051806040016040528083815260200184815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000155602082015181600101908161026b91906108a4565b5050508060038360405161027f91906109b2565b9081526020016040518091039020819055505050565b6003818051602081018201805184825260208301602085012081835280955050505050506000915090505481565b60048060000154908060010180546102da906106c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610306906106c7565b80156103535780601f1061032857610100808354040283529160200191610353565b820191906000526020600020905b81548152906001019060200180831161033657829003601f168201915b5050505050905082565b6000819050919050565b6103708161035d565b82525050565b600060208201905061038b6000830184610367565b92915050565b6000604051905090565b600080fd5b600080fd5b6103ae8161035d565b81146103b957600080fd5b50565b6000813590506103cb816103a5565b92915050565b6000602082840312156103e7576103e661039b565b5b60006103f5848285016103bc565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561043857808201518184015260208101905061041d565b60008484015250505050565b6000601f19601f8301169050919050565b6000610460826103fe565b61046a8185610409565b935061047a81856020860161041a565b61048381610444565b840191505092915050565b60006040820190506104a36000830185610367565b81810360208301526104b58184610455565b90509392505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61050082610444565b810181811067ffffffffffffffff8211171561051f5761051e6104c8565b5b80604052505050565b6000610532610391565b905061053e82826104f7565b919050565b600067ffffffffffffffff82111561055e5761055d6104c8565b5b61056782610444565b9050602081019050919050565b82818337600083830152505050565b600061059661059184610543565b610528565b9050828152602081018484840111156105b2576105b16104c3565b5b6105bd848285610574565b509392505050565b600082601f8301126105da576105d96104be565b5b81356105ea848260208601610583565b91505092915050565b6000806040838503121561060a5761060961039b565b5b600083013567ffffffffffffffff811115610628576106276103a0565b5b610634858286016105c5565b9250506020610645858286016103bc565b9150509250929050565b6000602082840312156106655761066461039b565b5b600082013567ffffffffffffffff811115610683576106826103a0565b5b61068f848285016105c5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806106df57607f821691505b6020821081036106f2576106f1610698565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261075a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261071d565b610764868361071d565b95508019841693508086168417925050509392505050565b6000819050919050565b60006107a161079c6107978461035d565b61077c565b61035d565b9050919050565b6000819050919050565b6107bb83610786565b6107cf6107c7826107a8565b84845461072a565b825550505050565b600090565b6107e46107d7565b6107ef8184846107b2565b505050565b5b81811015610813576108086000826107dc565b6001810190506107f5565b5050565b601f82111561085857610829816106f8565b6108328461070d565b81016020851015610841578190505b61085561084d8561070d565b8301826107f4565b50505b505050565b600082821c905092915050565b600061087b6000198460080261085d565b1980831691505092915050565b6000610894838361086a565b9150826002028217905092915050565b6108ad826103fe565b67ffffffffffffffff8111156108c6576108c56104c8565b5b6108d082546106c7565b6108db828285610817565b600060209050601f83116001811461090e57600084156108fc578287015190505b6109068582610888565b86555061096e565b601f19841661091c866106f8565b60005b828110156109445784890151825560018201915060208501945060208101905061091f565b86831015610961578489015161095d601f89168261086a565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b600061098c826103fe565b6109968185610976565b93506109a681856020860161041a565b80840191505092915050565b60006109be8284610981565b91508190509291505056fea26469706673582212203a8afcc6cd0a0b36b8aecbc61940446e256a488b475641b2628fd650e143f27564736f6c63430008130033a2646970667358221220f6fa121a9f1f0c6604fb2c46b9573dd31e02f6979fffe5c79fec2e6c428e0abd64736f6c63430008130033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x52 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1563700F EQ PUSH3 0x57 JUMPI DUP1 PUSH4 0x40D66B3B EQ PUSH3 0x77 JUMPI DUP1 PUSH4 0xA1786DBE EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0xC5F19C20 EQ PUSH3 0xB9 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x75 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x6F SWAP2 SWAP1 PUSH3 0x38D JUMP JUMPDEST PUSH3 0xEF JUMP JUMPDEST STOP JUMPDEST PUSH3 0x81 PUSH3 0x1A8 JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x3D4 JUMP JUMPDEST PUSH3 0x23E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x491 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x3D4 JUMP JUMPDEST PUSH3 0x27E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xE6 SWAP2 SWAP1 PUSH3 0x4BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP4 DUP2 SLOAD DUP2 LT PUSH3 0x107 JUMPI PUSH3 0x106 PUSH3 0x4DC JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6057361D DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x16F SWAP2 SWAP1 PUSH3 0x4BF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x18A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x19F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH3 0x1B8 SWAP1 PUSH3 0x33F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x1D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH3 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 SLOAD DUP2 LT PUSH3 0x298 JUMPI PUSH3 0x297 PUSH3 0x4DC JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2E64CEC1 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x311 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x337 SWAP2 SWAP1 PUSH3 0x522 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDF9 DUP1 PUSH3 0x555 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x367 DUP2 PUSH3 0x352 JUMP JUMPDEST DUP2 EQ PUSH3 0x373 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x387 DUP2 PUSH3 0x35C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x3A7 JUMPI PUSH3 0x3A6 PUSH3 0x34D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x3B7 DUP6 DUP3 DUP7 ADD PUSH3 0x376 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x3CA DUP6 DUP3 DUP7 ADD PUSH3 0x376 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x3ED JUMPI PUSH3 0x3EC PUSH3 0x34D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x3FD DUP5 DUP3 DUP6 ADD PUSH3 0x376 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x451 PUSH3 0x44B PUSH3 0x445 DUP5 PUSH3 0x406 JUMP JUMPDEST PUSH3 0x426 JUMP JUMPDEST PUSH3 0x406 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x465 DUP3 PUSH3 0x430 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x479 DUP3 PUSH3 0x458 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x48B DUP2 PUSH3 0x46C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x4A8 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x480 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x4B9 DUP2 PUSH3 0x352 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x4D6 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x4AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x51C DUP2 PUSH3 0x35C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x53B JUMPI PUSH3 0x53A PUSH3 0x34D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x54B DUP5 DUP3 DUP6 ADD PUSH3 0x50B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5061740000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 MSTORE POP PUSH1 0x4 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH3 0x72 SWAP2 SWAP1 PUSH3 0x303 JUMP JUMPDEST POP POP POP CALLVALUE DUP1 ISZERO PUSH3 0x82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x3EA JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x10B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x121 JUMPI PUSH3 0x120 PUSH3 0xC3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x18B PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x14C JUMP JUMPDEST PUSH3 0x197 DUP7 DUP4 PUSH3 0x14C JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1E4 PUSH3 0x1DE PUSH3 0x1D8 DUP5 PUSH3 0x1AF JUMP JUMPDEST PUSH3 0x1B9 JUMP JUMPDEST PUSH3 0x1AF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x200 DUP4 PUSH3 0x1C3 JUMP JUMPDEST PUSH3 0x218 PUSH3 0x20F DUP3 PUSH3 0x1EB JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x159 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x22F PUSH3 0x220 JUMP JUMPDEST PUSH3 0x23C DUP2 DUP5 DUP5 PUSH3 0x1F5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x264 JUMPI PUSH3 0x258 PUSH1 0x0 DUP3 PUSH3 0x225 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x242 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2B3 JUMPI PUSH3 0x27D DUP2 PUSH3 0x127 JUMP JUMPDEST PUSH3 0x288 DUP5 PUSH3 0x13C JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x298 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2B0 PUSH3 0x2A7 DUP6 PUSH3 0x13C JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x241 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D8 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2B8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F3 DUP4 DUP4 PUSH3 0x2C5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x30E DUP3 PUSH3 0x89 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x32A JUMPI PUSH3 0x329 PUSH3 0x94 JUMP JUMPDEST JUMPDEST PUSH3 0x336 DUP3 SLOAD PUSH3 0xF2 JUMP JUMPDEST PUSH3 0x343 DUP3 DUP3 DUP6 PUSH3 0x268 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x37B JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x366 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x372 DUP6 DUP3 PUSH3 0x2E5 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x3E2 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x38B DUP7 PUSH3 0x127 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3B5 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x38E JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3D5 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3D1 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2C5 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9FF DUP1 PUSH3 0x3FA PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x2EBCE631 EQ PUSH2 0x85 JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0x6F760F41 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x8BAB8DD5 EQ PUSH2 0xEE JUMPI DUP1 PUSH4 0xB4A24F50 EQ PUSH2 0x11E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6F PUSH2 0x13D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9A SWAP2 SWAP1 PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x146 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP3 SWAP2 SWAP1 PUSH2 0x48E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCB SWAP2 SWAP1 PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x202 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xEC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE7 SWAP2 SWAP1 PUSH2 0x5F3 JUMP JUMPDEST PUSH2 0x20C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x108 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x103 SWAP2 SWAP1 PUSH2 0x64F JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x115 SWAP2 SWAP1 PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x126 PUSH2 0x2C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP3 SWAP2 SWAP1 PUSH2 0x48E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x17F SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1AB SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1F8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1CD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1F8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1DB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x8A4 JUMP JUMPDEST POP POP POP DUP1 PUSH1 0x3 DUP4 PUSH1 0x40 MLOAD PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x9B2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 ADD DUP1 MLOAD DUP5 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP6 ADD KECCAK256 DUP2 DUP4 MSTORE DUP1 SWAP6 POP POP POP POP POP POP PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x2DA SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x306 SWAP1 PUSH2 0x6C7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x353 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x328 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x353 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x336 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x370 DUP2 PUSH2 0x35D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x38B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x367 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3AE DUP2 PUSH2 0x35D JUMP JUMPDEST DUP2 EQ PUSH2 0x3B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3CB DUP2 PUSH2 0x3A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E7 JUMPI PUSH2 0x3E6 PUSH2 0x39B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3F5 DUP5 DUP3 DUP6 ADD PUSH2 0x3BC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x438 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x41D JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x460 DUP3 PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x46A DUP2 DUP6 PUSH2 0x409 JUMP JUMPDEST SWAP4 POP PUSH2 0x47A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x41A JUMP JUMPDEST PUSH2 0x483 DUP2 PUSH2 0x444 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x4A3 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x367 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4B5 DUP2 DUP5 PUSH2 0x455 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x500 DUP3 PUSH2 0x444 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x4C8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x532 PUSH2 0x391 JUMP JUMPDEST SWAP1 POP PUSH2 0x53E DUP3 DUP3 PUSH2 0x4F7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x55E JUMPI PUSH2 0x55D PUSH2 0x4C8 JUMP JUMPDEST JUMPDEST PUSH2 0x567 DUP3 PUSH2 0x444 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x596 PUSH2 0x591 DUP5 PUSH2 0x543 JUMP JUMPDEST PUSH2 0x528 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5B2 JUMPI PUSH2 0x5B1 PUSH2 0x4C3 JUMP JUMPDEST JUMPDEST PUSH2 0x5BD DUP5 DUP3 DUP6 PUSH2 0x574 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5DA JUMPI PUSH2 0x5D9 PUSH2 0x4BE JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5EA DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x60A JUMPI PUSH2 0x609 PUSH2 0x39B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x628 JUMPI PUSH2 0x627 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST PUSH2 0x634 DUP6 DUP3 DUP7 ADD PUSH2 0x5C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x645 DUP6 DUP3 DUP7 ADD PUSH2 0x3BC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x665 JUMPI PUSH2 0x664 PUSH2 0x39B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x683 JUMPI PUSH2 0x682 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST PUSH2 0x68F DUP5 DUP3 DUP6 ADD PUSH2 0x5C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x6DF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x6F2 JUMPI PUSH2 0x6F1 PUSH2 0x698 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x75A PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x71D JUMP JUMPDEST PUSH2 0x764 DUP7 DUP4 PUSH2 0x71D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A1 PUSH2 0x79C PUSH2 0x797 DUP5 PUSH2 0x35D JUMP JUMPDEST PUSH2 0x77C JUMP JUMPDEST PUSH2 0x35D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7BB DUP4 PUSH2 0x786 JUMP JUMPDEST PUSH2 0x7CF PUSH2 0x7C7 DUP3 PUSH2 0x7A8 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x72A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x7E4 PUSH2 0x7D7 JUMP JUMPDEST PUSH2 0x7EF DUP2 DUP5 DUP5 PUSH2 0x7B2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x813 JUMPI PUSH2 0x808 PUSH1 0x0 DUP3 PUSH2 0x7DC JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x7F5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x858 JUMPI PUSH2 0x829 DUP2 PUSH2 0x6F8 JUMP JUMPDEST PUSH2 0x832 DUP5 PUSH2 0x70D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x841 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x855 PUSH2 0x84D DUP6 PUSH2 0x70D JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x7F4 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x87B PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x85D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x894 DUP4 DUP4 PUSH2 0x86A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8AD DUP3 PUSH2 0x3FE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8C6 JUMPI PUSH2 0x8C5 PUSH2 0x4C8 JUMP JUMPDEST JUMPDEST PUSH2 0x8D0 DUP3 SLOAD PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0x8DB DUP3 DUP3 DUP6 PUSH2 0x817 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x90E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x8FC JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x906 DUP6 DUP3 PUSH2 0x888 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x96E JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x91C DUP7 PUSH2 0x6F8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x944 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x91F JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x961 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x95D PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x86A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x98C DUP3 PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x996 DUP2 DUP6 PUSH2 0x976 JUMP JUMPDEST SWAP4 POP PUSH2 0x9A6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x41A JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9BE DUP3 DUP5 PUSH2 0x981 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASPRICE DUP11 0xFC 0xC6 0xCD EXP SIGNEXTEND CALLDATASIZE 0xB8 0xAE 0xCB 0xC6 NOT BLOCKHASH PREVRANDAO PUSH15 0x256A488B475641B2628FD650E143F2 PUSH22 0x64736F6C63430008130033A2646970667358221220F6 STATICCALL SLT BYTE SWAP16 0x1F 0xC PUSH7 0x4FB2C46B9573D 0xD3 0x1E MUL 0xF6 SWAP8 SWAP16 SELFDESTRUCT 0xE5 0xC7 SWAP16 0xEC 0x2E PUSH13 0x428E0ABD64736F6C6343000813 STOP CALLER ",
"sourceMap": "283:774:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;578:260;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;367:203;;;:::i;:::-;;316:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;846:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;578:260;700:29;732:19;752;732:40;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;700:72;;783:15;:21;;;805:24;783:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;665:173;578:260;;:::o;367:203::-;463:27;493:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;463:49;;523:19;548:13;523:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;405:165;367:203::o;316:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;846:208::-;910:7;930:29;962:19;982;962:40;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;930:72;;1020:15;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1013:33;;;846:208;;;:::o;-1:-1:-1:-;;;;;;;;:::o;88:117:2:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:329::-;1229:6;1278:2;1266:9;1257:7;1253:23;1249:32;1246:119;;;1284:79;;:::i;:::-;1246:119;1404:1;1429:53;1474:7;1465:6;1454:9;1450:22;1429:53;:::i;:::-;1419:63;;1375:117;1170:329;;;;:::o;1505:126::-;1542:7;1582:42;1575:5;1571:54;1560:65;;1505:126;;;:::o;1637:60::-;1665:3;1686:5;1679:12;;1637:60;;;:::o;1703:142::-;1753:9;1786:53;1804:34;1813:24;1831:5;1813:24;:::i;:::-;1804:34;:::i;:::-;1786:53;:::i;:::-;1773:66;;1703:142;;;:::o;1851:126::-;1901:9;1934:37;1965:5;1934:37;:::i;:::-;1921:50;;1851:126;;;:::o;1983:146::-;2053:9;2086:37;2117:5;2086:37;:::i;:::-;2073:50;;1983:146;;;:::o;2135:171::-;2242:57;2293:5;2242:57;:::i;:::-;2237:3;2230:70;2135:171;;:::o;2312:262::-;2425:4;2463:2;2452:9;2448:18;2440:26;;2476:91;2564:1;2553:9;2549:17;2540:6;2476:91;:::i;:::-;2312:262;;;;:::o;2580:118::-;2667:24;2685:5;2667:24;:::i;:::-;2662:3;2655:37;2580:118;;:::o;2704:222::-;2797:4;2835:2;2824:9;2820:18;2812:26;;2848:71;2916:1;2905:9;2901:17;2892:6;2848:71;:::i;:::-;2704:222;;;;:::o;2932:180::-;2980:77;2977:1;2970:88;3077:4;3074:1;3067:15;3101:4;3098:1;3091:15;3118:143;3175:5;3206:6;3200:13;3191:22;;3222:33;3249:5;3222:33;:::i;:::-;3118:143;;;;:::o;3267:351::-;3337:6;3386:2;3374:9;3365:7;3361:23;3357:32;3354:119;;;3392:79;;:::i;:::-;3354:119;3512:1;3537:64;3593:7;3584:6;3573:9;3569:22;3537:64;:::i;:::-;3527:74;;3483:128;3267:351;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "999000",
"executionCost": "1041",
"totalCost": "1000041"
},
"external": {
"createSimpleStorage()": "infinite",
"listOfSimpleStorage(uint256)": "infinite",
"sfGet(uint256)": "infinite",
"sfStore(uint256,uint256)": "infinite"
}
},
"methodIdentifiers": {
"createSimpleStorage()": "40d66b3b",
"listOfSimpleStorage(uint256)": "a1786dbe",
"sfGet(uint256)": "c5f19c20",
"sfStore(uint256,uint256)": "1563700f"
}
},
"abi": [
{
"inputs": [],
"name": "createSimpleStorage",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "listOfSimpleStorage",
"outputs": [
{
"internalType": "contract SimpleStorage",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_simpleStorageIndex",
"type": "uint256"
}
],
"name": "sfGet",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_simpleStorageIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_newSimpleStorageNumeber",
"type": "uint256"
}
],
"name": "sfStore",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.19+commit.7dd6d404"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "createSimpleStorage",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "listOfSimpleStorage",
"outputs": [
{
"internalType": "contract SimpleStorage",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_simpleStorageIndex",
"type": "uint256"
}
],
"name": "sfGet",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_simpleStorageIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_newSimpleStorageNumeber",
"type": "uint256"
}
],
"name": "sfStore",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"gist-e80a7180ef9e469c4fbd59a07298e6c9/StorageFactory.sol": "StorageFactory"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol": {
"keccak256": "0xea413f6b590047bf082352542c7f20037fc482600f36ced6083382190d7e79e0",
"license": "MIT",
"urls": [
"bzz-raw://51296003b568c92be797290323ae781c9c3e30b6946c8579185b7ab41bfce556",
"dweb:/ipfs/QmXobSkYkr3q5j4FMSdcU8w2DifMP8FbrCPtE19CpC4gtd"
]
},
"gist-e80a7180ef9e469c4fbd59a07298e6c9/StorageFactory.sol": {
"keccak256": "0x6a5d5d7c98e7bbb1a03521da165ee52bfdeda2fe5d3a553a93f4e3f577ce1ce8",
"license": "MIT",
"urls": [
"bzz-raw://ab34d191c1e03cdad8e69a7df153666501c21ddf446acc4d87f606cc14aed8ab",
"dweb:/ipfs/QmZvYNWQDx3cKshpvzkmpqDm9axC2UBp1yHuiiUyfkZ5uE"
]
}
},
"version": 1
}
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19; //pragma solidtity ^0.8.18, pragma solidity >=0.8.18 <0.9.0
contract SimpleStorage {
//Basic types : boolean, uint, int, address, bytes, string
// public, private, internal, external. Default is internal.
//view, pure doesn't allow updating state, hence can be invoked without txn externally. only a "call"
uint256 myFavoriteNumber;
uint256[] listOfFavoriteNumbers;
struct Person {
uint256 favoriteNumber;
string name;
}
Person[] public listOfPeople;
mapping(string => uint256) public nameToFavoriteNumber;
Person public pat = Person({favoriteNumber: 7, name: "Pat"});
function store(uint256 _favoriteNumber) public virtual {
myFavoriteNumber = _favoriteNumber;
}
function retrieve() public view returns(uint256) {
return myFavoriteNumber;
}
//calldata, storage, memory
function addPerson(string memory _name, uint256 _favoriteNumber) public {
//Person memory person = Person(_favoriteNumber, _name);
listOfPeople.push(Person(_favoriteNumber, _name));
nameToFavoriteNumber[_name] = _favoriteNumber;
}
}
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19; //pragma solidtity ^0.8.18, pragma solidity >=0.8.18 <0.9.0
//Solidity literally copy pasting everything in there and copy pasting here
//import "./SimpleStorage.sol";
import {SimpleStorage} from "./SimpleStorage.sol";
contract StorageFactory {
SimpleStorage[] public listOfSimpleStorage;
function createSimpleStorage() public {
// New keyword creates a new contract
SimpleStorage simpleStorage = new SimpleStorage();
listOfSimpleStorage.push(simpleStorage);
}
function sfStore(uint256 _simpleStorageIndex, uint256 _newSimpleStorageNumeber) public {
//Address, ABI
SimpleStorage mySimpleStorage = listOfSimpleStorage[_simpleStorageIndex];
mySimpleStorage.store(_newSimpleStorageNumeber);
}
function sfGet(uint256 _simpleStorageIndex) public view returns(uint256) {
SimpleStorage mySimpleStorage = listOfSimpleStorage[_simpleStorageIndex];
return mySimpleStorage.retrieve();
}
}
This file has been truncated, but you can view the full file.
{
"id": "4543c1cc20a7915855fbd404992d5fdf",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.19",
"solcLongVersion": "0.8.19+commit.7dd6d404",
"input": {
"language": "Solidity",
"sources": {
"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol": {
"content": "//SPDX-License-Identifier: MIT\r\npragma solidity 0.8.19; //pragma solidtity ^0.8.18, pragma solidity >=0.8.18 <0.9.0\r\n\r\ncontract SimpleStorage {\r\n //Basic types : boolean, uint, int, address, bytes, string\r\n // public, private, internal, external. Default is internal.\r\n //view, pure doesn't allow updating state, hence can be invoked without txn externally. only a \"call\"\r\n uint256 myFavoriteNumber;\r\n\r\n uint256[] listOfFavoriteNumbers;\r\n\r\n struct Person {\r\n uint256 favoriteNumber;\r\n string name;\r\n }\r\n\r\n Person[] public listOfPeople;\r\n\r\n mapping(string => uint256) public nameToFavoriteNumber;\r\n\r\n Person public pat = Person({favoriteNumber: 7, name: \"Pat\"});\r\n\r\n function store(uint256 _favoriteNumber) public virtual {\r\n myFavoriteNumber = _favoriteNumber;\r\n }\r\n\r\n function retrieve() public view returns(uint256) {\r\n return myFavoriteNumber;\r\n }\r\n\r\n //calldata, storage, memory\r\n function addPerson(string memory _name, uint256 _favoriteNumber) public {\r\n //Person memory person = Person(_favoriteNumber, _name);\r\n listOfPeople.push(Person(_favoriteNumber, _name));\r\n nameToFavoriteNumber[_name] = _favoriteNumber;\r\n }\r\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol": {
"SimpleStorage": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "uint256",
"name": "_favoriteNumber",
"type": "uint256"
}
],
"name": "addPerson",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "listOfPeople",
"outputs": [
{
"internalType": "uint256",
"name": "favoriteNumber",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"name": "nameToFavoriteNumber",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pat",
"outputs": [
{
"internalType": "uint256",
"name": "favoriteNumber",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "retrieve",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_favoriteNumber",
"type": "uint256"
}
],
"name": "store",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":119:1226 contract SimpleStorage {... */\n mstore(0x40, 0x80)\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":664:704 Person({favoriteNumber: 7, name: \"Pat\"}) */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":688:689 7 */\n 0x07\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":664:704 Person({favoriteNumber: 7, name: \"Pat\"}) */\n dup2\n mstore\n 0x20\n add\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x03\n dup2\n mstore\n 0x20\n add\n 0x5061740000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n dup2\n mstore\n pop\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":644:704 Person public pat = Person({favoriteNumber: 7, name: \"Pat\"}) */\n 0x04\n 0x00\n dup3\n add\n mload\n dup2\n 0x00\n add\n sstore\n 0x20\n dup3\n add\n mload\n dup2\n 0x01\n add\n swap1\n dup2\n tag_1\n swap2\n swap1\n tag_2\n jump\t// in\ntag_1:\n pop\n pop\n pop\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":119:1226 contract SimpleStorage {... */\n callvalue\n dup1\n iszero\n tag_3\n jumpi\n 0x00\n dup1\n revert\ntag_3:\n pop\n jump(tag_4)\n /* \"#utility.yul\":7:106 */\ntag_5:\n /* \"#utility.yul\":59:65 */\n 0x00\n /* \"#utility.yul\":93:98 */\n dup2\n /* \"#utility.yul\":87:99 */\n mload\n /* \"#utility.yul\":77:99 */\n swap1\n pop\n /* \"#utility.yul\":7:106 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":112:292 */\ntag_6:\n /* \"#utility.yul\":160:237 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":157:158 */\n 0x00\n /* \"#utility.yul\":150:238 */\n mstore\n /* \"#utility.yul\":257:261 */\n 0x41\n /* \"#utility.yul\":254:255 */\n 0x04\n /* \"#utility.yul\":247:262 */\n mstore\n /* \"#utility.yul\":281:285 */\n 0x24\n /* \"#utility.yul\":278:279 */\n 0x00\n /* \"#utility.yul\":271:286 */\n revert\n /* \"#utility.yul\":298:478 */\ntag_7:\n /* \"#utility.yul\":346:423 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":343:344 */\n 0x00\n /* \"#utility.yul\":336:424 */\n mstore\n /* \"#utility.yul\":443:447 */\n 0x22\n /* \"#utility.yul\":440:441 */\n 0x04\n /* \"#utility.yul\":433:448 */\n mstore\n /* \"#utility.yul\":467:471 */\n 0x24\n /* \"#utility.yul\":464:465 */\n 0x00\n /* \"#utility.yul\":457:472 */\n revert\n /* \"#utility.yul\":484:804 */\ntag_8:\n /* \"#utility.yul\":528:534 */\n 0x00\n /* \"#utility.yul\":565:566 */\n 0x02\n /* \"#utility.yul\":559:563 */\n dup3\n /* \"#utility.yul\":555:567 */\n div\n /* \"#utility.yul\":545:567 */\n swap1\n pop\n /* \"#utility.yul\":612:613 */\n 0x01\n /* \"#utility.yul\":606:610 */\n dup3\n /* \"#utility.yul\":602:614 */\n and\n /* \"#utility.yul\":633:651 */\n dup1\n /* \"#utility.yul\":623:704 */\n tag_30\n jumpi\n /* \"#utility.yul\":689:693 */\n 0x7f\n /* \"#utility.yul\":681:687 */\n dup3\n /* \"#utility.yul\":677:694 */\n and\n /* \"#utility.yul\":667:694 */\n swap2\n pop\n /* \"#utility.yul\":623:704 */\ntag_30:\n /* \"#utility.yul\":751:753 */\n 0x20\n /* \"#utility.yul\":743:749 */\n dup3\n /* \"#utility.yul\":740:754 */\n lt\n /* \"#utility.yul\":720:738 */\n dup2\n /* \"#utility.yul\":717:755 */\n sub\n /* \"#utility.yul\":714:798 */\n tag_31\n jumpi\n /* \"#utility.yul\":770:788 */\n tag_32\n tag_7\n jump\t// in\ntag_32:\n /* \"#utility.yul\":714:798 */\ntag_31:\n /* \"#utility.yul\":535:804 */\n pop\n /* \"#utility.yul\":484:804 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":810:951 */\ntag_9:\n /* \"#utility.yul\":859:863 */\n 0x00\n /* \"#utility.yul\":882:885 */\n dup2\n /* \"#utility.yul\":874:885 */\n swap1\n pop\n /* \"#utility.yul\":905:908 */\n dup2\n /* \"#utility.yul\":902:903 */\n 0x00\n /* \"#utility.yul\":895:909 */\n mstore\n /* \"#utility.yul\":939:943 */\n 0x20\n /* \"#utility.yul\":936:937 */\n 0x00\n /* \"#utility.yul\":926:944 */\n keccak256\n /* \"#utility.yul\":918:944 */\n swap1\n pop\n /* \"#utility.yul\":810:951 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":957:1050 */\ntag_10:\n /* \"#utility.yul\":994:1000 */\n 0x00\n /* \"#utility.yul\":1041:1043 */\n 0x20\n /* \"#utility.yul\":1036:1038 */\n 0x1f\n /* \"#utility.yul\":1029:1034 */\n dup4\n /* \"#utility.yul\":1025:1039 */\n add\n /* \"#utility.yul\":1021:1044 */\n div\n /* \"#utility.yul\":1011:1044 */\n swap1\n pop\n /* \"#utility.yul\":957:1050 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1056:1163 */\ntag_11:\n /* \"#utility.yul\":1100:1108 */\n 0x00\n /* \"#utility.yul\":1150:1155 */\n dup3\n /* \"#utility.yul\":1144:1148 */\n dup3\n /* \"#utility.yul\":1140:1156 */\n shl\n /* \"#utility.yul\":1119:1156 */\n swap1\n pop\n /* \"#utility.yul\":1056:1163 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1169:1562 */\ntag_12:\n /* \"#utility.yul\":1238:1244 */\n 0x00\n /* \"#utility.yul\":1288:1289 */\n 0x08\n /* \"#utility.yul\":1276:1286 */\n dup4\n /* \"#utility.yul\":1272:1290 */\n mul\n /* \"#utility.yul\":1311:1408 */\n tag_37\n /* \"#utility.yul\":1341:1407 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1330:1339 */\n dup3\n /* \"#utility.yul\":1311:1408 */\n tag_11\n jump\t// in\ntag_37:\n /* \"#utility.yul\":1429:1468 */\n tag_38\n /* \"#utility.yul\":1459:1467 */\n dup7\n /* \"#utility.yul\":1448:1457 */\n dup4\n /* \"#utility.yul\":1429:1468 */\n tag_11\n jump\t// in\ntag_38:\n /* \"#utility.yul\":1417:1468 */\n swap6\n pop\n /* \"#utility.yul\":1501:1505 */\n dup1\n /* \"#utility.yul\":1497:1506 */\n not\n /* \"#utility.yul\":1490:1495 */\n dup5\n /* \"#utility.yul\":1486:1507 */\n and\n /* \"#utility.yul\":1477:1507 */\n swap4\n pop\n /* \"#utility.yul\":1550:1554 */\n dup1\n /* \"#utility.yul\":1540:1548 */\n dup7\n /* \"#utility.yul\":1536:1555 */\n and\n /* \"#utility.yul\":1529:1534 */\n dup5\n /* \"#utility.yul\":1526:1556 */\n or\n /* \"#utility.yul\":1516:1556 */\n swap3\n pop\n /* \"#utility.yul\":1245:1562 */\n pop\n pop\n /* \"#utility.yul\":1169:1562 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1568:1645 */\ntag_13:\n /* \"#utility.yul\":1605:1612 */\n 0x00\n /* \"#utility.yul\":1634:1639 */\n dup2\n /* \"#utility.yul\":1623:1639 */\n swap1\n pop\n /* \"#utility.yul\":1568:1645 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1651:1711 */\ntag_14:\n /* \"#utility.yul\":1679:1682 */\n 0x00\n /* \"#utility.yul\":1700:1705 */\n dup2\n /* \"#utility.yul\":1693:1705 */\n swap1\n pop\n /* \"#utility.yul\":1651:1711 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1717:1859 */\ntag_15:\n /* \"#utility.yul\":1767:1776 */\n 0x00\n /* \"#utility.yul\":1800:1853 */\n tag_42\n /* \"#utility.yul\":1818:1852 */\n tag_43\n /* \"#utility.yul\":1827:1851 */\n tag_44\n /* \"#utility.yul\":1845:1850 */\n dup5\n /* \"#utility.yul\":1827:1851 */\n tag_13\n jump\t// in\ntag_44:\n /* \"#utility.yul\":1818:1852 */\n tag_14\n jump\t// in\ntag_43:\n /* \"#utility.yul\":1800:1853 */\n tag_13\n jump\t// in\ntag_42:\n /* \"#utility.yul\":1787:1853 */\n swap1\n pop\n /* \"#utility.yul\":1717:1859 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1865:1940 */\ntag_16:\n /* \"#utility.yul\":1908:1911 */\n 0x00\n /* \"#utility.yul\":1929:1934 */\n dup2\n /* \"#utility.yul\":1922:1934 */\n swap1\n pop\n /* \"#utility.yul\":1865:1940 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1946:2215 */\ntag_17:\n /* \"#utility.yul\":2056:2095 */\n tag_47\n /* \"#utility.yul\":2087:2094 */\n dup4\n /* \"#utility.yul\":2056:2095 */\n tag_15\n jump\t// in\ntag_47:\n /* \"#utility.yul\":2117:2208 */\n tag_48\n /* \"#utility.yul\":2166:2207 */\n tag_49\n /* \"#utility.yul\":2190:2206 */\n dup3\n /* \"#utility.yul\":2166:2207 */\n tag_16\n jump\t// in\ntag_49:\n /* \"#utility.yul\":2158:2164 */\n dup5\n /* \"#utility.yul\":2151:2155 */\n dup5\n /* \"#utility.yul\":2145:2156 */\n sload\n /* \"#utility.yul\":2117:2208 */\n tag_12\n jump\t// in\ntag_48:\n /* \"#utility.yul\":2111:2115 */\n dup3\n /* \"#utility.yul\":2104:2209 */\n sstore\n /* \"#utility.yul\":2022:2215 */\n pop\n /* \"#utility.yul\":1946:2215 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2221:2294 */\ntag_18:\n /* \"#utility.yul\":2266:2269 */\n 0x00\n /* \"#utility.yul\":2221:2294 */\n swap1\n jump\t// out\n /* \"#utility.yul\":2300:2489 */\ntag_19:\n /* \"#utility.yul\":2377:2409 */\n tag_52\n tag_18\n jump\t// in\ntag_52:\n /* \"#utility.yul\":2418:2483 */\n tag_53\n /* \"#utility.yul\":2476:2482 */\n dup2\n /* \"#utility.yul\":2468:2474 */\n dup5\n /* \"#utility.yul\":2462:2466 */\n dup5\n /* \"#utility.yul\":2418:2483 */\n tag_17\n jump\t// in\ntag_53:\n /* \"#utility.yul\":2353:2489 */\n pop\n /* \"#utility.yul\":2300:2489 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2495:2681 */\ntag_20:\n /* \"#utility.yul\":2555:2675 */\ntag_55:\n /* \"#utility.yul\":2572:2575 */\n dup2\n /* \"#utility.yul\":2565:2570 */\n dup2\n /* \"#utility.yul\":2562:2576 */\n lt\n /* \"#utility.yul\":2555:2675 */\n iszero\n tag_57\n jumpi\n /* \"#utility.yul\":2626:2665 */\n tag_58\n /* \"#utility.yul\":2663:2664 */\n 0x00\n /* \"#utility.yul\":2656:2661 */\n dup3\n /* \"#utility.yul\":2626:2665 */\n tag_19\n jump\t// in\ntag_58:\n /* \"#utility.yul\":2599:2600 */\n 0x01\n /* \"#utility.yul\":2592:2597 */\n dup2\n /* \"#utility.yul\":2588:2601 */\n add\n /* \"#utility.yul\":2579:2601 */\n swap1\n pop\n /* \"#utility.yul\":2555:2675 */\n jump(tag_55)\ntag_57:\n /* \"#utility.yul\":2495:2681 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2687:3230 */\ntag_21:\n /* \"#utility.yul\":2788:2790 */\n 0x1f\n /* \"#utility.yul\":2783:2786 */\n dup3\n /* \"#utility.yul\":2780:2791 */\n gt\n /* \"#utility.yul\":2777:3223 */\n iszero\n tag_60\n jumpi\n /* \"#utility.yul\":2822:2860 */\n tag_61\n /* \"#utility.yul\":2854:2859 */\n dup2\n /* \"#utility.yul\":2822:2860 */\n tag_9\n jump\t// in\ntag_61:\n /* \"#utility.yul\":2906:2935 */\n tag_62\n /* \"#utility.yul\":2924:2934 */\n dup5\n /* \"#utility.yul\":2906:2935 */\n tag_10\n jump\t// in\ntag_62:\n /* \"#utility.yul\":2896:2904 */\n dup2\n /* \"#utility.yul\":2892:2936 */\n add\n /* \"#utility.yul\":3089:3091 */\n 0x20\n /* \"#utility.yul\":3077:3087 */\n dup6\n /* \"#utility.yul\":3074:3092 */\n lt\n /* \"#utility.yul\":3071:3120 */\n iszero\n tag_63\n jumpi\n /* \"#utility.yul\":3110:3118 */\n dup2\n /* \"#utility.yul\":3095:3118 */\n swap1\n pop\n /* \"#utility.yul\":3071:3120 */\ntag_63:\n /* \"#utility.yul\":3133:3213 */\n tag_64\n /* \"#utility.yul\":3189:3211 */\n tag_65\n /* \"#utility.yul\":3207:3210 */\n dup6\n /* \"#utility.yul\":3189:3211 */\n tag_10\n jump\t// in\ntag_65:\n /* \"#utility.yul\":3179:3187 */\n dup4\n /* \"#utility.yul\":3175:3212 */\n add\n /* \"#utility.yul\":3162:3173 */\n dup3\n /* \"#utility.yul\":3133:3213 */\n tag_20\n jump\t// in\ntag_64:\n /* \"#utility.yul\":2792:3223 */\n pop\n pop\n /* \"#utility.yul\":2777:3223 */\ntag_60:\n /* \"#utility.yul\":2687:3230 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3236:3353 */\ntag_22:\n /* \"#utility.yul\":3290:3298 */\n 0x00\n /* \"#utility.yul\":3340:3345 */\n dup3\n /* \"#utility.yul\":3334:3338 */\n dup3\n /* \"#utility.yul\":3330:3346 */\n shr\n /* \"#utility.yul\":3309:3346 */\n swap1\n pop\n /* \"#utility.yul\":3236:3353 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3359:3528 */\ntag_23:\n /* \"#utility.yul\":3403:3409 */\n 0x00\n /* \"#utility.yul\":3436:3487 */\n tag_68\n /* \"#utility.yul\":3484:3485 */\n 0x00\n /* \"#utility.yul\":3480:3486 */\n not\n /* \"#utility.yul\":3472:3477 */\n dup5\n /* \"#utility.yul\":3469:3470 */\n 0x08\n /* \"#utility.yul\":3465:3478 */\n mul\n /* \"#utility.yul\":3436:3487 */\n tag_22\n jump\t// in\ntag_68:\n /* \"#utility.yul\":3432:3488 */\n not\n /* \"#utility.yul\":3517:3521 */\n dup1\n /* \"#utility.yul\":3511:3515 */\n dup4\n /* \"#utility.yul\":3507:3522 */\n and\n /* \"#utility.yul\":3497:3522 */\n swap2\n pop\n /* \"#utility.yul\":3410:3528 */\n pop\n /* \"#utility.yul\":3359:3528 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3533:3828 */\ntag_24:\n /* \"#utility.yul\":3609:3613 */\n 0x00\n /* \"#utility.yul\":3755:3784 */\n tag_70\n /* \"#utility.yul\":3780:3783 */\n dup4\n /* \"#utility.yul\":3774:3778 */\n dup4\n /* \"#utility.yul\":3755:3784 */\n tag_23\n jump\t// in\ntag_70:\n /* \"#utility.yul\":3747:3784 */\n swap2\n pop\n /* \"#utility.yul\":3817:3820 */\n dup3\n /* \"#utility.yul\":3814:3815 */\n 0x02\n /* \"#utility.yul\":3810:3821 */\n mul\n /* \"#utility.yul\":3804:3808 */\n dup3\n /* \"#utility.yul\":3801:3822 */\n or\n /* \"#utility.yul\":3793:3822 */\n swap1\n pop\n /* \"#utility.yul\":3533:3828 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3833:5228 */\ntag_2:\n /* \"#utility.yul\":3950:3987 */\n tag_72\n /* \"#utility.yul\":3983:3986 */\n dup3\n /* \"#utility.yul\":3950:3987 */\n tag_5\n jump\t// in\ntag_72:\n /* \"#utility.yul\":4052:4070 */\n 0xffffffffffffffff\n /* \"#utility.yul\":4044:4050 */\n dup2\n /* \"#utility.yul\":4041:4071 */\n gt\n /* \"#utility.yul\":4038:4094 */\n iszero\n tag_73\n jumpi\n /* \"#utility.yul\":4074:4092 */\n tag_74\n tag_6\n jump\t// in\ntag_74:\n /* \"#utility.yul\":4038:4094 */\ntag_73:\n /* \"#utility.yul\":4118:4156 */\n tag_75\n /* \"#utility.yul\":4150:4154 */\n dup3\n /* \"#utility.yul\":4144:4155 */\n sload\n /* \"#utility.yul\":4118:4156 */\n tag_8\n jump\t// in\ntag_75:\n /* \"#utility.yul\":4203:4270 */\n tag_76\n /* \"#utility.yul\":4263:4269 */\n dup3\n /* \"#utility.yul\":4255:4261 */\n dup3\n /* \"#utility.yul\":4249:4253 */\n dup6\n /* \"#utility.yul\":4203:4270 */\n tag_21\n jump\t// in\ntag_76:\n /* \"#utility.yul\":4297:4298 */\n 0x00\n /* \"#utility.yul\":4321:4325 */\n 0x20\n /* \"#utility.yul\":4308:4325 */\n swap1\n pop\n /* \"#utility.yul\":4353:4355 */\n 0x1f\n /* \"#utility.yul\":4345:4351 */\n dup4\n /* \"#utility.yul\":4342:4356 */\n gt\n /* \"#utility.yul\":4370:4371 */\n 0x01\n /* \"#utility.yul\":4365:4983 */\n dup2\n eq\n tag_78\n jumpi\n /* \"#utility.yul\":5027:5028 */\n 0x00\n /* \"#utility.yul\":5044:5050 */\n dup5\n /* \"#utility.yul\":5041:5118 */\n iszero\n tag_79\n jumpi\n /* \"#utility.yul\":5093:5102 */\n dup3\n /* \"#utility.yul\":5088:5091 */\n dup8\n /* \"#utility.yul\":5084:5103 */\n add\n /* \"#utility.yul\":5078:5104 */\n mload\n /* \"#utility.yul\":5069:5104 */\n swap1\n pop\n /* \"#utility.yul\":5041:5118 */\ntag_79:\n /* \"#utility.yul\":5144:5211 */\n tag_80\n /* \"#utility.yul\":5204:5210 */\n dup6\n /* \"#utility.yul\":5197:5202 */\n dup3\n /* \"#utility.yul\":5144:5211 */\n tag_24\n jump\t// in\ntag_80:\n /* \"#utility.yul\":5138:5142 */\n dup7\n /* \"#utility.yul\":5131:5212 */\n sstore\n /* \"#utility.yul\":5000:5222 */\n pop\n /* \"#utility.yul\":4335:5222 */\n jump(tag_77)\n /* \"#utility.yul\":4365:4983 */\ntag_78:\n /* \"#utility.yul\":4417:4421 */\n 0x1f\n /* \"#utility.yul\":4413:4422 */\n not\n /* \"#utility.yul\":4405:4411 */\n dup5\n /* \"#utility.yul\":4401:4423 */\n and\n /* \"#utility.yul\":4451:4488 */\n tag_81\n /* \"#utility.yul\":4483:4487 */\n dup7\n /* \"#utility.yul\":4451:4488 */\n tag_9\n jump\t// in\ntag_81:\n /* \"#utility.yul\":4510:4511 */\n 0x00\n /* \"#utility.yul\":4524:4732 */\ntag_82:\n /* \"#utility.yul\":4538:4545 */\n dup3\n /* \"#utility.yul\":4535:4536 */\n dup2\n /* \"#utility.yul\":4532:4546 */\n lt\n /* \"#utility.yul\":4524:4732 */\n iszero\n tag_84\n jumpi\n /* \"#utility.yul\":4617:4626 */\n dup5\n /* \"#utility.yul\":4612:4615 */\n dup10\n /* \"#utility.yul\":4608:4627 */\n add\n /* \"#utility.yul\":4602:4628 */\n mload\n /* \"#utility.yul\":4594:4600 */\n dup3\n /* \"#utility.yul\":4587:4629 */\n sstore\n /* \"#utility.yul\":4668:4669 */\n 0x01\n /* \"#utility.yul\":4660:4666 */\n dup3\n /* \"#utility.yul\":4656:4670 */\n add\n /* \"#utility.yul\":4646:4670 */\n swap2\n pop\n /* \"#utility.yul\":4715:4717 */\n 0x20\n /* \"#utility.yul\":4704:4713 */\n dup6\n /* \"#utility.yul\":4700:4718 */\n add\n /* \"#utility.yul\":4687:4718 */\n swap5\n pop\n /* \"#utility.yul\":4561:4565 */\n 0x20\n /* \"#utility.yul\":4558:4559 */\n dup2\n /* \"#utility.yul\":4554:4566 */\n add\n /* \"#utility.yul\":4549:4566 */\n swap1\n pop\n /* \"#utility.yul\":4524:4732 */\n jump(tag_82)\ntag_84:\n /* \"#utility.yul\":4760:4766 */\n dup7\n /* \"#utility.yul\":4751:4758 */\n dup4\n /* \"#utility.yul\":4748:4767 */\n lt\n /* \"#utility.yul\":4745:4924 */\n iszero\n tag_85\n jumpi\n /* \"#utility.yul\":4818:4827 */\n dup5\n /* \"#utility.yul\":4813:4816 */\n dup10\n /* \"#utility.yul\":4809:4828 */\n add\n /* \"#utility.yul\":4803:4829 */\n mload\n /* \"#utility.yul\":4861:4909 */\n tag_86\n /* \"#utility.yul\":4903:4907 */\n 0x1f\n /* \"#utility.yul\":4895:4901 */\n dup10\n /* \"#utility.yul\":4891:4908 */\n and\n /* \"#utility.yul\":4880:4889 */\n dup3\n /* \"#utility.yul\":4861:4909 */\n tag_23\n jump\t// in\ntag_86:\n /* \"#utility.yul\":4853:4859 */\n dup4\n /* \"#utility.yul\":4846:4910 */\n sstore\n /* \"#utility.yul\":4768:4924 */\n pop\n /* \"#utility.yul\":4745:4924 */\ntag_85:\n /* \"#utility.yul\":4970:4971 */\n 0x01\n /* \"#utility.yul\":4966:4967 */\n 0x02\n /* \"#utility.yul\":4958:4964 */\n dup9\n /* \"#utility.yul\":4954:4968 */\n mul\n /* \"#utility.yul\":4950:4972 */\n add\n /* \"#utility.yul\":4944:4948 */\n dup9\n /* \"#utility.yul\":4937:4973 */\n sstore\n /* \"#utility.yul\":4372:4983 */\n pop\n pop\n pop\n /* \"#utility.yul\":4335:5222 */\ntag_77:\n pop\n /* \"#utility.yul\":3925:5228 */\n pop\n pop\n pop\n /* \"#utility.yul\":3833:5228 */\n pop\n pop\n jump\t// out\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":119:1226 contract SimpleStorage {... */\ntag_4:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":119:1226 contract SimpleStorage {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x2e64cec1\n eq\n tag_3\n jumpi\n dup1\n 0x2ebce631\n eq\n tag_4\n jumpi\n dup1\n 0x6057361d\n eq\n tag_5\n jumpi\n dup1\n 0x6f760f41\n eq\n tag_6\n jumpi\n dup1\n 0x8bab8dd5\n eq\n tag_7\n jumpi\n dup1\n 0xb4a24f50\n eq\n tag_8\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":829:920 function retrieve() public view returns(uint256) {... */\n tag_3:\n tag_9\n tag_10\n jump\t// in\n tag_9:\n mload(0x40)\n tag_11\n swap2\n swap1\n tag_12\n jump\t// in\n tag_11:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":544:572 Person[] public listOfPeople */\n tag_4:\n tag_13\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_14\n swap2\n swap1\n tag_15\n jump\t// in\n tag_14:\n tag_16\n jump\t// in\n tag_13:\n mload(0x40)\n tag_17\n swap3\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":713:821 function store(uint256 _favoriteNumber) public virtual {... */\n tag_5:\n tag_19\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_20\n swap2\n swap1\n tag_15\n jump\t// in\n tag_20:\n tag_21\n jump\t// in\n tag_19:\n stop\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":961:1223 function addPerson(string memory _name, uint256 _favoriteNumber) public {... */\n tag_6:\n tag_22\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_23\n swap2\n swap1\n tag_24\n jump\t// in\n tag_23:\n tag_25\n jump\t// in\n tag_22:\n stop\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":581:635 mapping(string => uint256) public nameToFavoriteNumber */\n tag_7:\n tag_26\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_27\n swap2\n swap1\n tag_28\n jump\t// in\n tag_27:\n tag_29\n jump\t// in\n tag_26:\n mload(0x40)\n tag_30\n swap2\n swap1\n tag_12\n jump\t// in\n tag_30:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":644:704 Person public pat = Person({favoriteNumber: 7, name: \"Pat\"}) */\n tag_8:\n tag_31\n tag_32\n jump\t// in\n tag_31:\n mload(0x40)\n tag_33\n swap3\n swap2\n swap1\n tag_18\n jump\t// in\n tag_33:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":829:920 function retrieve() public view returns(uint256) {... */\n tag_10:\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":869:876 uint256 */\n 0x00\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":896:912 myFavoriteNumber */\n dup1\n sload\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":889:912 return myFavoriteNumber */\n swap1\n pop\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":829:920 function retrieve() public view returns(uint256) {... */\n swap1\n jump\t// out\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":544:572 Person[] public listOfPeople */\n tag_16:\n 0x02\n dup2\n dup2\n sload\n dup2\n lt\n tag_35\n jumpi\n 0x00\n dup1\n revert\n tag_35:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n 0x02\n mul\n add\n 0x00\n swap2\n pop\n swap1\n pop\n dup1\n 0x00\n add\n sload\n swap1\n dup1\n 0x01\n add\n dup1\n sload\n tag_37\n swap1\n tag_38\n jump\t// in\n tag_37:\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n tag_39\n swap1\n tag_38\n jump\t// in\n tag_39:\n dup1\n iszero\n tag_40\n jumpi\n dup1\n 0x1f\n lt\n tag_41\n jumpi\n 0x0100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_40)\n tag_41:\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_42:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x01\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_42\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_40:\n pop\n pop\n pop\n pop\n pop\n swap1\n pop\n dup3\n jump\t// out\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":713:821 function store(uint256 _favoriteNumber) public virtual {... */\n tag_21:\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":798:813 _favoriteNumber */\n dup1\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":779:795 myFavoriteNumber */\n 0x00\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":779:813 myFavoriteNumber = _favoriteNumber */\n dup2\n swap1\n sstore\n pop\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":713:821 function store(uint256 _favoriteNumber) public virtual {... */\n pop\n jump\t// out\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":961:1223 function addPerson(string memory _name, uint256 _favoriteNumber) public {... */\n tag_25:\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":1110:1122 listOfPeople */\n 0x02\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":1128:1158 Person(_favoriteNumber, _name) */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":1135:1150 _favoriteNumber */\n dup4\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":1128:1158 Person(_favoriteNumber, _name) */\n dup2\n mstore\n 0x20\n add\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":1152:1157 _name */\n dup5\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":1128:1158 Person(_favoriteNumber, _name) */\n dup2\n mstore\n pop\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":1110:1159 listOfPeople.push(Person(_favoriteNumber, _name)) */\n swap1\n dup1\n 0x01\n dup2\n sload\n add\n dup1\n dup3\n sstore\n dup1\n swap2\n pop\n pop\n 0x01\n swap1\n sub\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n 0x02\n mul\n add\n 0x00\n swap1\n swap2\n swap1\n swap2\n swap1\n swap2\n pop\n 0x00\n dup3\n add\n mload\n dup2\n 0x00\n add\n sstore\n 0x20\n dup3\n add\n mload\n dup2\n 0x01\n add\n swap1\n dup2\n tag_46\n swap2\n swap1\n tag_47\n jump\t// in\n tag_46:\n pop\n pop\n pop\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":1200:1215 _favoriteNumber */\n dup1\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":1170:1190 nameToFavoriteNumber */\n 0x03\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":1191:1196 _name */\n dup4\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":1170:1197 nameToFavoriteNumber[_name] */\n mload(0x40)\n tag_48\n swap2\n swap1\n tag_49\n jump\t// in\n tag_48:\n swap1\n dup2\n mstore\n 0x20\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n keccak256\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":1170:1215 nameToFavoriteNumber[_name] = _favoriteNumber */\n dup2\n swap1\n sstore\n pop\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":961:1223 function addPerson(string memory _name, uint256 _favoriteNumber) public {... */\n pop\n pop\n jump\t// out\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":581:635 mapping(string => uint256) public nameToFavoriteNumber */\n tag_29:\n 0x03\n dup2\n dup1\n mload\n 0x20\n dup2\n add\n dup3\n add\n dup1\n mload\n dup5\n dup3\n mstore\n 0x20\n dup4\n add\n 0x20\n dup6\n add\n keccak256\n dup2\n dup4\n mstore\n dup1\n swap6\n pop\n pop\n pop\n pop\n pop\n pop\n 0x00\n swap2\n pop\n swap1\n pop\n sload\n dup2\n jump\t// out\n /* \"gist-e80a7180ef9e469c4fbd59a07298e6c9/SimpleStorage.sol\":644:704 Person public pat = Person({favoriteNumber: 7, name: \"Pat\"}) */\n tag_32:\n 0x04\n dup1\n 0x00\n add\n sload\n swap1\n dup1\n 0x01\n add\n dup1\n sload\n tag_50\n swap1\n tag_38\n jump\t// in\n tag_50:\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n tag_51\n swap1\n tag_38\n jump\t// in\n tag_51:\n dup1\n iszero\n tag_52\n jumpi\n dup1\n 0x1f\n lt\n tag_53\n jumpi\n 0x0100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_52)\n tag_53:\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_54:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x01\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_54\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_52:\n pop\n pop\n pop\n pop\n pop\n swap1\n pop\n dup3\n jump\t// out\n /* \"#utility.yul\":7:84 */\n tag_55:\n /* \"#utility.yul\":44:51 */\n 0x00\n /* \"#utility.yul\":73:78 */\n dup2\n /* \"#utility.yul\":62:78 */\n swap1\n pop\n /* \"#utility.yul\":7:84 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":90:208 */\n tag_56:\n /* \"#utility.yul\":177:201 */\n tag_97\n /* \"#utility.yul\":195:200 */\n dup2\n /* \"#utility.yul\":177:201 */\n tag_55\n jump\t// in\n tag_97:\n /* \"#utility.yul\":172:175 */\n dup3\n /* \"#utility.yul\":165:202 */\n mstore\n /* \"#utility.yul\":90:208 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":214:436 */\n tag_12:\n /* \"#utility.yul\":307:311 */\n 0x00\n /* \"#utility.yul\":345:347 */\n 0x20\n /* \"#utility.yul\":334:343 */\n dup3\n /* \"#utility.yul\":330:348 */\n add\n /* \"#utility.yul\":322:348 */\n swap1\n pop\n /* \"#utility.yul\":358:429 */\n tag_99\n /* \"#utility.yul\":426:427 */\n 0x00\n /* \"#utility.yul\":415:424 */\n dup4\n /* \"#utility.yul\":411:428 */\n add\n /* \"#utility.yul\":402:408 */\n dup5\n /* \"#utility.yul\":358:429 */\n tag_56\n jump\t// in\n tag_99:\n /* \"#utility.yul\":214:436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":442:517 */\n tag_57:\n /* \"#utility.yul\":475:481 */\n 0x00\n /* \"#utility.yul\":508:510 */\n 0x40\n /* \"#utility.yul\":502:511 */\n mload\n /* \"#utility.yul\":492:511 */\n swap1\n pop\n /* \"#utility.yul\":442:517 */\n swap1\n jump\t// out\n /* \"#utility.yul\":523:640 */\n tag_58:\n /* \"#utility.yul\":632:633 */\n 0x00\n /* \"#utility.yul\":629:630 */\n dup1\n /* \"#utility.yul\":622:634 */\n revert\n /* \"#utility.yul\":646:763 */\n tag_59:\n /* \"#utility.yul\":755:756 */\n 0x00\n /* \"#utility.yul\":752:753 */\n dup1\n /* \"#utility.yul\":745:757 */\n revert\n /* \"#utility.yul\":769:891 */\n tag_60:\n /* \"#utility.yul\":842:866 */\n tag_104\n /* \"#utility.yul\":860:865 */\n dup2\n /* \"#utility.yul\":842:866 */\n tag_55\n jump\t// in\n tag_104:\n /* \"#utility.yul\":835:840 */\n dup2\n /* \"#utility.yul\":832:867 */\n eq\n /* \"#utility.yul\":822:885 */\n tag_105\n jumpi\n /* \"#utility.yul\":881:882 */\n 0x00\n /* \"#utility.yul\":878:879 */\n dup1\n /* \"#utility.yul\":871:883 */\n revert\n /* \"#utility.yul\":822:885 */\n tag_105:\n /* \"#utility.yul\":769:891 */\n pop\n jump\t// out\n /* \"#utility.yul\":897:1036 */\n tag_61:\n /* \"#utility.yul\":943:948 */\n 0x00\n /* \"#utility.yul\":981:987 */\n dup2\n /* \"#utility.yul\":968:988 */\n calldataload\n /* \"#utility.yul\":959:988 */\n swap1\n pop\n /* \"#utility.yul\":997:1030 */\n tag_107\n /* \"#utility.yul\":1024:1029 */\n dup2\n /* \"#utility.yul\":997:1030 */\n tag_60\n jump\t// in\n tag_107:\n /* \"#utility.yul\":897:1036 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1042:1371 */\n tag_15:\n /* \"#utility.yul\":1101:1107 */\n 0x00\n /* \"#utility.yul\":1150:1152 */\n 0x20\n /* \"#utility.yul\":1138:1147 */\n dup3\n /* \"#utility.yul\":1129:1136 */\n dup5\n /* \"#utility.yul\":1125:1148 */\n sub\n /* \"#utility.yul\":1121:1153 */\n slt\n /* \"#utility.yul\":1118:1237 */\n iszero\n tag_109\n jumpi\n /* \"#utility.yul\":1156:1235 */\n tag_110\n tag_58\n jump\t// in\n tag_110:\n /* \"#utility.yul\":1118:1237 */\n tag_109:\n /* \"#utility.yul\":1276:1277 */\n 0x00\n /* \"#utility.yul\":1301:1354 */\n tag_111\n /* \"#utility.yul\":1346:1353 */\n dup5\n /* \"#utility.yul\":1337:1343 */\n dup3\n /* \"#utility.yul\":1326:1335 */\n dup6\n /* \"#utility.yul\":1322:1344 */\n add\n /* \"#utility.yul\":1301:1354 */\n tag_61\n jump\t// in\n tag_111:\n /* \"#utility.yul\":1291:1354 */\n swap2\n pop\n /* \"#utility.yul\":1247:1364 */\n pop\n /* \"#utility.yul\":1042:1371 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1377:1476 */\n tag_62:\n /* \"#utility.yul\":1429:1435 */\n 0x00\n /* \"#utility.yul\":1463:1468 */\n dup2\n /* \"#utility.yul\":1457:1469 */\n mload\n /* \"#utility.yul\":1447:1469 */\n swap1\n pop\n /* \"#utility.yul\":1377:1476 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1482:1651 */\n tag_63:\n /* \"#utility.yul\":1566:1577 */\n 0x00\n /* \"#utility.yul\":1600:1606 */\n dup3\n /* \"#utility.yul\":1595:1598 */\n dup3\n /* \"#utility.yul\":1588:1607 */\n mstore\n /* \"#utility.yul\":1640:1644 */\n 0x20\n /* \"#utility.yul\":1635:1638 */\n dup3\n /* \"#utility.yul\":1631:1645 */\n add\n /* \"#utility.yul\":1616:1645 */\n swap1\n pop\n /* \"#utility.yul\":1482:1651 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1657:1903 */\n tag_64:\n /* \"#utility.yul\":1738:1739 */\n 0x00\n /* \"#utility.yul\":1748:1861 */\n tag_115:\n /* \"#utility.yul\":1762:1768 */\n dup4\n /* \"#utility.yul\":1759:1760 */\n dup2\n /* \"#utility.yul\":1756:1769 */\n lt\n /* \"#utility.yul\":1748:1861 */\n iszero\n tag_117\n jumpi\n /* \"#utility.yul\":1847:1848 */\n dup1\n /* \"#utility.yul\":1842:1845 */\n dup3\n /* \"#utility.yul\":1838:1849 */\n add\n /* \"#utility.yul\":1832:1850 */\n mload\n /* \"#utility.yul\":1828:1829 */\n dup2\n /* \"#utility.yul\":1823:1826 */\n dup5\n /* \"#utility.yul\":1819:1830 */\n add\n /* \"#utility.yul\":1812:1851 */\n mstore\n /* \"#utility.yul\":1784:1786 */\n 0x20\n /* \"#utility.yul\":1781:1782 */\n dup2\n /* \"#utility.yul\":1777:1787 */\n add\n /* \"#utility.yul\":1772:1787 */\n swap1\n pop\n /* \"#utility.yul\":1748:1861 */\n jump(tag_115)\n tag_117:\n /* \"#utility.yul\":1895:1896 */\n 0x00\n /* \"#utility.yul\":1886:1892 */\n dup5\n /* \"#utility.yul\":1881:1884 */\n dup5\n /* \"#utility.yul\":1877:1893 */\n add\n /* \"#utility.yul\":1870:1897 */\n mstore\n /* \"#utility.yul\":1719:1903 */\n pop\n /* \"#utility.yul\":1657:1903 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1909:2011 */\n tag_65:\n /* \"#utility.yul\":1950:1956 */\n 0x00\n /* \"#utility.yul\":2001:2003 */\n 0x1f\n /* \"#utility.yul\":1997:2004 */\n not\n /* \"#utility.yul\":1992:1994 */\n 0x1f\n /* \"#utility.yul\":1985:1990 */\n dup4\n /* \"#utility.yul\":1981:1995 */\n add\n /* \"#utility.yul\":1977:2005 */\n and\n /* \"#utility.yul\":1967:2005 */\n swap1\n pop\n /* \"#utility.yul\":1909:2011 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2017:2394 */\n tag_66:\n /* \"#utility.yul\":2105:2108 */\n 0x00\n /* \"#utility.yul\":2133:2172 */\n tag_120\n /* \"#utility.yul\":2166:2171 */\n dup3\n /* \"#utility.yul\":2133:2172 */\n tag_62\n jump\t// in\n tag_120:\n /* \"#utility.yul\":2188:2259 */\n tag_121\n /* \"#utility.yul\":2252:2258 */\n dup2\n /* \"#utility.yul\":2247:2250 */\n dup6\n /* \"#utility.yul\":2188:2259 */\n tag_63\n jump\t// in\n tag_121:\n /* \"#utility.yul\":2181:2259 */\n swap4\n pop\n /* \"#utility.yul\":2268:2333 */\n tag_122\n /* \"#utility.yul\":2326:2332 */\n dup2\n /* \"#utility.yul\":2321:2324 */\n dup6\n /* \"#utility.yul\":2314:2318 */\n 0x20\n /* \"#utility.yul\":2307:2312 */\n dup7\n /* \"#utility.yul\":2303:2319 */\n add\n /* \"#utility.yul\":2268:2333 */\n tag_64\n jump\t// in\n tag_122:\n /* \"#utility.yul\":2358:2387 */\n tag_123\n /* \"#utility.yul\":2380:2386 */\n dup2\n /* \"#utility.yul\":2358:2387 */\n tag_65\n jump\t// in\n tag_123:\n /* \"#utility.yul\":2353:2356 */\n dup5\n /* \"#utility.yul\":2349:2388 */\n add\n /* \"#utility.yul\":2342:2388 */\n swap2\n pop\n /* \"#utility.yul\":2109:2394 */\n pop\n /* \"#utility.yul\":2017:2394 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2400:2823 */\n tag_18:\n /* \"#utility.yul\":2541:2545 */\n 0x00\n /* \"#utility.yul\":2579:2581 */\n 0x40\n /* \"#utility.yul\":2568:2577 */\n dup3\n /* \"#utility.yul\":2564:2582 */\n add\n /* \"#utility.yul\":2556:2582 */\n swap1\n pop\n /* \"#utility.yul\":2592:2663 */\n tag_125\n /* \"#utility.yul\":2660:2661 */\n 0x00\n /* \"#utility.yul\":2649:2658 */\n dup4\n /* \"#utility.yul\":2645:2662 */\n add\n /* \"#utility.yul\":2636:2642 */\n dup6\n /* \"#utility.yul\":2592:2663 */\n tag_56\n jump\t// in\n tag_125:\n /* \"#utility.yul\":2710:2719 */\n dup2\n /* \"#utility.yul\":2704:2708 */\n dup2\n /* \"#utility.yul\":2700:2720 */\n sub\n /* \"#utility.yul\":2695:2697 */\n 0x20\n /* \"#utility.yul\":2684:2693 */\n dup4\n /* \"#utility.yul\":2680:2698 */\n add\n /* \"#utility.yul\":2673:2721 */\n mstore\n /* \"#utility.yul\":2738:2816 */\n tag_126\n /* \"#utility.yul\":2811:2815 */\n dup2\n /* \"#utility.yul\":2802:2808 */\n dup5\n /* \"#utility.yul\":2738:2816 */\n tag_66\n jump\t// in\n tag_126:\n /* \"#utility.yul\":2730:2816 */\n swap1\n pop\n /* \"#utility.yul\":2400:2823 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2829:2946 */\n tag_67:\n /* \"#utility.yul\":2938:2939 */\n 0x00\n /* \"#utility.yul\":2935:2936 */\n dup1\n /* \"#utility.yul\":2928:2940 */\n revert\n /* \"#utility.yul\":2952:3069 */\n tag_68:\n /* \"#utility.yul\":3061:3062 */\n 0x00\n /* \"#utility.yul\":3058:3059 */\n dup1\n /* \"#utility.yul\":3051:3063 */\n revert\n /* \"#utility.yul\":3075:3255 */\n tag_69:\n /* \"#utility.yul\":3123:3200 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":3120:3121 */\n 0x00\n /* \"#utility.yul\":3113:3201 */\n mstore\n /* \"#utility.yul\":3220:3224 */\n 0x41\n /* \"#utility.yul\":3217:3218 */\n 0x04\n /* \"#utility.yul\":3210:3225 */\n mstore\n /* \"#utility.yul\":3244:3248 */\n 0x24\n /* \"#utility.yul\":3241:3242 */\n 0x00\n /* \"#utility.yul\":3234:3249 */\n revert\n /* \"#utility.yul\":3261:3542 */\n tag_70:\n /* \"#utility.yul\":3344:3371 */\n tag_131\n /* \"#utility.yul\":3366:3370 */\n dup3\n /* \"#utility.yul\":3344:3371 */\n tag_65\n jump\t// in\n tag_131:\n /* \"#utility.yul\":3336:3342 */\n dup2\n /* \"#utility.yul\":3332:3372 */\n add\n /* \"#utility.yul\":3474:3480 */\n dup2\n /* \"#utility.yul\":3462:3472 */\n dup2\n /* \"#utility.yul\":3459:3481 */\n lt\n /* \"#utility.yul\":3438:3456 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3426:3436 */\n dup3\n /* \"#utility.yul\":3423:3457 */\n gt\n /* \"#utility.yul\":3420:3482 */\n or\n /* \"#utility.yul\":3417:3505 */\n iszero\n tag_132\n jumpi\n /* \"#utility.yul\":3485:3503 */\n tag_133\n tag_69\n jump\t// in\n tag_133:\n /* \"#utility.yul\":3417:3505 */\n tag_132:\n /* \"#utility.yul\":3525:3535 */\n dup1\n /* \"#utility.yul\":3521:3523 */\n 0x40\n /* \"#utility.yul\":3514:3536 */\n mstore\n /* \"#utility.yul\":3304:3542 */\n pop\n /* \"#utility.yul\":3261:3542 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3548:3677 */\n tag_71:\n /* \"#utility.yul\":3582:3588 */\n 0x00\n /* \"#utility.yul\":3609:3629 */\n tag_135\n tag_57\n jump\t// in\n tag_135:\n /* \"#utility.yul\":3599:3629 */\n swap1\n pop\n /* \"#utility.yul\":3638:3671 */\n tag_136\n /* \"#utility.yul\":3666:3670 */\n dup3\n /* \"#utility.yul\":3658:3664 */\n dup3\n /* \"#utility.yul\":3638:3671 */\n tag_70\n jump\t// in\n tag_136:\n /* \"#utility.yul\":3548:3677 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3683:3991 */\n tag_72:\n /* \"#utility.yul\":3745:3749 */\n 0x00\n /* \"#utility.yul\":3835:3853 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3827:3833 */\n dup3\n /* \"#utility.yul\":3824:3854 */\n gt\n /* \"#utility.yul\":3821:3877 */\n iszero\n tag_138\n jumpi\n /* \"#utility.yul\":3857:3875 */\n tag_139\n tag_69\n jump\t// in\n tag_139:\n /* \"#utility.yul\":3821:3877 */\n tag_138:\n /* \"#utility.yul\":3895:3924 */\n tag_140\n /* \"#utility.yul\":3917:3923 */\n dup3\n /* \"#utility.yul\":3895:3924 */\n tag_65\n jump\t// in\n tag_140:\n /* \"#utility.yul\":3887:3924 */\n swap1\n pop\n /* \"#utility.yul\":3979:3983 */\n 0x20\n /* \"#utility.yul\":3973:3977 */\n dup2\n /* \"#utility.yul\":3969:3984 */\n add\n /* \"#utility.yul\":3961:3984 */\n swap1\n pop\n /* \"#utility.yul\":3683:3991 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3997:4143 */\n tag_73:\n /* \"#utility.yul\":4094:4100 */\n dup3\n /* \"#utility.yul\":4089:4092 */\n dup2\n /* \"#utility.yul\":4084:4087 */\n dup4\n /* \"#utility.yul\":4071:4101 */\n calldatacopy\n /* \"#utility.yul\":4135:4136 */\n 0x00\n /* \"#utility.yul\":4126:4132 */\n dup4\n /* \"#utility.yul\":4121:4124 */\n dup4\n /* \"#utility.yul\":4117:4133 */\n add\n /* \"#utility.yul\":4110:4137 */\n mstore\n /* \"#utility.yul\":3997:4143 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4149:4574 */\n tag_74:\n /* \"#utility.yul\":4227:4232 */\n 0x00\n /* \"#utility.yul\":4252:4318 */\n tag_143\n /* \"#utility.yul\":4268:4317 */\n tag_144\n /* \"#utility.yul\":4310:4316 */\n dup5\n /* \"#utility.yul\":4268:4317 */\n tag_72\n jump\t// in\n tag_144:\n /* \"#utility.yul\":4252:4318 */\n tag_71\n jump\t// in\n tag_143:\n /* \"#utility.yul\":4243:4318 */\n swap1\n pop\n /* \"#utility.yul\":4341:4347 */\n dup3\n /* \"#utility.yul\":4334:4339 */\n dup2\n /* \"#utility.yul\":4327:4348 */\n mstore\n /* \"#utility.yul\":4379:4383 */\n 0x20\n /* \"#utility.yul\":4372:4377 */\n dup2\n /* \"#utility.yul\":4368:4384 */\n add\n /* \"#utility.yul\":4417:4420 */\n dup5\n /* \"#utility.yul\":4408:4414 */\n dup5\n /* \"#utility.yul\":4403:4406 */\n dup5\n /* \"#utility.yul\":4399:4415 */\n add\n /* \"#utility.yul\":4396:4421 */\n gt\n /* \"#utility.yul\":4393:4505 */\n iszero\n tag_145\n jumpi\n /* \"#utility.yul\":4424:4503 */\n tag_146\n tag_68\n jump\t// in\n tag_146:\n /* \"#utility.yul\":4393:4505 */\n tag_145:\n /* \"#utility.yul\":4514:4568 */\n tag_147\n /* \"#utility.yul\":4561:4567 */\n dup5\n /* \"#utility.yul\":4556:4559 */\n dup3\n /* \"#utility.yul\":4551:4554 */\n dup6\n /* \"#utility.yul\":4514:4568 */\n tag_73\n jump\t// in\n tag_147:\n /* \"#utility.yul\":4233:4574 */\n pop\n /* \"#utility.yul\":4149:4574 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4594:4934 */\n tag_75:\n /* \"#utility.yul\":4650:4655 */\n 0x00\n /* \"#utility.yul\":4699:4702 */\n dup3\n /* \"#utility.yul\":4692:4696 */\n 0x1f\n /* \"#utility.yul\":4684:4690 */\n dup4\n /* \"#utility.yul\":4680:4697 */\n add\n /* \"#utility.yul\":4676:4703 */\n slt\n /* \"#utility.yul\":4666:4788 */\n tag_149\n jumpi\n /* \"#utility.yul\":4707:4786 */\n tag_150\n tag_67\n jump\t// in\n tag_150:\n /* \"#utility.yul\":4666:4788 */\n tag_149:\n /* \"#utility.yul\":4824:4830 */\n dup2\n /* \"#utility.yul\":4811:4831 */\n calldataload\n /* \"#utility.yul\":4849:4928 */\n tag_151\n /* \"#utility.yul\":4924:4927 */\n dup5\n /* \"#utility.yul\":4916:4922 */\n dup3\n /* \"#utility.yul\":4909:4913 */\n 0x20\n /* \"#utility.yul\":4901:4907 */\n dup7\n /* \"#utility.yul\":4897:4914 */\n add\n /* \"#utility.yul\":4849:4928 */\n tag_74\n jump\t// in\n tag_151:\n /* \"#utility.yul\":4840:4928 */\n swap2\n pop\n /* \"#utility.yul\":4656:4934 */\n pop\n /* \"#utility.yul\":4594:4934 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4940:5594 */\n tag_24:\n /* \"#utility.yul\":5018:5024 */\n 0x00\n /* \"#utility.yul\":5026:5032 */\n dup1\n /* \"#utility.yul\":5075:5077 */\n 0x40\n /* \"#utility.yul\":5063:5072 */\n dup4\n /* \"#utility.yul\":5054:5061 */\n dup6\n /* \"#utility.yul\":5050:5073 */\n sub\n /* \"#utility.yul\":5046:5078 */\n slt\n /* \"#utility.yul\":5043:5162 */\n iszero\n tag_153\n jumpi\n /* \"#utility.yul\":5081:5160 */\n tag_154\n tag_58\n jump\t// in\n tag_154:\n /* \"#utility.yul\":5043:5162 */\n tag_153:\n /* \"#utility.yul\":5229:5230 */\n 0x00\n /* \"#utility.yul\":5218:5227 */\n dup4\n /* \"#utility.yul\":5214:5231 */\n add\n /* \"#utility.yul\":5201:5232 */\n calldataload\n /* \"#utility.yul\":5259:5277 */\n 0xffffffffffffffff\n /* \"#utility.yul\":5251:5257 */\n dup2\n /* \"#utility.yul\":5248:5278 */\n gt\n /* \"#utility.yul\":5245:5362 */\n iszero\n tag_155\n jumpi\n /* \"#utility.yul\":5281:5360 */\n tag_156\n tag_59\n jump\t// in\n tag_156:\n /* \"#utility.yul\":5245:5362 */\n tag_155:\n /* \"#utility.yul\":5386:5449 */\n tag_157\n /* \"#utility.yul\":5441:5448 */\n dup6\n /* \"#utility.yul\":5432:5438 */\n dup3\n /* \"#utility.yul\":5421:5430 */\n dup7\n /* \"#utility.yul\":5417:5439 */\n add\n /* \"#utility.yul\":5386:5449 */\n tag_75\n jump\t// in\n tag_157:\n /* \"#utility.yul\":5376:5449 */\n swap3\n pop\n /* \"#utility.yul\":5172:5459 */\n pop\n /* \"#utility.yul\":5498:5500 */\n 0x20\n /* \"#utility.yul\":5524:5577 */\n tag_158\n /* \"#utility.yul\":5569:5576 */\n dup6\n /* \"#utility.yul\":5560:5566 */\n dup3\n /* \"#utility.yul\":5549:5558 */\n dup7\n /* \"#utility.yul\":5545:5567 */\n add\n /* \"#utility.yul\":5524:5577 */\n tag_61\n jump\t// in\n tag_158:\n /* \"#utility.yul\":5514:5577 */\n swap2\n pop\n /* \"#utility.yul\":5469:5587 */\n pop\n /* \"#utility.yul\":4940:5594 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":5600:6109 */\n tag_28:\n /* \"#utility.yul\":5669:5675 */\n 0x00\n /* \"#utility.yul\":5718:5720 */\n 0x20\n /* \"#utility.yul\":5706:5715 */\n dup3\n /* \"#utility.yul\":5697:5704 */\n dup5\n /* \"#utility.yul\":5693:5716 */\n sub\n /* \"#utility.yul\":5689:5721 */\n slt\n /* \"#utility.yul\":5686:5805 */\n iszero\n tag_160\n jumpi\n /* \"#utility.yul\":5724:5803 */\n tag_161\n tag_58\n jump\t// in\n tag_161:\n /* \"#utility.yul\":5686:5805 */\n tag_160:\n /* \"#utility.yul\":5872:5873 */\n 0x00\n /* \"#utility.yul\":5861:5870 */\n dup3\n /* \"#utility.yul\":5857:5874 */\n add\n /* \"#utility.yul\":5844:5875 */\n calldataload\n /* \"#utility.yul\":5902:5920 */\n 0xffffffffffffffff\n /* \"#utility.yul\":5894:5900 */\n dup2\n /* \"#utility.yul\":5891:5921 */\n gt\n /* \"#utility.yul\":5888:6005 */\n iszero\n tag_162\n jumpi\n /* \"#utility.yul\":5924:6003 */\n tag_163\n tag_59\n jump\t// in\n tag_163:\n /* \"#utility.yul\":5888:6005 */\n tag_162:\n /* \"#utility.yul\":6029:6092 */\n tag_164\n /* \"#utility.yul\":6084:6091 */\n dup5\n /* \"#utility.yul\":6075:6081 */\n dup3\n /* \"#utility.yul\":6064:6073 */\n dup6\n /* \"#utility.yul\":6060:6082 */\n add\n /* \"#utility.yul\":6029:6092 */\n tag_75\n jump\t// in\n tag_164:\n /* \"#utility.yul\":6019:6092 */\n swap2\n pop\n /* \"#utility.yul\":5815:6102 */\n pop\n /* \"#utility.yul\":5600:6109 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6115:6295 */\n tag_76:\n /* \"#utility.yul\":6163:6240 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":6160:6161 */\n 0x00\n /* \"#utility.yul\":6153:6241 */\n mstore\n /* \"#utility.yul\":6260:6264 */\n 0x22\n /* \"#utility.yul\":6257:6258 */\n 0x04\n /* \"#utility.yul\":6250:6265 */\n mstore\n /* \"#utility.yul\":6284:6288 */\n 0x24\n /* \"#utility.yul\":6281:6282 */\n 0x00\n /* \"#utility.yul\":6274:6289 */\n revert\n /* \"#utility.yul\":6301:6621 */\n tag_38:\n /* \"#utility.yul\":6345:6351 */\n 0x00\n /* \"#utility.yul\":6382:6383 */\n 0x02\n /* \"#utility.yul\":6376:6380 */\n dup3\n /* \"#utility.yul\":6372:6384 */\n div\n /* \"#utility.yul\":6362:6384 */\n swap1\n pop\n /* \"#utility.yul\":6429:6430 */\n 0x01\n /* \"#utility.yul\":6423:6427 */\n dup3\n /* \"#utility.yul\":6419:6431 */\n and\n /* \"#utility.yul\":6450:6468 */\n dup1\n /* \"#utility.yul\":6440:6521 */\n tag_167\n jumpi\n /* \"#utility.yul\":6506:6510 */\n 0x7f\n /* \"#utility.yul\":6498:6504 */\n dup3\n /* \"#utility.yul\":6494:6511 */\n and\n /* \"#utility.yul\":6484:6511 */\n swap2\n pop\n /* \"#utility.yul\":6440:6521 */\n tag_167:\n /* \"#utility.yul\":6568:6570 */\n 0x20\n /* \"#utility.yul\":6560:6566 */\n dup3\n /* \"#utility.yul\":6557:6571 */\n lt\n /* \"#utility.yul\":6537:6555 */\n dup2\n /* \"#utility.yul\":6534:6572 */\n sub\n /* \"#utility.yul\":6531:6615 */\n tag_168\n jumpi\n /* \"#utility.yul\":6587:6605 */\n tag_169\n tag_76\n jump\t// in\n tag_169:\n /* \"#utility.yul\":6531:6615 */\n tag_168:\n /* \"#utility.yul\":6352:6621 */\n pop\n /* \"#utility.yul\":6301:6621 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6627:6768 */\n tag_77:\n /* \"#utility.yul\":6676:6680 */\n 0x00\n /* \"#utility.yul\":6699:6702 */\n dup2\n /* \"#utility.yul\":6691:6702 */\n swap1\n pop\n /* \"#utility.yul\":6722:6725 */\n dup2\n /* \"#utility.yul\":6719:6720 */\n 0x00\n /* \"#utility.yul\":6712:6726 */\n mstore\n /* \"#utility.yul\":6756:6760 */\n 0x20\n /* \"#utility.yul\":6753:6754 */\n 0x00\n /* \"#utility.yul\":6743:6761 */\n keccak256\n /* \"#utility.yul\":6735:6761 */\n swap1\n pop\n /* \"#utility.yul\":6627:6768 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6774:6867 */\n tag_78:\n /* \"#utility.yul\":6811:6817 */\n 0x00\n /* \"#utility.yul\":6858:6860 */\n 0x20\n /* \"#utility.yul\":6853:6855 */\n 0x1f\n /* \"#utility.yul\":6846:6851 */\n dup4\n /* \"#utility.yul\":6842:6856 */\n add\n /* \"#utility.yul\":6838:6861 */\n div\n /* \"#utility.yul\":6828:6861 */\n swap1\n pop\n /* \"#utility.yul\":6774:6867 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6873:6980 */\n tag_79:\n /* \"#utility.yul\":6917:6925 */\n 0x00\n /* \"#utility.yul\":6967:6972 */\n dup3\n /* \"#utility.yul\":6961:6965 */\n dup3\n /* \"#utility.yul\":6957:6973 */\n shl\n /* \"#utility.yul\":6936:6973 */\n swap1\n pop\n /* \"#utility.yul\":6873:6980 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6986:7379 */\n tag_80:\n /* \"#utility.yul\":7055:7061 */\n 0x00\n /* \"#utility.yul\":7105:7106 */\n 0x08\n /* \"#utility.yul\":7093:7103 */\n dup4\n /* \"#utility.yul\":7089:7107 */\n mul\n /* \"#utility.yul\":7128:7225 */\n tag_174\n /* \"#utility.yul\":7158:7224 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":7147:7156 */\n dup3\n /* \"#utility.yul\":7128:7225 */\n tag_79\n jump\t// in\n tag_174:\n /* \"#utility.yul\":7246:7285 */\n tag_175\n /* \"#utility.yul\":7276:7284 */\n dup7\n /* \"#utility.yul\":7265:7274 */\n dup4\n /* \"#utility.yul\":7246:7285 */\n tag_79\n jump\t// in\n tag_175:\n /* \"#utility.yul\":7234:7285 */\n swap6\n pop\n /* \"#utility.yul\":7318:7322 */\n dup1\n /* \"#utility.yul\":7314:7323 */\n not\n /* \"#utility.yul\":7307:7312 */\n dup5\n /* \"#utility.yul\":7303:7324 */\n and\n /* \"#utility.yul\":7294:7324 */\n swap4\n pop\n /* \"#utility.yul\":7367:7371 */\n dup1\n /* \"#utility.yul\":7357:7365 */\n dup7\n /* \"#utility.yul\":7353:7372 */\n and\n /* \"#utility.yul\":7346:7351 */\n dup5\n /* \"#utility.yul\":7343:7373 */\n or\n /* \"#utility.yul\":7333:7373 */\n swap3\n pop\n /* \"#utility.yul\":7062:7379 */\n pop\n pop\n /* \"#utility.yul\":6986:7379 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7385:7445 */\n tag_81:\n /* \"#utility.yul\":7413:7416 */\n 0x00\n /* \"#utility.yul\":7434:7439 */\n dup2\n /* \"#utility.yul\":7427:7439 */\n swap1\n pop\n /* \"#utility.yul\":7385:7445 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7451:7593 */\n tag_82:\n /* \"#utility.yul\":7501:7510 */\n 0x00\n /* \"#utility.yul\":7534:7587 */\n tag_178\n /* \"#utility.yul\":7552:7586 */\n tag_179\n /* \"#utility.yul\":7561:7585 */\n tag_180\n /* \"#utility.yul\":7579:7584 */\n dup5\n /* \"#utility.yul\":7561:7585 */\n tag_55\n jump\t// in\n tag_180:\n /* \"#utility.yul\":7552:7586 */\n tag_81\n jump\t// in\n tag_179:\n /* \"#utility.yul\":7534:7587 */\n tag_55\n jump\t// in\n tag_178:\n /* \"#utility.yul\":7521:7587 */\n swap1\n pop\n /* \"#utility.yul\":7451:7593 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7599:7674 */\n tag_83:\n /* \"#utility.yul\":7642:7645 */\n 0x00\n /* \"#utility.yul\":7663:7668 */\n dup2\n /* \"#utility.yul\":7656:7668 */\n swap1\n pop\n /* \"#utility.yul\":7599:7674 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7680:7949 */\n tag_84:\n /* \"#utility.yul\":7790:7829 */\n tag_183\n /* \"#utility.yul\":7821:7828 */\n dup4\n /* \"#utility.yul\":7790:7829 */\n tag_82\n jump\t// in\n tag_183:\n /* \"#utility.yul\":7851:7942 */\n tag_184\n /* \"#utility.yul\":7900:7941 */\n tag_185\n /* \"#utility.yul\":7924:7940 */\n dup3\n /* \"#utility.yul\":7900:7941 */\n tag_83\n jump\t// in\n tag_185:\n /* \"#utility.yul\":7892:7898 */\n dup5\n /* \"#utility.yul\":7885:7889 */\n dup5\n /* \"#utility.yul\":7879:7890 */\n sload\n /* \"#utility.yul\":7851:7942 */\n tag_80\n jump\t// in\n tag_184:\n /* \"#utility.yul\":7845:7849 */\n dup3\n /* \"#utility.yul\":7838:7943 */\n sstore\n /* \"#utility.yul\":7756:7949 */\n pop\n /* \"#utility.yul\":7680:7949 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7955:8028 */\n tag_85:\n /* \"#utility.yul\":8000:8003 */\n 0x00\n /* \"#utility.yul\":7955:8028 */\n swap1\n jump\t// out\n /* \"#utility.yul\":8034:8223 */\n tag_86:\n /* \"#utility.yul\":8111:8143 */\n tag_188\n tag_85\n jump\t// in\n tag_188:\n /* \"#utility.yul\":8152:8217 */\n tag_189\n /* \"#utility.yul\":8210:8216 */\n dup2\n /* \"#utility.yul\":8202:8208 */\n dup5\n /* \"#utility.yul\":8196:8200 */\n dup5\n /* \"#utility.yul\":8152:8217 */\n tag_84\n jump\t// in\n tag_189:\n /* \"#utility.yul\":8087:8223 */\n pop\n /* \"#utility.yul\":8034:8223 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8229:8415 */\n tag_87:\n /* \"#utility.yul\":8289:8409 */\n tag_191:\n /* \"#utility.yul\":8306:8309 */\n dup2\n /* \"#utility.yul\":8299:8304 */\n dup2\n /* \"#utility.yul\":8296:8310 */\n lt\n /* \"#utility.yul\":8289:8409 */\n iszero\n tag_193\n jumpi\n /* \"#utility.yul\":8360:8399 */\n tag_194\n /* \"#utility.yul\":8397:8398 */\n 0x00\n /* \"#utility.yul\":8390:8395 */\n dup3\n /* \"#utility.yul\":8360:8399 */\n tag_86\n jump\t// in\n tag_194:\n /* \"#utility.yul\":8333:8334 */\n 0x01\n /* \"#utility.yul\":8326:8331 */\n dup2\n /* \"#utility.yul\":8322:8335 */\n add\n /* \"#utility.yul\":8313:8335 */\n swap1\n pop\n /* \"#utility.yul\":8289:8409 */\n jump(tag_191)\n tag_193:\n /* \"#utility.yul\":8229:8415 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8421:8964 */\n tag_88:\n /* \"#utility.yul\":8522:8524 */\n 0x1f\n /* \"#utility.yul\":8517:8520 */\n dup3\n /* \"#utility.yul\":8514:8525 */\n gt\n /* \"#utility.yul\":8511:8957 */\n iszero\n tag_196\n jumpi\n /* \"#utility.yul\":8556:8594 */\n tag_197\n /* \"#utility.yul\":8588:8593 */\n dup2\n /* \"#utility.yul\":8556:8594 */\n tag_77\n jump\t// in\n tag_197:\n /* \"#utility.yul\":8640:8669 */\n tag_198\n /* \"#utility.yul\":8658:8668 */\n dup5\n /* \"#utility.yul\":8640:8669 */\n tag_78\n jump\t// in\n tag_198:\n /* \"#utility.yul\":8630:8638 */\n dup2\n /* \"#utility.yul\":8626:8670 */\n add\n /* \"#utility.yul\":8823:8825 */\n 0x20\n /* \"#utility.yul\":8811:8821 */\n dup6\n /* \"#utility.yul\":8808:8826 */\n lt\n /* \"#utility.yul\":8805:8854 */\n iszero\n tag_199\n jumpi\n /* \"#utility.yul\":8844:8852 */\n dup2\n /* \"#utility.yul\":8829:8852 */\n swap1\n pop\n /* \"#utility.yul\":8805:8854 */\n tag_199:\n /* \"#utility.yul\":8867:8947 */\n tag_200\n /* \"#utility.yul\":8923:8945 */\n tag_201\n /* \"#utility.yul\":8941:8944 */\n dup6\n /* \"#utility.yul\":8923:8945 */\n tag_78\n jump\t// in\n tag_201:\n /* \"#utility.yul\":8913:8921 */\n dup4\n /* \"#utility.yul\":8909:8946 */\n add\n /* \"#utility.yul\":8896:8907 */\n dup3\n /* \"#utility.yul\":8867:8947 */\n tag_87\n jump\t// in\n tag_200:\n /* \"#utility.yul\":8526:8957 */\n pop\n pop\n /* \"#utility.yul\":8511:8957 */\n tag_196:\n /* \"#utility.yul\":8421:8964 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8970:9087 */\n tag_89:\n /* \"#utility.yul\":9024:9032 */\n 0x00\n /* \"#utility.yul\":9074:9079 */\n dup3\n /* \"#utility.yul\":9068:9072 */\n dup3\n /* \"#utility.yul\":9064:9080 */\n shr\n /* \"#utility.yul\":9043:9080 */\n swap1\n pop\n /* \"#utility.yul\":8970:9087 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9093:9262 */\n tag_90:\n /* \"#utility.yul\":9137:9143 */\n 0x00\n /* \"#utility.yul\":9170:9221 */\n tag_204\n /* \"#utility.yul\":9218:9219 */\n 0x00\n /* \"#utility.yul\":9214:9220 */\n not\n /* \"#utility.yul\":9206:9211 */\n dup5\n /* \"#utility.yul\":9203:9204 */\n 0x08\n /* \"#utility.yul\":9199:9212 */\n mul\n /* \"#utility.yul\":9170:9221 */\n tag_89\n jump\t// in\n tag_204:\n /* \"#utility.yul\":9166:9222 */\n not\n /* \"#utility.yul\":9251:9255 */\n dup1\n /* \"#utility.yul\":9245:9249 */\n dup4\n /* \"#utility.yul\":9241:9256 */\n and\n /* \"#utility.yul\":9231:9256 */\n swap2\n pop\n /* \"#utility.yul\":9144:9262 */\n pop\n /* \"#utility.yul\":9093:9262 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9267:9562 */\n tag_91:\n /* \"#utility.yul\":9343:9347 */\n 0x00\n /* \"#utility.yul\":9489:9518 */\n tag_206\n /* \"#utility.yul\":9514:9517 */\n dup4\n /* \"#utility.yul\":9508:9512 */\n dup4\n /* \"#utility.yul\":9489:9518 */\n tag_90\n jump\t// in\n tag_206:\n /* \"#utility.yul\":9481:9518 */\n swap2\n pop\n /* \"#utility.yul\":9551:9554 */\n dup3\n /* \"#utility.yul\":9548:9549 */\n 0x02\n /* \"#utility.yul\":9544:9555 */\n mul\n /* \"#utility.yul\":9538:9542 */\n dup3\n /* \"#utility.yul\":9535:9556 */\n or\n /* \"#utility.yul\":9527:9556 */\n swap1\n pop\n /* \"#utility.yul\":9267:9562 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9567:10962 */\n tag_47:\n /* \"#utility.yul\":9684:9721 */\n tag_208\n /* \"#utility.yul\":9717:9720 */\n dup3\n /* \"#utility.yul\":9684:9721 */\n tag_62\n jump\t// in\n tag_208:\n /* \"#utility.yul\":9786:9804 */\n 0xffffffffffffffff\n /* \"#utility.yul\":9778:9784 */\n dup2\n /* \"#utility.yul\":9775:9805 */\n gt\n /* \"#utility.yul\":9772:9828 */\n iszero\n tag_209\n jumpi\n /* \"#utility.yul\":9808:9826 */\n tag_210\n tag_69\n jump\t// in\n tag_210:\n /* \"#utility.yul\":9772:9828 */\n tag_209:\n /* \"#utility.yul\":9852:9890 */\n tag_211\n /* \"#utility.yul\":9884:9888 */\n dup3\n /* \"#utility.yul\":9878:9889 */\n sload\n /* \"#utility.yul\":9852:9890 */\n tag_38\n jump\t// in\n tag_211:\n /* \"#utility.yul\":9937:10004 */\n tag_212\n /* \"#utility.yul\":9997:10003 */\n dup3\n /* \"#utility.yul\":9989:9995 */\n dup3\n /* \"#utility.yul\":9983:9987 */\n dup6\n /* \"#utility.yul\":9937:10004 */\n tag_88\n jump\t// in\n tag_212:\n /* \"#utility.yul\":10031:10032 */\n 0x00\n /* \"#utility.yul\":10055:10059 */\n 0x20\n /* \"#utility.yul\":10042:10059 */\n swap1\n pop\n /* \"#utility.yul\":10087:10089 */\n 0x1f\n /* \"#utility.yul\":10079:10085 */\n dup4\n /* \"#utility.yul\":10076:10090 */\n gt\n /* \"#utility.yul\":10104:10105 */\n 0x01\n /* \"#utility.yul\":10099:10717 */\n dup2\n eq\n tag_214\n jumpi\n /* \"#utility.yul\":10761:10762 */\n 0x00\n /* \"#utility.yul\":10778:10784 */\n dup5\n /* \"#utility.yul\":10775:10852 */\n iszero\n tag_215\n jumpi\n /* \"#utility.yul\":10827:10836 */\n dup3\n /* \"#utility.yul\":10822:10825 */\n dup8\n /* \"#utility.yul\":10818:10837 */\n add\n /* \"#utility.yul\":10812:10838 */\n mload\n /* \"#utility.yul\":10803:10838 */\n swap1\n pop\n /* \"#utility.yul\":10775:10852 */\n tag_215:\n /* \"#utility.yul\":10878:10945 */\n tag_216\n /* \"#utility.yul\":10938:10944 */\n dup6\n /* \"#utility.yul\":10931:10936 */\n dup3\n /* \"#utility.yul\":10878:10945 */\n tag_91\n jump\t// in\n tag_216:\n /* \"#utility.yul\":10872:10876 */\n dup7\n /* \"#utility.yul\":10865:10946 */\n sstore\n /* \"#utility.yul\":10734:10956 */\n pop\n /* \"#utility.yul\":10069:10956 */\n jump(tag_213)\n /* \"#utility.yul\":10099:10717 */\n tag_214:\n /* \"#utility.yul\":10151:10155 */\n 0x1f\n /* \"#utility.yul\":10147:10156 */\n not\n /* \"#utility.yul\":10139:10145 */\n dup5\n /* \"#utility.yul\":10135:10157 */\n and\n /* \"#utility.yul\":10185:10222 */\n tag_217\n /* \"#utility.yul\":10217:10221 */\n dup7\n /* \"#utility.yul\":10185:10222 */\n tag_77\n jump\t// in\n tag_217:\n /* \"#utility.yul\":10244:10245 */\n 0x00\n /* \"#utility.yul\":10258:10466 */\n tag_218:\n /* \"#utility.yul\":10272:10279 */\n dup3\n /* \"#utility.yul\":10269:10270 */\n dup2\n /* \"#utility.yul\":10266:10280 */\n lt\n /* \"#utility.yul\":10258:10466 */\n iszero\n tag_220\n jumpi\n /* \"#utility.yul\":10351:10360 */\n dup5\n /* \"#utility.yul\":10346:10349 */\n dup10\n /* \"#utility.yul\":10342:10361 */\n add\n /* \"#utility.yul\":10336:10362 */\n mload\n /* \"#utility.yul\":10328:10334 */\n dup3\n /* \"#utility.yul\":10321:10363 */\n sstore\n /* \"#utility.yul\":10402:10403 */\n 0x01\n /* \"#utility.yul\":10394:10400 */\n dup3\n /* \"#utility.yul\":10390:10404 */\n add\n /* \"#utility.yul\":10380:10404 */\n swap2\n pop\n /* \"#utility.yul\":10449:10451 */\n 0x20\n /* \"#utility.yul\":10438:10447 */\n dup6\n /* \"#utility.yul\":10434:10452 */\n add\n /* \"#utility.yul\":10421:10452 */\n swap5\n pop\n /* \"#utility.yul\":10295:10299 */\n 0x20\n /* \"#utility.yul\":10292:10293 */\n dup2\n /* \"#utility.yul\":10288:10300 */\n add\n /* \"#utility.yul\":10283:10300 */\n swap1\n pop\n /* \"#utility.yul\":10258:10466 */\n jump(tag_218)\n tag_220:\n /* \"#utility.yul\":10494:10500 */\n dup7\n /* \"#utility.yul\":10485:10492 */\n dup4\n /* \"#utility.yul\":10482:10501 */\n lt\n /* \"#utility.yul\":10479:10658 */\n iszero\n tag_221\n jumpi\n /* \"#utility.yul\":10552:10561 */\n dup5\n /* \"#utility.yul\":10547:10550 */\n dup10\n /* \"#utility.yul\":10543:10562 */\n add\n /* \"#utility.yul\":10537:10563 */\n mload\n /* \"#utility.yul\":10595:10643 */\n tag_222\n /* \"#utility.yul\":10637:10641 */\n 0x1f\n /* \"#utility.yul\":10629:10635 */\n dup10\n /* \"#utility.yul\":10625:10642 */\n and\n /* \"#utility.yul\":10614:10623 */\n dup3\n /* \"#utility.yul\":10595:10643 */\n tag_90\n jump\t// in\n tag_222:\n /* \"#utility.yul\":10587:10593 */\n dup4\n /* \"#utility.yul\":10580:10644 */\n sstore\n /* \"#utility.yul\":10502:10658 */\n pop\n /* \"#utility.yul\":10479:10658 */\n tag_221:\n /* \"#utility.yul\":10704:10705 */\n 0x01\n /* \"#utility.yul\":10700:10701 */\n 0x02\n /* \"#utility.yul\":10692:10698 */\n dup9\n /* \"#utility.yul\":10688:10702 */\n mul\n /* \"#utility.yul\":10684:10706 */\n add\n /* \"#utility.yul\":10678:10682 */\n dup9\n /* \"#utility.yul\":10671:10707 */\n sstore\n /* \"#utility.yul\":10106:10717 */\n pop\n pop\n pop\n /* \"#utility.yul\":10069:10956 */\n tag_213:\n pop\n /* \"#utility.yul\":9659:10962 */\n pop\n pop\n pop\n /* \"#utility.yul\":9567:10962 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10968:11116 */\n tag_92:\n /* \"#utility.yul\":11070:11081 */\n 0x00\n /* \"#utility.yul\":11107:11110 */\n dup2\n /* \"#utility.yul\":11092:11110 */\n swap1\n pop\n /* \"#utility.yul\":10968:11116 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11122:11512 */\n tag_93:\n /* \"#utility.yul\":11228:11231 */\n 0x00\n /* \"#utility.yul\":11256:11295 */\n tag_225\n /* \"#utility.yul\":11289:11294 */\n dup3\n /* \"#utility.yul\":11256:11295 */\n tag_62\n jump\t// in\n tag_225:\n /* \"#utility.yul\":11311:11400 */\n tag_226\n /* \"#utility.yul\":11393:11399 */\n dup2\n /* \"#utility.yul\":11388:11391 */\n dup6\n /* \"#utility.yul\":11311:11400 */\n tag_92\n jump\t// in\n tag_226:\n /* \"#utility.yul\":11304:11400 */\n swap4\n pop\n /* \"#utility.yul\":11409:11474 */\n tag_227\n /* \"#utility.yul\":11467:11473 */\n dup2\n /* \"#utility.yul\":11462:11465 */\n dup6\n /* \"#utility.yul\":11455:11459 */\n 0x20\n /* \"#utility.yul\":11448:11453 */\n dup7\n /* \"#utility.yul\":11444:11460 */\n add\n /* \"#utility.yul\":11409:11474 */\n tag_64\n jump\t// in\n tag_227:\n /* \"#utility.yul\":11499:11505 */\n dup1\n /* \"#utility.yul\":11494:11497 */\n dup5\n /* \"#utility.yul\":11490:11506 */\n add\n /* \"#utility.yul\":11483:11506 */\n swap2\n pop\n /* \"#utility.yul\":11232:11512 */\n pop\n /* \"#utility.yul\":11122:11512 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11518:11793 */\n tag_49:\n /* \"#utility.yul\":11650:11653 */\n 0x00\n /* \"#utility.yul\":11672:11767 */\n tag_229\n /* \"#utility.yul\":11763:11766
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment