{
	"id": "a9e3025bfe654037a4ddeea1a6649f66",
	"_format": "hh-sol-build-info-1",
	"solcVersion": "0.8.18",
	"solcLongVersion": "0.8.18+commit.87f61d96",
	"input": {
		"language": "Solidity",
		"sources": {
			"contracts/ethernaut/delegation.sol": {
				"content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ncontract Delegate {\n\n  address public owner;\n\n  constructor(address _owner) {\n    owner = _owner;\n  }\n\n  function pwn() public {\n    owner = msg.sender;\n  }\n}\n\ncontract Delegation {\n\n  address public owner;\n  Delegate delegate;\n\n  constructor(address _delegateAddress) {\n    delegate = Delegate(_delegateAddress);\n    owner = msg.sender;\n  }\n\n  fallback() external {\n    (bool result,) = address(delegate).delegatecall(msg.data);\n    if (result) {\n      this;\n    }\n  }\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": {
			"contracts/ethernaut/delegation.sol": {
				"Delegate": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "_owner",
									"type": "address"
								}
							],
							"stateMutability": "nonpayable",
							"type": "constructor"
						},
						{
							"inputs": [],
							"name": "owner",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "pwn",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"contracts/ethernaut/delegation.sol\":57:215  contract Delegate {... */\n  mstore(0x40, 0x80)\n    /* \"contracts/ethernaut/delegation.sol\":105:158  constructor(address _owner) {... */\n  callvalue\n  dup1\n  iszero\n  tag_1\n  jumpi\n  0x00\n  dup1\n  revert\ntag_1:\n  pop\n  mload(0x40)\n  sub(codesize, bytecodeSize)\n  dup1\n  bytecodeSize\n  dup4\n  codecopy\n  dup2\n  dup2\n  add\n  0x40\n  mstore\n  dup2\n  add\n  swap1\n  tag_2\n  swap2\n  swap1\n  tag_3\n  jump\t// in\ntag_2:\n    /* \"contracts/ethernaut/delegation.sol\":147:153  _owner */\n  dup1\n    /* \"contracts/ethernaut/delegation.sol\":139:144  owner */\n  0x00\n  dup1\n    /* \"contracts/ethernaut/delegation.sol\":139:153  owner = _owner */\n  0x0100\n  exp\n  dup2\n  sload\n  dup2\n  0xffffffffffffffffffffffffffffffffffffffff\n  mul\n  not\n  and\n  swap1\n  dup4\n  0xffffffffffffffffffffffffffffffffffffffff\n  and\n  mul\n  or\n  swap1\n  sstore\n  pop\n    /* \"contracts/ethernaut/delegation.sol\":105:158  constructor(address _owner) {... */\n  pop\n    /* \"contracts/ethernaut/delegation.sol\":57:215  contract Delegate {... */\n  jump(tag_6)\n    /* \"#utility.yul\":88:205   */\ntag_8:\n    /* \"#utility.yul\":197:198   */\n  0x00\n    /* \"#utility.yul\":194:195   */\n  dup1\n    /* \"#utility.yul\":187:199   */\n  revert\n    /* \"#utility.yul\":334:460   */\ntag_10:\n    /* \"#utility.yul\":371:378   */\n  0x00\n    /* \"#utility.yul\":411:453   */\n  0xffffffffffffffffffffffffffffffffffffffff\n    /* \"#utility.yul\":404:409   */\n  dup3\n    /* \"#utility.yul\":400:454   */\n  and\n    /* \"#utility.yul\":389:454   */\n  swap1\n  pop\n    /* \"#utility.yul\":334:460   */\n  swap2\n  swap1\n  pop\n  jump\t// out\n    /* \"#utility.yul\":466:562   */\ntag_11:\n    /* \"#utility.yul\":503:510   */\n  0x00\n    /* \"#utility.yul\":532:556   */\n  tag_20\n    /* \"#utility.yul\":550:555   */\n  dup3\n    /* \"#utility.yul\":532:556   */\n  tag_10\n  jump\t// in\ntag_20:\n    /* \"#utility.yul\":521:556   */\n  swap1\n  pop\n    /* \"#utility.yul\":466:562   */\n  swap2\n  swap1\n  pop\n  jump\t// out\n    /* \"#utility.yul\":568:690   */\ntag_12:\n    /* \"#utility.yul\":641:665   */\n  tag_22\n    /* \"#utility.yul\":659:664   */\n  dup2\n    /* \"#utility.yul\":641:665   */\n  tag_11\n  jump\t// in\ntag_22:\n    /* \"#utility.yul\":634:639   */\n  dup2\n    /* \"#utility.yul\":631:666   */\n  eq\n    /* \"#utility.yul\":621:684   */\n  tag_23\n  jumpi\n    /* \"#utility.yul\":680:681   */\n  0x00\n    /* \"#utility.yul\":677:678   */\n  dup1\n    /* \"#utility.yul\":670:682   */\n  revert\n    /* \"#utility.yul\":621:684   */\ntag_23:\n    /* \"#utility.yul\":568:690   */\n  pop\n  jump\t// out\n    /* \"#utility.yul\":696:839   */\ntag_13:\n    /* \"#utility.yul\":753:758   */\n  0x00\n    /* \"#utility.yul\":784:790   */\n  dup2\n    /* \"#utility.yul\":778:791   */\n  mload\n    /* \"#utility.yul\":769:791   */\n  swap1\n  pop\n    /* \"#utility.yul\":800:833   */\n  tag_25\n    /* \"#utility.yul\":827:832   */\n  dup2\n    /* \"#utility.yul\":800:833   */\n  tag_12\n  jump\t// in\ntag_25:\n    /* \"#utility.yul\":696:839   */\n  swap3\n  swap2\n  pop\n  pop\n  jump\t// out\n    /* \"#utility.yul\":845:1196   */\ntag_3:\n    /* \"#utility.yul\":915:921   */\n  0x00\n    /* \"#utility.yul\":964:966   */\n  0x20\n    /* \"#utility.yul\":952:961   */\n  dup3\n    /* \"#utility.yul\":943:950   */\n  dup5\n    /* \"#utility.yul\":939:962   */\n  sub\n    /* \"#utility.yul\":935:967   */\n  slt\n    /* \"#utility.yul\":932:1051   */\n  iszero\n  tag_27\n  jumpi\n    /* \"#utility.yul\":970:1049   */\n  tag_28\n  tag_8\n  jump\t// in\ntag_28:\n    /* \"#utility.yul\":932:1051   */\ntag_27:\n    /* \"#utility.yul\":1090:1091   */\n  0x00\n    /* \"#utility.yul\":1115:1179   */\n  tag_29\n    /* \"#utility.yul\":1171:1178   */\n  dup5\n    /* \"#utility.yul\":1162:1168   */\n  dup3\n    /* \"#utility.yul\":1151:1160   */\n  dup6\n    /* \"#utility.yul\":1147:1169   */\n  add\n    /* \"#utility.yul\":1115:1179   */\n  tag_13\n  jump\t// in\ntag_29:\n    /* \"#utility.yul\":1105:1179   */\n  swap2\n  pop\n    /* \"#utility.yul\":1061:1189   */\n  pop\n    /* \"#utility.yul\":845:1196   */\n  swap3\n  swap2\n  pop\n  pop\n  jump\t// out\n    /* \"contracts/ethernaut/delegation.sol\":57:215  contract Delegate {... */\ntag_6:\n  dataSize(sub_0)\n  dup1\n  dataOffset(sub_0)\n  0x00\n  codecopy\n  0x00\n  return\nstop\n\nsub_0: assembly {\n        /* \"contracts/ethernaut/delegation.sol\":57:215  contract Delegate {... */\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      0x8da5cb5b\n      eq\n      tag_3\n      jumpi\n      dup1\n      0xdd365b8b\n      eq\n      tag_4\n      jumpi\n    tag_2:\n      0x00\n      dup1\n      revert\n        /* \"contracts/ethernaut/delegation.sol\":80:100  address public owner */\n    tag_3:\n      tag_5\n      tag_6\n      jump\t// in\n    tag_5:\n      mload(0x40)\n      tag_7\n      swap2\n      swap1\n      tag_8\n      jump\t// in\n    tag_7:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      return\n        /* \"contracts/ethernaut/delegation.sol\":162:213  function pwn() public {... */\n    tag_4:\n      tag_9\n      tag_10\n      jump\t// in\n    tag_9:\n      stop\n        /* \"contracts/ethernaut/delegation.sol\":80:100  address public owner */\n    tag_6:\n      0x00\n      dup1\n      sload\n      swap1\n      0x0100\n      exp\n      swap1\n      div\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      dup2\n      jump\t// out\n        /* \"contracts/ethernaut/delegation.sol\":162:213  function pwn() public {... */\n    tag_10:\n        /* \"contracts/ethernaut/delegation.sol\":198:208  msg.sender */\n      caller\n        /* \"contracts/ethernaut/delegation.sol\":190:195  owner */\n      0x00\n      dup1\n        /* \"contracts/ethernaut/delegation.sol\":190:208  owner = msg.sender */\n      0x0100\n      exp\n      dup2\n      sload\n      dup2\n      0xffffffffffffffffffffffffffffffffffffffff\n      mul\n      not\n      and\n      swap1\n      dup4\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      mul\n      or\n      swap1\n      sstore\n      pop\n        /* \"contracts/ethernaut/delegation.sol\":162:213  function pwn() public {... */\n      jump\t// out\n        /* \"#utility.yul\":7:133   */\n    tag_12:\n        /* \"#utility.yul\":44:51   */\n      0x00\n        /* \"#utility.yul\":84:126   */\n      0xffffffffffffffffffffffffffffffffffffffff\n        /* \"#utility.yul\":77:82   */\n      dup3\n        /* \"#utility.yul\":73:127   */\n      and\n        /* \"#utility.yul\":62:127   */\n      swap1\n      pop\n        /* \"#utility.yul\":7:133   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":139:235   */\n    tag_13:\n        /* \"#utility.yul\":176:183   */\n      0x00\n        /* \"#utility.yul\":205:229   */\n      tag_18\n        /* \"#utility.yul\":223:228   */\n      dup3\n        /* \"#utility.yul\":205:229   */\n      tag_12\n      jump\t// in\n    tag_18:\n        /* \"#utility.yul\":194:229   */\n      swap1\n      pop\n        /* \"#utility.yul\":139:235   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":241:359   */\n    tag_14:\n        /* \"#utility.yul\":328:352   */\n      tag_20\n        /* \"#utility.yul\":346:351   */\n      dup2\n        /* \"#utility.yul\":328:352   */\n      tag_13\n      jump\t// in\n    tag_20:\n        /* \"#utility.yul\":323:326   */\n      dup3\n        /* \"#utility.yul\":316:353   */\n      mstore\n        /* \"#utility.yul\":241:359   */\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":365:587   */\n    tag_8:\n        /* \"#utility.yul\":458:462   */\n      0x00\n        /* \"#utility.yul\":496:498   */\n      0x20\n        /* \"#utility.yul\":485:494   */\n      dup3\n        /* \"#utility.yul\":481:499   */\n      add\n        /* \"#utility.yul\":473:499   */\n      swap1\n      pop\n        /* \"#utility.yul\":509:580   */\n      tag_22\n        /* \"#utility.yul\":577:578   */\n      0x00\n        /* \"#utility.yul\":566:575   */\n      dup4\n        /* \"#utility.yul\":562:579   */\n      add\n        /* \"#utility.yul\":553:559   */\n      dup5\n        /* \"#utility.yul\":509:580   */\n      tag_14\n      jump\t// in\n    tag_22:\n        /* \"#utility.yul\":365:587   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n\n    auxdata: 0xa2646970667358221220ca51c26d528bdbd008b20b00226372830d75d8797bb26c4910c67f89d59cc84964736f6c63430008120033\n}\n",
						"bytecode": {
							"functionDebugData": {
								"@_13": {
									"entryPoint": null,
									"id": 13,
									"parameterSlots": 1,
									"returnSlots": 0
								},
								"abi_decode_t_address_fromMemory": {
									"entryPoint": 198,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"abi_decode_tuple_t_address_fromMemory": {
									"entryPoint": 219,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"allocate_unbounded": {
									"entryPoint": null,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 1
								},
								"cleanup_t_address": {
									"entryPoint": 157,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"cleanup_t_uint160": {
									"entryPoint": 125,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
									"entryPoint": null,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 0
								},
								"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
									"entryPoint": 120,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 0
								},
								"validator_revert_t_address": {
									"entryPoint": 175,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 0
								}
							},
							"generatedSources": [
								{
									"ast": {
										"nodeType": "YulBlock",
										"src": "0:1199:1",
										"statements": [
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "47:35:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "57:19:1",
															"value": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "73:2:1",
																		"type": "",
																		"value": "64"
																	}
																],
																"functionName": {
																	"name": "mload",
																	"nodeType": "YulIdentifier",
																	"src": "67:5:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "67:9:1"
															},
															"variableNames": [
																{
																	"name": "memPtr",
																	"nodeType": "YulIdentifier",
																	"src": "57:6:1"
																}
															]
														}
													]
												},
												"name": "allocate_unbounded",
												"nodeType": "YulFunctionDefinition",
												"returnVariables": [
													{
														"name": "memPtr",
														"nodeType": "YulTypedName",
														"src": "40:6:1",
														"type": ""
													}
												],
												"src": "7:75:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "177:28:1",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "194:1:1",
																		"type": "",
																		"value": "0"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "197:1:1",
																		"type": "",
																		"value": "0"
																	}
																],
																"functionName": {
																	"name": "revert",
																	"nodeType": "YulIdentifier",
																	"src": "187:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "187:12:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "187:12:1"
														}
													]
												},
												"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
												"nodeType": "YulFunctionDefinition",
												"src": "88:117:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "300:28:1",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "317:1:1",
																		"type": "",
																		"value": "0"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "320:1:1",
																		"type": "",
																		"value": "0"
																	}
																],
																"functionName": {
																	"name": "revert",
																	"nodeType": "YulIdentifier",
																	"src": "310:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "310:12:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "310:12:1"
														}
													]
												},
												"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
												"nodeType": "YulFunctionDefinition",
												"src": "211:117:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "379:81:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "389:65:1",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "404:5:1"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "411:42:1",
																		"type": "",
																		"value": "0xffffffffffffffffffffffffffffffffffffffff"
																	}
																],
																"functionName": {
																	"name": "and",
																	"nodeType": "YulIdentifier",
																	"src": "400:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "400:54:1"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "389:7:1"
																}
															]
														}
													]
												},
												"name": "cleanup_t_uint160",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "361:5:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "371:7:1",
														"type": ""
													}
												],
												"src": "334:126:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "511:51:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "521:35:1",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "550:5:1"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint160",
																	"nodeType": "YulIdentifier",
																	"src": "532:17:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "532:24:1"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "521:7:1"
																}
															]
														}
													]
												},
												"name": "cleanup_t_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "493:5:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "503:7:1",
														"type": ""
													}
												],
												"src": "466:96:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "611:79:1",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "668:16:1",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "677:1:1",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "680:1:1",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "670:6:1"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "670:12:1"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "670:12:1"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "634:5:1"
																			},
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "659:5:1"
																					}
																				],
																				"functionName": {
																					"name": "cleanup_t_address",
																					"nodeType": "YulIdentifier",
																					"src": "641:17:1"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "641:24:1"
																			}
																		],
																		"functionName": {
																			"name": "eq",
																			"nodeType": "YulIdentifier",
																			"src": "631:2:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "631:35:1"
																	}
																],
																"functionName": {
																	"name": "iszero",
																	"nodeType": "YulIdentifier",
																	"src": "624:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "624:43:1"
															},
															"nodeType": "YulIf",
															"src": "621:63:1"
														}
													]
												},
												"name": "validator_revert_t_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "604:5:1",
														"type": ""
													}
												],
												"src": "568:122:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "759:80:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "769:22:1",
															"value": {
																"arguments": [
																	{
																		"name": "offset",
																		"nodeType": "YulIdentifier",
																		"src": "784:6:1"
																	}
																],
																"functionName": {
																	"name": "mload",
																	"nodeType": "YulIdentifier",
																	"src": "778:5:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "778:13:1"
															},
															"variableNames": [
																{
																	"name": "value",
																	"nodeType": "YulIdentifier",
																	"src": "769:5:1"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "827:5:1"
																	}
																],
																"functionName": {
																	"name": "validator_revert_t_address",
																	"nodeType": "YulIdentifier",
																	"src": "800:26:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "800:33:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "800:33:1"
														}
													]
												},
												"name": "abi_decode_t_address_fromMemory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "offset",
														"nodeType": "YulTypedName",
														"src": "737:6:1",
														"type": ""
													},
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "745:3:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "753:5:1",
														"type": ""
													}
												],
												"src": "696:143:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "922:274:1",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "968:83:1",
																"statements": [
																	{
																		"expression": {
																			"arguments": [],
																			"functionName": {
																				"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
																				"nodeType": "YulIdentifier",
																				"src": "970:77:1"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "970:79:1"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "970:79:1"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "943:7:1"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "952:9:1"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "939:3:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "939:23:1"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "964:2:1",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "935:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "935:32:1"
															},
															"nodeType": "YulIf",
															"src": "932:119:1"
														},
														{
															"nodeType": "YulBlock",
															"src": "1061:128:1",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "1076:15:1",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1090:1:1",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "1080:6:1",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "1105:74:1",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "1151:9:1"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "1162:6:1"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "1147:3:1"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "1147:22:1"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "1171:7:1"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_address_fromMemory",
																			"nodeType": "YulIdentifier",
																			"src": "1115:31:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "1115:64:1"
																	},
																	"variableNames": [
																		{
																			"name": "value0",
																			"nodeType": "YulIdentifier",
																			"src": "1105:6:1"
																		}
																	]
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_address_fromMemory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "892:9:1",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "903:7:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "915:6:1",
														"type": ""
													}
												],
												"src": "845:351:1"
											}
										]
									},
									"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_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_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_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n}\n",
									"id": 1,
									"language": "Yul",
									"name": "#utility.yul"
								}
							],
							"linkReferences": {},
							"object": "608060405234801561001057600080fd5b50604051610272380380610272833981810160405281019061003291906100db565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610108565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100a88261007d565b9050919050565b6100b88161009d565b81146100c357600080fd5b50565b6000815190506100d5816100af565b92915050565b6000602082840312156100f1576100f0610078565b5b60006100ff848285016100c6565b91505092915050565b61015b806101176000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80638da5cb5b1461003b578063dd365b8b14610059575b600080fd5b610043610063565b604051610050919061010a565b60405180910390f35b610061610087565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100f4826100c9565b9050919050565b610104816100e9565b82525050565b600060208201905061011f60008301846100fb565b9291505056fea2646970667358221220ca51c26d528bdbd008b20b00226372830d75d8797bb26c4910c67f89d59cc84964736f6c63430008120033",
							"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x272 CODESIZE SUB DUP1 PUSH2 0x272 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xDB JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x108 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA8 DUP3 PUSH2 0x7D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB8 DUP2 PUSH2 0x9D JUMP JUMPDEST DUP2 EQ PUSH2 0xC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xD5 DUP2 PUSH2 0xAF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF1 JUMPI PUSH2 0xF0 PUSH2 0x78 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFF DUP5 DUP3 DUP6 ADD PUSH2 0xC6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x15B DUP1 PUSH2 0x117 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 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xDD365B8B EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x87 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF4 DUP3 PUSH2 0xC9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x104 DUP2 PUSH2 0xE9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA MLOAD 0xC2 PUSH14 0x528BDBD008B20B00226372830D75 0xD8 PUSH26 0x7BB26C4910C67F89D59CC84964736F6C63430008120033000000 ",
							"sourceMap": "57:158:0:-:0;;;105:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;147:6;139:5;;:14;;;;;;;;;;;;;;;;;;105:53;57:158;;88:117:1;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;57:158:0:-;;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {
								"@owner_3": {
									"entryPoint": 99,
									"id": 3,
									"parameterSlots": 0,
									"returnSlots": 0
								},
								"@pwn_22": {
									"entryPoint": 135,
									"id": 22,
									"parameterSlots": 0,
									"returnSlots": 0
								},
								"abi_encode_t_address_to_t_address_fromStack": {
									"entryPoint": 251,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 0
								},
								"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
									"entryPoint": 266,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"cleanup_t_address": {
									"entryPoint": 233,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"cleanup_t_uint160": {
									"entryPoint": 201,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								}
							},
							"generatedSources": [
								{
									"ast": {
										"nodeType": "YulBlock",
										"src": "0:590:1",
										"statements": [
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "52:81:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "62:65:1",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "77:5:1"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "84:42:1",
																		"type": "",
																		"value": "0xffffffffffffffffffffffffffffffffffffffff"
																	}
																],
																"functionName": {
																	"name": "and",
																	"nodeType": "YulIdentifier",
																	"src": "73:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "73:54:1"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "62:7:1"
																}
															]
														}
													]
												},
												"name": "cleanup_t_uint160",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "34:5:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "44:7:1",
														"type": ""
													}
												],
												"src": "7:126:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "184:51:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "194:35:1",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "223:5:1"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint160",
																	"nodeType": "YulIdentifier",
																	"src": "205:17:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "205:24:1"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "194:7:1"
																}
															]
														}
													]
												},
												"name": "cleanup_t_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "166:5:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "176:7:1",
														"type": ""
													}
												],
												"src": "139:96:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "306:53:1",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "323:3:1"
																	},
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "346:5:1"
																			}
																		],
																		"functionName": {
																			"name": "cleanup_t_address",
																			"nodeType": "YulIdentifier",
																			"src": "328:17:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "328:24:1"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "316:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "316:37:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "316:37:1"
														}
													]
												},
												"name": "abi_encode_t_address_to_t_address_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "294:5:1",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "301:3:1",
														"type": ""
													}
												],
												"src": "241:118:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "463:124:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "473:26:1",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "485:9:1"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "496:2:1",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "481:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "481:18:1"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "473:4:1"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "553:6:1"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "566:9:1"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "577:1:1",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "562:3:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "562:17:1"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_to_t_address_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "509:43:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "509:71:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "509:71:1"
														}
													]
												},
												"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "435:9:1",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "447:6:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "458:4:1",
														"type": ""
													}
												],
												"src": "365:222:1"
											}
										]
									},
									"contents": "{\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n",
									"id": 1,
									"language": "Yul",
									"name": "#utility.yul"
								}
							],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80638da5cb5b1461003b578063dd365b8b14610059575b600080fd5b610043610063565b604051610050919061010a565b60405180910390f35b610061610087565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100f4826100c9565b9050919050565b610104816100e9565b82525050565b600060208201905061011f60008301846100fb565b9291505056fea2646970667358221220ca51c26d528bdbd008b20b00226372830d75d8797bb26c4910c67f89d59cc84964736f6c63430008120033",
							"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xDD365B8B EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x87 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF4 DUP3 PUSH2 0xC9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x104 DUP2 PUSH2 0xE9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA MLOAD 0xC2 PUSH14 0x528BDBD008B20B00226372830D75 0xD8 PUSH26 0x7BB26C4910C67F89D59CC84964736F6C63430008120033000000 ",
							"sourceMap": "57:158:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;80:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;162:51;;;:::i;:::-;;80:20;;;;;;;;;;;;:::o;162:51::-;198:10;190:5;;:18;;;;;;;;;;;;;;;;;;162:51::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "69400",
								"executionCost": "infinite",
								"totalCost": "infinite"
							},
							"external": {
								"owner()": "2489",
								"pwn()": "24410"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 57,
									"end": 215,
									"name": "PUSH",
									"source": 0,
									"value": "80"
								},
								{
									"begin": 57,
									"end": 215,
									"name": "PUSH",
									"source": 0,
									"value": "40"
								},
								{
									"begin": 57,
									"end": 215,
									"name": "MSTORE",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "CALLVALUE",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "ISZERO",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "PUSH [tag]",
									"source": 0,
									"value": "1"
								},
								{
									"begin": 105,
									"end": 158,
									"name": "JUMPI",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "PUSH",
									"source": 0,
									"value": "0"
								},
								{
									"begin": 105,
									"end": 158,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "REVERT",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "tag",
									"source": 0,
									"value": "1"
								},
								{
									"begin": 105,
									"end": 158,
									"name": "JUMPDEST",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "POP",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "PUSH",
									"source": 0,
									"value": "40"
								},
								{
									"begin": 105,
									"end": 158,
									"name": "MLOAD",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "PUSHSIZE",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "CODESIZE",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "SUB",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "PUSHSIZE",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "DUP4",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "CODECOPY",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "ADD",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "PUSH",
									"source": 0,
									"value": "40"
								},
								{
									"begin": 105,
									"end": 158,
									"name": "MSTORE",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "ADD",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "SWAP1",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "PUSH [tag]",
									"source": 0,
									"value": "2"
								},
								{
									"begin": 105,
									"end": 158,
									"name": "SWAP2",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "SWAP1",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "PUSH [tag]",
									"source": 0,
									"value": "3"
								},
								{
									"begin": 105,
									"end": 158,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "tag",
									"source": 0,
									"value": "2"
								},
								{
									"begin": 105,
									"end": 158,
									"name": "JUMPDEST",
									"source": 0
								},
								{
									"begin": 147,
									"end": 153,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 139,
									"end": 144,
									"name": "PUSH",
									"source": 0,
									"value": "0"
								},
								{
									"begin": 139,
									"end": 144,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "PUSH",
									"source": 0,
									"value": "100"
								},
								{
									"begin": 139,
									"end": 153,
									"name": "EXP",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "SLOAD",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "PUSH",
									"source": 0,
									"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
								},
								{
									"begin": 139,
									"end": 153,
									"name": "MUL",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "NOT",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "AND",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "SWAP1",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "DUP4",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "PUSH",
									"source": 0,
									"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
								},
								{
									"begin": 139,
									"end": 153,
									"name": "AND",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "MUL",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "OR",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "SWAP1",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "SSTORE",
									"source": 0
								},
								{
									"begin": 139,
									"end": 153,
									"name": "POP",
									"source": 0
								},
								{
									"begin": 105,
									"end": 158,
									"name": "POP",
									"source": 0
								},
								{
									"begin": 57,
									"end": 215,
									"name": "PUSH [tag]",
									"source": 0,
									"value": "6"
								},
								{
									"begin": 57,
									"end": 215,
									"name": "JUMP",
									"source": 0
								},
								{
									"begin": 88,
									"end": 205,
									"name": "tag",
									"source": 1,
									"value": "8"
								},
								{
									"begin": 88,
									"end": 205,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 197,
									"end": 198,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 194,
									"end": 195,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 187,
									"end": 199,
									"name": "REVERT",
									"source": 1
								},
								{
									"begin": 334,
									"end": 460,
									"name": "tag",
									"source": 1,
									"value": "10"
								},
								{
									"begin": 334,
									"end": 460,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 371,
									"end": 378,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 411,
									"end": 453,
									"name": "PUSH",
									"source": 1,
									"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
								},
								{
									"begin": 404,
									"end": 409,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 400,
									"end": 454,
									"name": "AND",
									"source": 1
								},
								{
									"begin": 389,
									"end": 454,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 389,
									"end": 454,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 334,
									"end": 460,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 334,
									"end": 460,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 334,
									"end": 460,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 334,
									"end": 460,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 466,
									"end": 562,
									"name": "tag",
									"source": 1,
									"value": "11"
								},
								{
									"begin": 466,
									"end": 562,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 503,
									"end": 510,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 532,
									"end": 556,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "20"
								},
								{
									"begin": 550,
									"end": 555,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 532,
									"end": 556,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "10"
								},
								{
									"begin": 532,
									"end": 556,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 532,
									"end": 556,
									"name": "tag",
									"source": 1,
									"value": "20"
								},
								{
									"begin": 532,
									"end": 556,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 521,
									"end": 556,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 521,
									"end": 556,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 466,
									"end": 562,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 466,
									"end": 562,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 466,
									"end": 562,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 466,
									"end": 562,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 568,
									"end": 690,
									"name": "tag",
									"source": 1,
									"value": "12"
								},
								{
									"begin": 568,
									"end": 690,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 641,
									"end": 665,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "22"
								},
								{
									"begin": 659,
									"end": 664,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 641,
									"end": 665,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "11"
								},
								{
									"begin": 641,
									"end": 665,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 641,
									"end": 665,
									"name": "tag",
									"source": 1,
									"value": "22"
								},
								{
									"begin": 641,
									"end": 665,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 634,
									"end": 639,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 631,
									"end": 666,
									"name": "EQ",
									"source": 1
								},
								{
									"begin": 621,
									"end": 684,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "23"
								},
								{
									"begin": 621,
									"end": 684,
									"name": "JUMPI",
									"source": 1
								},
								{
									"begin": 680,
									"end": 681,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 677,
									"end": 678,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 670,
									"end": 682,
									"name": "REVERT",
									"source": 1
								},
								{
									"begin": 621,
									"end": 684,
									"name": "tag",
									"source": 1,
									"value": "23"
								},
								{
									"begin": 621,
									"end": 684,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 568,
									"end": 690,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 568,
									"end": 690,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 696,
									"end": 839,
									"name": "tag",
									"source": 1,
									"value": "13"
								},
								{
									"begin": 696,
									"end": 839,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 753,
									"end": 758,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 784,
									"end": 790,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 778,
									"end": 791,
									"name": "MLOAD",
									"source": 1
								},
								{
									"begin": 769,
									"end": 791,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 769,
									"end": 791,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 800,
									"end": 833,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "25"
								},
								{
									"begin": 827,
									"end": 832,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 800,
									"end": 833,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "12"
								},
								{
									"begin": 800,
									"end": 833,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 800,
									"end": 833,
									"name": "tag",
									"source": 1,
									"value": "25"
								},
								{
									"begin": 800,
									"end": 833,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 696,
									"end": 839,
									"name": "SWAP3",
									"source": 1
								},
								{
									"begin": 696,
									"end": 839,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 696,
									"end": 839,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 696,
									"end": 839,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 696,
									"end": 839,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 845,
									"end": 1196,
									"name": "tag",
									"source": 1,
									"value": "3"
								},
								{
									"begin": 845,
									"end": 1196,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 915,
									"end": 921,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 964,
									"end": 966,
									"name": "PUSH",
									"source": 1,
									"value": "20"
								},
								{
									"begin": 952,
									"end": 961,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 943,
									"end": 950,
									"name": "DUP5",
									"source": 1
								},
								{
									"begin": 939,
									"end": 962,
									"name": "SUB",
									"source": 1
								},
								{
									"begin": 935,
									"end": 967,
									"name": "SLT",
									"source": 1
								},
								{
									"begin": 932,
									"end": 1051,
									"name": "ISZERO",
									"source": 1
								},
								{
									"begin": 932,
									"end": 1051,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "27"
								},
								{
									"begin": 932,
									"end": 1051,
									"name": "JUMPI",
									"source": 1
								},
								{
									"begin": 970,
									"end": 1049,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "28"
								},
								{
									"begin": 970,
									"end": 1049,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "8"
								},
								{
									"begin": 970,
									"end": 1049,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 970,
									"end": 1049,
									"name": "tag",
									"source": 1,
									"value": "28"
								},
								{
									"begin": 970,
									"end": 1049,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 932,
									"end": 1051,
									"name": "tag",
									"source": 1,
									"value": "27"
								},
								{
									"begin": 932,
									"end": 1051,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 1090,
									"end": 1091,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 1115,
									"end": 1179,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "29"
								},
								{
									"begin": 1171,
									"end": 1178,
									"name": "DUP5",
									"source": 1
								},
								{
									"begin": 1162,
									"end": 1168,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 1151,
									"end": 1160,
									"name": "DUP6",
									"source": 1
								},
								{
									"begin": 1147,
									"end": 1169,
									"name": "ADD",
									"source": 1
								},
								{
									"begin": 1115,
									"end": 1179,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "13"
								},
								{
									"begin": 1115,
									"end": 1179,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 1115,
									"end": 1179,
									"name": "tag",
									"source": 1,
									"value": "29"
								},
								{
									"begin": 1115,
									"end": 1179,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 1105,
									"end": 1179,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 1105,
									"end": 1179,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 1061,
									"end": 1189,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 845,
									"end": 1196,
									"name": "SWAP3",
									"source": 1
								},
								{
									"begin": 845,
									"end": 1196,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 845,
									"end": 1196,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 845,
									"end": 1196,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 845,
									"end": 1196,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 57,
									"end": 215,
									"name": "tag",
									"source": 0,
									"value": "6"
								},
								{
									"begin": 57,
									"end": 215,
									"name": "JUMPDEST",
									"source": 0
								},
								{
									"begin": 57,
									"end": 215,
									"name": "PUSH #[$]",
									"source": 0,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 57,
									"end": 215,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 57,
									"end": 215,
									"name": "PUSH [$]",
									"source": 0,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 57,
									"end": 215,
									"name": "PUSH",
									"source": 0,
									"value": "0"
								},
								{
									"begin": 57,
									"end": 215,
									"name": "CODECOPY",
									"source": 0
								},
								{
									"begin": 57,
									"end": 215,
									"name": "PUSH",
									"source": 0,
									"value": "0"
								},
								{
									"begin": 57,
									"end": 215,
									"name": "RETURN",
									"source": 0
								}
							],
							".data": {
								"0": {
									".auxdata": "a2646970667358221220ca51c26d528bdbd008b20b00226372830d75d8797bb26c4910c67f89d59cc84964736f6c63430008120033",
									".code": [
										{
											"begin": 57,
											"end": 215,
											"name": "PUSH",
											"source": 0,
											"value": "80"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "CALLVALUE",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "ISZERO",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "1"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "REVERT",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "tag",
											"source": 0,
											"value": "1"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "POP",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "PUSH",
											"source": 0,
											"value": "4"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "CALLDATASIZE",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "LT",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "2"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "CALLDATALOAD",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "PUSH",
											"source": 0,
											"value": "E0"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "SHR",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "PUSH",
											"source": 0,
											"value": "8DA5CB5B"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "EQ",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "3"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "PUSH",
											"source": 0,
											"value": "DD365B8B"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "EQ",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "4"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "tag",
											"source": 0,
											"value": "2"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 57,
											"end": 215,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 57,
											"end": 215,
											"name": "REVERT",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "tag",
											"source": 0,
											"value": "3"
										},
										{
											"begin": 80,
											"end": 100,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "5"
										},
										{
											"begin": 80,
											"end": 100,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "6"
										},
										{
											"begin": 80,
											"end": 100,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "tag",
											"source": 0,
											"value": "5"
										},
										{
											"begin": 80,
											"end": 100,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 80,
											"end": 100,
											"name": "MLOAD",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "7"
										},
										{
											"begin": 80,
											"end": 100,
											"name": "SWAP2",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "8"
										},
										{
											"begin": 80,
											"end": 100,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "tag",
											"source": 0,
											"value": "7"
										},
										{
											"begin": 80,
											"end": 100,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 80,
											"end": 100,
											"name": "MLOAD",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "SWAP2",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "SUB",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "RETURN",
											"source": 0
										},
										{
											"begin": 162,
											"end": 213,
											"name": "tag",
											"source": 0,
											"value": "4"
										},
										{
											"begin": 162,
											"end": 213,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 162,
											"end": 213,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "9"
										},
										{
											"begin": 162,
											"end": 213,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "10"
										},
										{
											"begin": 162,
											"end": 213,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 0
										},
										{
											"begin": 162,
											"end": 213,
											"name": "tag",
											"source": 0,
											"value": "9"
										},
										{
											"begin": 162,
											"end": 213,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 162,
											"end": 213,
											"name": "STOP",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "tag",
											"source": 0,
											"value": "6"
										},
										{
											"begin": 80,
											"end": 100,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 80,
											"end": 100,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "SLOAD",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "PUSH",
											"source": 0,
											"value": "100"
										},
										{
											"begin": 80,
											"end": 100,
											"name": "EXP",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "DIV",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "PUSH",
											"source": 0,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 80,
											"end": 100,
											"name": "AND",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"name": "DUP2",
											"source": 0
										},
										{
											"begin": 80,
											"end": 100,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 0
										},
										{
											"begin": 162,
											"end": 213,
											"name": "tag",
											"source": 0,
											"value": "10"
										},
										{
											"begin": 162,
											"end": 213,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 198,
											"end": 208,
											"name": "CALLER",
											"source": 0
										},
										{
											"begin": 190,
											"end": 195,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 190,
											"end": 195,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "PUSH",
											"source": 0,
											"value": "100"
										},
										{
											"begin": 190,
											"end": 208,
											"name": "EXP",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "DUP2",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "SLOAD",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "DUP2",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "PUSH",
											"source": 0,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 190,
											"end": 208,
											"name": "MUL",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "NOT",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "AND",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "DUP4",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "PUSH",
											"source": 0,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 190,
											"end": 208,
											"name": "AND",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "MUL",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "OR",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "SSTORE",
											"source": 0
										},
										{
											"begin": 190,
											"end": 208,
											"name": "POP",
											"source": 0
										},
										{
											"begin": 162,
											"end": 213,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 0
										},
										{
											"begin": 7,
											"end": 133,
											"name": "tag",
											"source": 1,
											"value": "12"
										},
										{
											"begin": 7,
											"end": 133,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 44,
											"end": 51,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 84,
											"end": 126,
											"name": "PUSH",
											"source": 1,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 77,
											"end": 82,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 73,
											"end": 127,
											"name": "AND",
											"source": 1
										},
										{
											"begin": 62,
											"end": 127,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 62,
											"end": 127,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 7,
											"end": 133,
											"name": "SWAP2",
											"source": 1
										},
										{
											"begin": 7,
											"end": 133,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 7,
											"end": 133,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 7,
											"end": 133,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 139,
											"end": 235,
											"name": "tag",
											"source": 1,
											"value": "13"
										},
										{
											"begin": 139,
											"end": 235,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 176,
											"end": 183,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 205,
											"end": 229,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "18"
										},
										{
											"begin": 223,
											"end": 228,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 205,
											"end": 229,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "12"
										},
										{
											"begin": 205,
											"end": 229,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 205,
											"end": 229,
											"name": "tag",
											"source": 1,
											"value": "18"
										},
										{
											"begin": 205,
											"end": 229,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 194,
											"end": 229,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 194,
											"end": 229,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 139,
											"end": 235,
											"name": "SWAP2",
											"source": 1
										},
										{
											"begin": 139,
											"end": 235,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 139,
											"end": 235,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 139,
											"end": 235,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 241,
											"end": 359,
											"name": "tag",
											"source": 1,
											"value": "14"
										},
										{
											"begin": 241,
											"end": 359,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 328,
											"end": 352,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "20"
										},
										{
											"begin": 346,
											"end": 351,
											"name": "DUP2",
											"source": 1
										},
										{
											"begin": 328,
											"end": 352,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "13"
										},
										{
											"begin": 328,
											"end": 352,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 328,
											"end": 352,
											"name": "tag",
											"source": 1,
											"value": "20"
										},
										{
											"begin": 328,
											"end": 352,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 323,
											"end": 326,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 316,
											"end": 353,
											"name": "MSTORE",
											"source": 1
										},
										{
											"begin": 241,
											"end": 359,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 241,
											"end": 359,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 241,
											"end": 359,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 365,
											"end": 587,
											"name": "tag",
											"source": 1,
											"value": "8"
										},
										{
											"begin": 365,
											"end": 587,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 458,
											"end": 462,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 496,
											"end": 498,
											"name": "PUSH",
											"source": 1,
											"value": "20"
										},
										{
											"begin": 485,
											"end": 494,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 481,
											"end": 499,
											"name": "ADD",
											"source": 1
										},
										{
											"begin": 473,
											"end": 499,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 473,
											"end": 499,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 509,
											"end": 580,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "22"
										},
										{
											"begin": 577,
											"end": 578,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 566,
											"end": 575,
											"name": "DUP4",
											"source": 1
										},
										{
											"begin": 562,
											"end": 579,
											"name": "ADD",
											"source": 1
										},
										{
											"begin": 553,
											"end": 559,
											"name": "DUP5",
											"source": 1
										},
										{
											"begin": 509,
											"end": 580,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "14"
										},
										{
											"begin": 509,
											"end": 580,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 509,
											"end": 580,
											"name": "tag",
											"source": 1,
											"value": "22"
										},
										{
											"begin": 509,
											"end": 580,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 365,
											"end": 587,
											"name": "SWAP3",
											"source": 1
										},
										{
											"begin": 365,
											"end": 587,
											"name": "SWAP2",
											"source": 1
										},
										{
											"begin": 365,
											"end": 587,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 365,
											"end": 587,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 365,
											"end": 587,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										}
									]
								}
							},
							"sourceList": [
								"contracts/ethernaut/delegation.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {
							"owner()": "8da5cb5b",
							"pwn()": "dd365b8b"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pwn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ethernaut/delegation.sol\":\"Delegate\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/ethernaut/delegation.sol\":{\"keccak256\":\"0x43f9c25f4cad214f0730f685e35d8450575ed2037acad4a3e391e466063a7918\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://462e1967968e5f4e911875790251114f7b9fffdf89ace399cad458003f158eeb\",\"dweb:/ipfs/QmS2VqAtWjRhX5kyvLDSvffK9NmqyRgedH4SxHPAntV41N\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [
							{
								"astId": 3,
								"contract": "contracts/ethernaut/delegation.sol:Delegate",
								"label": "owner",
								"offset": 0,
								"slot": "0",
								"type": "t_address"
							}
						],
						"types": {
							"t_address": {
								"encoding": "inplace",
								"label": "address",
								"numberOfBytes": "20"
							}
						}
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				},
				"Delegation": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "_delegateAddress",
									"type": "address"
								}
							],
							"stateMutability": "nonpayable",
							"type": "constructor"
						},
						{
							"stateMutability": "nonpayable",
							"type": "fallback"
						},
						{
							"inputs": [],
							"name": "owner",
							"outputs": [
								{
									"internalType": "address",
									"name": "",
									"type": "address"
								}
							],
							"stateMutability": "view",
							"type": "function"
						}
					],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"contracts/ethernaut/delegation.sol\":217:528  contract Delegation {... */\n  mstore(0x40, 0x80)\n    /* \"contracts/ethernaut/delegation.sol\":288:398  constructor(address _delegateAddress) {... */\n  callvalue\n  dup1\n  iszero\n  tag_1\n  jumpi\n  0x00\n  dup1\n  revert\ntag_1:\n  pop\n  mload(0x40)\n  sub(codesize, bytecodeSize)\n  dup1\n  bytecodeSize\n  dup4\n  codecopy\n  dup2\n  dup2\n  add\n  0x40\n  mstore\n  dup2\n  add\n  swap1\n  tag_2\n  swap2\n  swap1\n  tag_3\n  jump\t// in\ntag_2:\n    /* \"contracts/ethernaut/delegation.sol\":352:368  _delegateAddress */\n  dup1\n    /* \"contracts/ethernaut/delegation.sol\":332:340  delegate */\n  0x01\n  0x00\n    /* \"contracts/ethernaut/delegation.sol\":332:369  delegate = Delegate(_delegateAddress) */\n  0x0100\n  exp\n  dup2\n  sload\n  dup2\n  0xffffffffffffffffffffffffffffffffffffffff\n  mul\n  not\n  and\n  swap1\n  dup4\n  0xffffffffffffffffffffffffffffffffffffffff\n  and\n  mul\n  or\n  swap1\n  sstore\n  pop\n    /* \"contracts/ethernaut/delegation.sol\":383:393  msg.sender */\n  caller\n    /* \"contracts/ethernaut/delegation.sol\":375:380  owner */\n  0x00\n  dup1\n    /* \"contracts/ethernaut/delegation.sol\":375:393  owner = msg.sender */\n  0x0100\n  exp\n  dup2\n  sload\n  dup2\n  0xffffffffffffffffffffffffffffffffffffffff\n  mul\n  not\n  and\n  swap1\n  dup4\n  0xffffffffffffffffffffffffffffffffffffffff\n  and\n  mul\n  or\n  swap1\n  sstore\n  pop\n    /* \"contracts/ethernaut/delegation.sol\":288:398  constructor(address _delegateAddress) {... */\n  pop\n    /* \"contracts/ethernaut/delegation.sol\":217:528  contract Delegation {... */\n  jump(tag_6)\n    /* \"#utility.yul\":88:205   */\ntag_8:\n    /* \"#utility.yul\":197:198   */\n  0x00\n    /* \"#utility.yul\":194:195   */\n  dup1\n    /* \"#utility.yul\":187:199   */\n  revert\n    /* \"#utility.yul\":334:460   */\ntag_10:\n    /* \"#utility.yul\":371:378   */\n  0x00\n    /* \"#utility.yul\":411:453   */\n  0xffffffffffffffffffffffffffffffffffffffff\n    /* \"#utility.yul\":404:409   */\n  dup3\n    /* \"#utility.yul\":400:454   */\n  and\n    /* \"#utility.yul\":389:454   */\n  swap1\n  pop\n    /* \"#utility.yul\":334:460   */\n  swap2\n  swap1\n  pop\n  jump\t// out\n    /* \"#utility.yul\":466:562   */\ntag_11:\n    /* \"#utility.yul\":503:510   */\n  0x00\n    /* \"#utility.yul\":532:556   */\n  tag_20\n    /* \"#utility.yul\":550:555   */\n  dup3\n    /* \"#utility.yul\":532:556   */\n  tag_10\n  jump\t// in\ntag_20:\n    /* \"#utility.yul\":521:556   */\n  swap1\n  pop\n    /* \"#utility.yul\":466:562   */\n  swap2\n  swap1\n  pop\n  jump\t// out\n    /* \"#utility.yul\":568:690   */\ntag_12:\n    /* \"#utility.yul\":641:665   */\n  tag_22\n    /* \"#utility.yul\":659:664   */\n  dup2\n    /* \"#utility.yul\":641:665   */\n  tag_11\n  jump\t// in\ntag_22:\n    /* \"#utility.yul\":634:639   */\n  dup2\n    /* \"#utility.yul\":631:666   */\n  eq\n    /* \"#utility.yul\":621:684   */\n  tag_23\n  jumpi\n    /* \"#utility.yul\":680:681   */\n  0x00\n    /* \"#utility.yul\":677:678   */\n  dup1\n    /* \"#utility.yul\":670:682   */\n  revert\n    /* \"#utility.yul\":621:684   */\ntag_23:\n    /* \"#utility.yul\":568:690   */\n  pop\n  jump\t// out\n    /* \"#utility.yul\":696:839   */\ntag_13:\n    /* \"#utility.yul\":753:758   */\n  0x00\n    /* \"#utility.yul\":784:790   */\n  dup2\n    /* \"#utility.yul\":778:791   */\n  mload\n    /* \"#utility.yul\":769:791   */\n  swap1\n  pop\n    /* \"#utility.yul\":800:833   */\n  tag_25\n    /* \"#utility.yul\":827:832   */\n  dup2\n    /* \"#utility.yul\":800:833   */\n  tag_12\n  jump\t// in\ntag_25:\n    /* \"#utility.yul\":696:839   */\n  swap3\n  swap2\n  pop\n  pop\n  jump\t// out\n    /* \"#utility.yul\":845:1196   */\ntag_3:\n    /* \"#utility.yul\":915:921   */\n  0x00\n    /* \"#utility.yul\":964:966   */\n  0x20\n    /* \"#utility.yul\":952:961   */\n  dup3\n    /* \"#utility.yul\":943:950   */\n  dup5\n    /* \"#utility.yul\":939:962   */\n  sub\n    /* \"#utility.yul\":935:967   */\n  slt\n    /* \"#utility.yul\":932:1051   */\n  iszero\n  tag_27\n  jumpi\n    /* \"#utility.yul\":970:1049   */\n  tag_28\n  tag_8\n  jump\t// in\ntag_28:\n    /* \"#utility.yul\":932:1051   */\ntag_27:\n    /* \"#utility.yul\":1090:1091   */\n  0x00\n    /* \"#utility.yul\":1115:1179   */\n  tag_29\n    /* \"#utility.yul\":1171:1178   */\n  dup5\n    /* \"#utility.yul\":1162:1168   */\n  dup3\n    /* \"#utility.yul\":1151:1160   */\n  dup6\n    /* \"#utility.yul\":1147:1169   */\n  add\n    /* \"#utility.yul\":1115:1179   */\n  tag_13\n  jump\t// in\ntag_29:\n    /* \"#utility.yul\":1105:1179   */\n  swap2\n  pop\n    /* \"#utility.yul\":1061:1189   */\n  pop\n    /* \"#utility.yul\":845:1196   */\n  swap3\n  swap2\n  pop\n  pop\n  jump\t// out\n    /* \"contracts/ethernaut/delegation.sol\":217:528  contract Delegation {... */\ntag_6:\n  dataSize(sub_0)\n  dup1\n  dataOffset(sub_0)\n  0x00\n  codecopy\n  0x00\n  return\nstop\n\nsub_0: assembly {\n        /* \"contracts/ethernaut/delegation.sol\":217:528  contract Delegation {... */\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      0x8da5cb5b\n      eq\n      tag_4\n      jumpi\n      jump(tag_3)\n    tag_2:\n    tag_3:\n        /* \"contracts/ethernaut/delegation.sol\":429:440  bool result */\n      0x00\n        /* \"contracts/ethernaut/delegation.sol\":453:461  delegate */\n      0x01\n      0x00\n      swap1\n      sload\n      swap1\n      0x0100\n      exp\n      swap1\n      div\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"contracts/ethernaut/delegation.sol\":445:475  address(delegate).delegatecall */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"contracts/ethernaut/delegation.sol\":476:484  msg.data */\n      0x00\n      calldatasize\n        /* \"contracts/ethernaut/delegation.sol\":445:485  address(delegate).delegatecall(msg.data) */\n      mload(0x40)\n      tag_7\n      swap3\n      swap2\n      swap1\n      tag_8\n      jump\t// in\n    tag_7:\n      0x00\n      mload(0x40)\n      dup1\n      dup4\n      sub\n      dup2\n      dup6\n      gas\n      delegatecall\n      swap2\n      pop\n      pop\n      returndatasize\n      dup1\n      0x00\n      dup2\n      eq\n      tag_11\n      jumpi\n      mload(0x40)\n      swap2\n      pop\n      and(add(returndatasize, 0x3f), not(0x1f))\n      dup3\n      add\n      0x40\n      mstore\n      returndatasize\n      dup3\n      mstore\n      returndatasize\n      0x00\n      0x20\n      dup5\n      add\n      returndatacopy\n      jump(tag_10)\n    tag_11:\n      0x60\n      swap2\n      pop\n    tag_10:\n      stop\n        /* \"contracts/ethernaut/delegation.sol\":242:262  address public owner */\n    tag_4:\n      tag_13\n      tag_14\n      jump\t// in\n    tag_13:\n      mload(0x40)\n      tag_15\n      swap2\n      swap1\n      tag_16\n      jump\t// in\n    tag_15:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      return\n    tag_14:\n      0x00\n      dup1\n      sload\n      swap1\n      0x0100\n      exp\n      swap1\n      div\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      dup2\n      jump\t// out\n        /* \"#utility.yul\":7:154   */\n    tag_17:\n        /* \"#utility.yul\":108:119   */\n      0x00\n        /* \"#utility.yul\":145:148   */\n      dup2\n        /* \"#utility.yul\":130:148   */\n      swap1\n      pop\n        /* \"#utility.yul\":7:154   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":160:306   */\n    tag_18:\n        /* \"#utility.yul\":257:263   */\n      dup3\n        /* \"#utility.yul\":252:255   */\n      dup2\n        /* \"#utility.yul\":247:250   */\n      dup4\n        /* \"#utility.yul\":234:264   */\n      calldatacopy\n        /* \"#utility.yul\":298:299   */\n      0x00\n        /* \"#utility.yul\":289:295   */\n      dup4\n        /* \"#utility.yul\":284:287   */\n      dup4\n        /* \"#utility.yul\":280:296   */\n      add\n        /* \"#utility.yul\":273:300   */\n      mstore\n        /* \"#utility.yul\":160:306   */\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":334:661   */\n    tag_19:\n        /* \"#utility.yul\":448:451   */\n      0x00\n        /* \"#utility.yul\":469:557   */\n      tag_27\n        /* \"#utility.yul\":550:556   */\n      dup4\n        /* \"#utility.yul\":545:548   */\n      dup6\n        /* \"#utility.yul\":469:557   */\n      tag_17\n      jump\t// in\n    tag_27:\n        /* \"#utility.yul\":462:557   */\n      swap4\n      pop\n        /* \"#utility.yul\":567:623   */\n      tag_28\n        /* \"#utility.yul\":616:622   */\n      dup4\n        /* \"#utility.yul\":611:614   */\n      dup6\n        /* \"#utility.yul\":604:609   */\n      dup5\n        /* \"#utility.yul\":567:623   */\n      tag_18\n      jump\t// in\n    tag_28:\n        /* \"#utility.yul\":648:654   */\n      dup3\n        /* \"#utility.yul\":643:646   */\n      dup5\n        /* \"#utility.yul\":639:655   */\n      add\n        /* \"#utility.yul\":632:655   */\n      swap1\n      pop\n        /* \"#utility.yul\":334:661   */\n      swap4\n      swap3\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":667:958   */\n    tag_8:\n        /* \"#utility.yul\":807:810   */\n      0x00\n        /* \"#utility.yul\":829:932   */\n      tag_30\n        /* \"#utility.yul\":928:931   */\n      dup3\n        /* \"#utility.yul\":919:925   */\n      dup5\n        /* \"#utility.yul\":911:917   */\n      dup7\n        /* \"#utility.yul\":829:932   */\n      tag_19\n      jump\t// in\n    tag_30:\n        /* \"#utility.yul\":822:932   */\n      swap2\n      pop\n        /* \"#utility.yul\":949:952   */\n      dup2\n        /* \"#utility.yul\":942:952   */\n      swap1\n      pop\n        /* \"#utility.yul\":667:958   */\n      swap4\n      swap3\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":964:1090   */\n    tag_20:\n        /* \"#utility.yul\":1001:1008   */\n      0x00\n        /* \"#utility.yul\":1041:1083   */\n      0xffffffffffffffffffffffffffffffffffffffff\n        /* \"#utility.yul\":1034:1039   */\n      dup3\n        /* \"#utility.yul\":1030:1084   */\n      and\n        /* \"#utility.yul\":1019:1084   */\n      swap1\n      pop\n        /* \"#utility.yul\":964:1090   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":1096:1192   */\n    tag_21:\n        /* \"#utility.yul\":1133:1140   */\n      0x00\n        /* \"#utility.yul\":1162:1186   */\n      tag_33\n        /* \"#utility.yul\":1180:1185   */\n      dup3\n        /* \"#utility.yul\":1162:1186   */\n      tag_20\n      jump\t// in\n    tag_33:\n        /* \"#utility.yul\":1151:1186   */\n      swap1\n      pop\n        /* \"#utility.yul\":1096:1192   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":1198:1316   */\n    tag_22:\n        /* \"#utility.yul\":1285:1309   */\n      tag_35\n        /* \"#utility.yul\":1303:1308   */\n      dup2\n        /* \"#utility.yul\":1285:1309   */\n      tag_21\n      jump\t// in\n    tag_35:\n        /* \"#utility.yul\":1280:1283   */\n      dup3\n        /* \"#utility.yul\":1273:1310   */\n      mstore\n        /* \"#utility.yul\":1198:1316   */\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":1322:1544   */\n    tag_16:\n        /* \"#utility.yul\":1415:1419   */\n      0x00\n        /* \"#utility.yul\":1453:1455   */\n      0x20\n        /* \"#utility.yul\":1442:1451   */\n      dup3\n        /* \"#utility.yul\":1438:1456   */\n      add\n        /* \"#utility.yul\":1430:1456   */\n      swap1\n      pop\n        /* \"#utility.yul\":1466:1537   */\n      tag_37\n        /* \"#utility.yul\":1534:1535   */\n      0x00\n        /* \"#utility.yul\":1523:1532   */\n      dup4\n        /* \"#utility.yul\":1519:1536   */\n      add\n        /* \"#utility.yul\":1510:1516   */\n      dup5\n        /* \"#utility.yul\":1466:1537   */\n      tag_22\n      jump\t// in\n    tag_37:\n        /* \"#utility.yul\":1322:1544   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n\n    auxdata: 0xa2646970667358221220a64ec62813afe9cb866a7dace124472c2540e633633aa2d876042db322053ae564736f6c63430008120033\n}\n",
						"bytecode": {
							"functionDebugData": {
								"@_45": {
									"entryPoint": null,
									"id": 45,
									"parameterSlots": 1,
									"returnSlots": 0
								},
								"abi_decode_t_address_fromMemory": {
									"entryPoint": 263,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"abi_decode_tuple_t_address_fromMemory": {
									"entryPoint": 284,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"allocate_unbounded": {
									"entryPoint": null,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 1
								},
								"cleanup_t_address": {
									"entryPoint": 222,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"cleanup_t_uint160": {
									"entryPoint": 190,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
									"entryPoint": null,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 0
								},
								"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
									"entryPoint": 185,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 0
								},
								"validator_revert_t_address": {
									"entryPoint": 240,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 0
								}
							},
							"generatedSources": [
								{
									"ast": {
										"nodeType": "YulBlock",
										"src": "0:1199:1",
										"statements": [
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "47:35:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "57:19:1",
															"value": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "73:2:1",
																		"type": "",
																		"value": "64"
																	}
																],
																"functionName": {
																	"name": "mload",
																	"nodeType": "YulIdentifier",
																	"src": "67:5:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "67:9:1"
															},
															"variableNames": [
																{
																	"name": "memPtr",
																	"nodeType": "YulIdentifier",
																	"src": "57:6:1"
																}
															]
														}
													]
												},
												"name": "allocate_unbounded",
												"nodeType": "YulFunctionDefinition",
												"returnVariables": [
													{
														"name": "memPtr",
														"nodeType": "YulTypedName",
														"src": "40:6:1",
														"type": ""
													}
												],
												"src": "7:75:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "177:28:1",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "194:1:1",
																		"type": "",
																		"value": "0"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "197:1:1",
																		"type": "",
																		"value": "0"
																	}
																],
																"functionName": {
																	"name": "revert",
																	"nodeType": "YulIdentifier",
																	"src": "187:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "187:12:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "187:12:1"
														}
													]
												},
												"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
												"nodeType": "YulFunctionDefinition",
												"src": "88:117:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "300:28:1",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "317:1:1",
																		"type": "",
																		"value": "0"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "320:1:1",
																		"type": "",
																		"value": "0"
																	}
																],
																"functionName": {
																	"name": "revert",
																	"nodeType": "YulIdentifier",
																	"src": "310:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "310:12:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "310:12:1"
														}
													]
												},
												"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
												"nodeType": "YulFunctionDefinition",
												"src": "211:117:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "379:81:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "389:65:1",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "404:5:1"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "411:42:1",
																		"type": "",
																		"value": "0xffffffffffffffffffffffffffffffffffffffff"
																	}
																],
																"functionName": {
																	"name": "and",
																	"nodeType": "YulIdentifier",
																	"src": "400:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "400:54:1"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "389:7:1"
																}
															]
														}
													]
												},
												"name": "cleanup_t_uint160",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "361:5:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "371:7:1",
														"type": ""
													}
												],
												"src": "334:126:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "511:51:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "521:35:1",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "550:5:1"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint160",
																	"nodeType": "YulIdentifier",
																	"src": "532:17:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "532:24:1"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "521:7:1"
																}
															]
														}
													]
												},
												"name": "cleanup_t_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "493:5:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "503:7:1",
														"type": ""
													}
												],
												"src": "466:96:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "611:79:1",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "668:16:1",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "677:1:1",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "680:1:1",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "670:6:1"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "670:12:1"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "670:12:1"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "634:5:1"
																			},
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "659:5:1"
																					}
																				],
																				"functionName": {
																					"name": "cleanup_t_address",
																					"nodeType": "YulIdentifier",
																					"src": "641:17:1"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "641:24:1"
																			}
																		],
																		"functionName": {
																			"name": "eq",
																			"nodeType": "YulIdentifier",
																			"src": "631:2:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "631:35:1"
																	}
																],
																"functionName": {
																	"name": "iszero",
																	"nodeType": "YulIdentifier",
																	"src": "624:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "624:43:1"
															},
															"nodeType": "YulIf",
															"src": "621:63:1"
														}
													]
												},
												"name": "validator_revert_t_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "604:5:1",
														"type": ""
													}
												],
												"src": "568:122:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "759:80:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "769:22:1",
															"value": {
																"arguments": [
																	{
																		"name": "offset",
																		"nodeType": "YulIdentifier",
																		"src": "784:6:1"
																	}
																],
																"functionName": {
																	"name": "mload",
																	"nodeType": "YulIdentifier",
																	"src": "778:5:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "778:13:1"
															},
															"variableNames": [
																{
																	"name": "value",
																	"nodeType": "YulIdentifier",
																	"src": "769:5:1"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "827:5:1"
																	}
																],
																"functionName": {
																	"name": "validator_revert_t_address",
																	"nodeType": "YulIdentifier",
																	"src": "800:26:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "800:33:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "800:33:1"
														}
													]
												},
												"name": "abi_decode_t_address_fromMemory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "offset",
														"nodeType": "YulTypedName",
														"src": "737:6:1",
														"type": ""
													},
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "745:3:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "753:5:1",
														"type": ""
													}
												],
												"src": "696:143:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "922:274:1",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "968:83:1",
																"statements": [
																	{
																		"expression": {
																			"arguments": [],
																			"functionName": {
																				"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
																				"nodeType": "YulIdentifier",
																				"src": "970:77:1"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "970:79:1"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "970:79:1"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "943:7:1"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "952:9:1"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "939:3:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "939:23:1"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "964:2:1",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "935:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "935:32:1"
															},
															"nodeType": "YulIf",
															"src": "932:119:1"
														},
														{
															"nodeType": "YulBlock",
															"src": "1061:128:1",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "1076:15:1",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1090:1:1",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "1080:6:1",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "1105:74:1",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "1151:9:1"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "1162:6:1"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "1147:3:1"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "1147:22:1"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "1171:7:1"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_address_fromMemory",
																			"nodeType": "YulIdentifier",
																			"src": "1115:31:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "1115:64:1"
																	},
																	"variableNames": [
																		{
																			"name": "value0",
																			"nodeType": "YulIdentifier",
																			"src": "1105:6:1"
																		}
																	]
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_address_fromMemory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "892:9:1",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "903:7:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "915:6:1",
														"type": ""
													}
												],
												"src": "845:351:1"
											}
										]
									},
									"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_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_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_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n}\n",
									"id": 1,
									"language": "Yul",
									"name": "#utility.yul"
								}
							],
							"linkReferences": {},
							"object": "608060405234801561001057600080fd5b506040516103423803806103428339818101604052810190610032919061011c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610149565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100e9826100be565b9050919050565b6100f9816100de565b811461010457600080fd5b50565b600081519050610116816100f0565b92915050565b600060208284031215610132576101316100b9565b5b600061014084828501610107565b91505092915050565b6101ea806101586000396000f3fe608060405234801561001057600080fd5b506004361061002f5760003560e01c80638da5cb5b146100be57610030565b5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660003660405161007c92919061013f565b600060405180830381855af49150503d80600081146100b7576040519150601f19603f3d011682016040523d82523d6000602084013e6100bc565b606091505b005b6100c66100dc565b6040516100d39190610199565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081905092915050565b82818337600083830152505050565b60006101268385610100565b935061013383858461010b565b82840190509392505050565b600061014c82848661011a565b91508190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061018382610158565b9050919050565b61019381610178565b82525050565b60006020820190506101ae600083018461018a565b9291505056fea2646970667358221220a64ec62813afe9cb866a7dace124472c2540e633633aa2d876042db322053ae564736f6c63430008120033",
							"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x342 CODESIZE SUB DUP1 PUSH2 0x342 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x11C JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x149 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE9 DUP3 PUSH2 0xBE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF9 DUP2 PUSH2 0xDE JUMP JUMPDEST DUP2 EQ PUSH2 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x116 DUP2 PUSH2 0xF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x132 JUMPI PUSH2 0x131 PUSH2 0xB9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x140 DUP5 DUP3 DUP6 ADD PUSH2 0x107 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1EA DUP1 PUSH2 0x158 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 0x2F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xBE JUMPI PUSH2 0x30 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x7C SWAP3 SWAP2 SWAP1 PUSH2 0x13F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xB7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xBC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST STOP JUMPDEST PUSH2 0xC6 PUSH2 0xDC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD3 SWAP2 SWAP1 PUSH2 0x199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126 DUP4 DUP6 PUSH2 0x100 JUMP JUMPDEST SWAP4 POP PUSH2 0x133 DUP4 DUP6 DUP5 PUSH2 0x10B JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14C DUP3 DUP5 DUP7 PUSH2 0x11A JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x183 DUP3 PUSH2 0x158 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x193 DUP2 PUSH2 0x178 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x18A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 0x4E 0xC6 0x28 SGT 0xAF 0xE9 0xCB DUP7 PUSH11 0x7DACE124472C2540E63363 GASPRICE LOG2 0xD8 PUSH23 0x42DB322053AE564736F6C634300081200330000000000 ",
							"sourceMap": "217:311:0:-:0;;;288:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;352:16;332:8;;:37;;;;;;;;;;;;;;;;;;383:10;375:5;;:18;;;;;;;;;;;;;;;;;;288:110;217:311;;88:117:1;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;217:311:0:-;;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {
								"@_65": {
									"entryPoint": null,
									"id": 65,
									"parameterSlots": 0,
									"returnSlots": 0
								},
								"@owner_25": {
									"entryPoint": 220,
									"id": 25,
									"parameterSlots": 0,
									"returnSlots": 0
								},
								"abi_encode_t_address_to_t_address_fromStack": {
									"entryPoint": 394,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 0
								},
								"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": {
									"entryPoint": 282,
									"id": null,
									"parameterSlots": 3,
									"returnSlots": 1
								},
								"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": {
									"entryPoint": 319,
									"id": null,
									"parameterSlots": 3,
									"returnSlots": 1
								},
								"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
									"entryPoint": 409,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": {
									"entryPoint": 256,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"cleanup_t_address": {
									"entryPoint": 376,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"cleanup_t_uint160": {
									"entryPoint": 344,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"copy_calldata_to_memory_with_cleanup": {
									"entryPoint": 267,
									"id": null,
									"parameterSlots": 3,
									"returnSlots": 0
								}
							},
							"generatedSources": [
								{
									"ast": {
										"nodeType": "YulBlock",
										"src": "0:1547:1",
										"statements": [
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "120:34:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "130:18:1",
															"value": {
																"name": "pos",
																"nodeType": "YulIdentifier",
																"src": "145:3:1"
															},
															"variableNames": [
																{
																	"name": "updated_pos",
																	"nodeType": "YulIdentifier",
																	"src": "130:11:1"
																}
															]
														}
													]
												},
												"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "92:3:1",
														"type": ""
													},
													{
														"name": "length",
														"nodeType": "YulTypedName",
														"src": "97:6:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "updated_pos",
														"nodeType": "YulTypedName",
														"src": "108:11:1",
														"type": ""
													}
												],
												"src": "7:147:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "224:82:1",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "dst",
																		"nodeType": "YulIdentifier",
																		"src": "247:3:1"
																	},
																	{
																		"name": "src",
																		"nodeType": "YulIdentifier",
																		"src": "252:3:1"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "257:6:1"
																	}
																],
																"functionName": {
																	"name": "calldatacopy",
																	"nodeType": "YulIdentifier",
																	"src": "234:12:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "234:30:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "234:30:1"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dst",
																				"nodeType": "YulIdentifier",
																				"src": "284:3:1"
																			},
																			{
																				"name": "length",
																				"nodeType": "YulIdentifier",
																				"src": "289:6:1"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "280:3:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "280:16:1"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "298:1:1",
																		"type": "",
																		"value": "0"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "273:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "273:27:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "273:27:1"
														}
													]
												},
												"name": "copy_calldata_to_memory_with_cleanup",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "src",
														"nodeType": "YulTypedName",
														"src": "206:3:1",
														"type": ""
													},
													{
														"name": "dst",
														"nodeType": "YulTypedName",
														"src": "211:3:1",
														"type": ""
													},
													{
														"name": "length",
														"nodeType": "YulTypedName",
														"src": "216:6:1",
														"type": ""
													}
												],
												"src": "160:146:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "452:209:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "462:95:1",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "545:3:1"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "550:6:1"
																	}
																],
																"functionName": {
																	"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "469:75:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "469:88:1"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "462:3:1"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "start",
																		"nodeType": "YulIdentifier",
																		"src": "604:5:1"
																	},
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "611:3:1"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "616:6:1"
																	}
																],
																"functionName": {
																	"name": "copy_calldata_to_memory_with_cleanup",
																	"nodeType": "YulIdentifier",
																	"src": "567:36:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "567:56:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "567:56:1"
														},
														{
															"nodeType": "YulAssignment",
															"src": "632:23:1",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "643:3:1"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "648:6:1"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "639:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "639:16:1"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "632:3:1"
																}
															]
														}
													]
												},
												"name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "start",
														"nodeType": "YulTypedName",
														"src": "425:5:1",
														"type": ""
													},
													{
														"name": "length",
														"nodeType": "YulTypedName",
														"src": "432:6:1",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "440:3:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "448:3:1",
														"type": ""
													}
												],
												"src": "334:327:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "811:147:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "822:110:1",
															"value": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "911:6:1"
																	},
																	{
																		"name": "value1",
																		"nodeType": "YulIdentifier",
																		"src": "919:6:1"
																	},
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "928:3:1"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "829:81:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "829:103:1"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "822:3:1"
																}
															]
														},
														{
															"nodeType": "YulAssignment",
															"src": "942:10:1",
															"value": {
																"name": "pos",
																"nodeType": "YulIdentifier",
																"src": "949:3:1"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "942:3:1"
																}
															]
														}
													]
												},
												"name": "abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "782:3:1",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "788:6:1",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "796:6:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "807:3:1",
														"type": ""
													}
												],
												"src": "667:291:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "1009:81:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "1019:65:1",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "1034:5:1"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1041:42:1",
																		"type": "",
																		"value": "0xffffffffffffffffffffffffffffffffffffffff"
																	}
																],
																"functionName": {
																	"name": "and",
																	"nodeType": "YulIdentifier",
																	"src": "1030:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "1030:54:1"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "1019:7:1"
																}
															]
														}
													]
												},
												"name": "cleanup_t_uint160",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "991:5:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "1001:7:1",
														"type": ""
													}
												],
												"src": "964:126:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "1141:51:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "1151:35:1",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "1180:5:1"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint160",
																	"nodeType": "YulIdentifier",
																	"src": "1162:17:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "1162:24:1"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "1151:7:1"
																}
															]
														}
													]
												},
												"name": "cleanup_t_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "1123:5:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "1133:7:1",
														"type": ""
													}
												],
												"src": "1096:96:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "1263:53:1",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "1280:3:1"
																	},
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "1303:5:1"
																			}
																		],
																		"functionName": {
																			"name": "cleanup_t_address",
																			"nodeType": "YulIdentifier",
																			"src": "1285:17:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "1285:24:1"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "1273:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "1273:37:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "1273:37:1"
														}
													]
												},
												"name": "abi_encode_t_address_to_t_address_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "1251:5:1",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "1258:3:1",
														"type": ""
													}
												],
												"src": "1198:118:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "1420:124:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "1430:26:1",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "1442:9:1"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1453:2:1",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "1438:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "1438:18:1"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "1430:4:1"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "1510:6:1"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "1523:9:1"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "1534:1:1",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "1519:3:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "1519:17:1"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_to_t_address_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "1466:43:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "1466:71:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "1466:71:1"
														}
													]
												},
												"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "1392:9:1",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "1404:6:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "1415:4:1",
														"type": ""
													}
												],
												"src": "1322:222:1"
											}
										]
									},
									"contents": "{\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\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    // bytes -> bytes\n    function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n        pos := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, value1,  pos)\n\n        end := pos\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n",
									"id": 1,
									"language": "Yul",
									"name": "#utility.yul"
								}
							],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "608060405234801561001057600080fd5b506004361061002f5760003560e01c80638da5cb5b146100be57610030565b5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660003660405161007c92919061013f565b600060405180830381855af49150503d80600081146100b7576040519150601f19603f3d011682016040523d82523d6000602084013e6100bc565b606091505b005b6100c66100dc565b6040516100d39190610199565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081905092915050565b82818337600083830152505050565b60006101268385610100565b935061013383858461010b565b82840190509392505050565b600061014c82848661011a565b91508190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061018382610158565b9050919050565b61019381610178565b82525050565b60006020820190506101ae600083018461018a565b9291505056fea2646970667358221220a64ec62813afe9cb866a7dace124472c2540e633633aa2d876042db322053ae564736f6c63430008120033",
							"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xBE JUMPI PUSH2 0x30 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x7C SWAP3 SWAP2 SWAP1 PUSH2 0x13F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xB7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xBC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST STOP JUMPDEST PUSH2 0xC6 PUSH2 0xDC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD3 SWAP2 SWAP1 PUSH2 0x199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126 DUP4 DUP6 PUSH2 0x100 JUMP JUMPDEST SWAP4 POP PUSH2 0x133 DUP4 DUP6 DUP5 PUSH2 0x10B JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14C DUP3 DUP5 DUP7 PUSH2 0x11A JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x183 DUP3 PUSH2 0x158 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x193 DUP2 PUSH2 0x178 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x18A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 0x4E 0xC6 0x28 SGT 0xAF 0xE9 0xCB DUP7 PUSH11 0x7DACE124472C2540E63363 GASPRICE LOG2 0xD8 PUSH23 0x42DB322053AE564736F6C634300081200330000000000 ",
							"sourceMap": "217:311:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;429:11;453:8;;;;;;;;;;;445:30;;476:8;;445:40;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;242:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;7:147:1:-;108:11;145:3;130:18;;7:147;;;;:::o;160:146::-;257:6;252:3;247;234:30;298:1;289:6;284:3;280:16;273:27;160:146;;;:::o;334:327::-;448:3;469:88;550:6;545:3;469:88;:::i;:::-;462:95;;567:56;616:6;611:3;604:5;567:56;:::i;:::-;648:6;643:3;639:16;632:23;;334:327;;;;;:::o;667:291::-;807:3;829:103;928:3;919:6;911;829:103;:::i;:::-;822:110;;949:3;942:10;;667:291;;;;;:::o;964:126::-;1001:7;1041:42;1034:5;1030:54;1019:65;;964:126;;;:::o;1096:96::-;1133:7;1162:24;1180:5;1162:24;:::i;:::-;1151:35;;1096:96;;;:::o;1198:118::-;1285:24;1303:5;1285:24;:::i;:::-;1280:3;1273:37;1198:118;;:::o;1322:222::-;1415:4;1453:2;1442:9;1438:18;1430:26;;1466:71;1534:1;1523:9;1519:17;1510:6;1466:71;:::i;:::-;1322:222;;;;:::o"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "98000",
								"executionCost": "infinite",
								"totalCost": "infinite"
							},
							"external": {
								"": "infinite",
								"owner()": "2489"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 217,
									"end": 528,
									"name": "PUSH",
									"source": 0,
									"value": "80"
								},
								{
									"begin": 217,
									"end": 528,
									"name": "PUSH",
									"source": 0,
									"value": "40"
								},
								{
									"begin": 217,
									"end": 528,
									"name": "MSTORE",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "CALLVALUE",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "ISZERO",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "PUSH [tag]",
									"source": 0,
									"value": "1"
								},
								{
									"begin": 288,
									"end": 398,
									"name": "JUMPI",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "PUSH",
									"source": 0,
									"value": "0"
								},
								{
									"begin": 288,
									"end": 398,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "REVERT",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "tag",
									"source": 0,
									"value": "1"
								},
								{
									"begin": 288,
									"end": 398,
									"name": "JUMPDEST",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "POP",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "PUSH",
									"source": 0,
									"value": "40"
								},
								{
									"begin": 288,
									"end": 398,
									"name": "MLOAD",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "PUSHSIZE",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "CODESIZE",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "SUB",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "PUSHSIZE",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "DUP4",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "CODECOPY",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "ADD",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "PUSH",
									"source": 0,
									"value": "40"
								},
								{
									"begin": 288,
									"end": 398,
									"name": "MSTORE",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "ADD",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "SWAP1",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "PUSH [tag]",
									"source": 0,
									"value": "2"
								},
								{
									"begin": 288,
									"end": 398,
									"name": "SWAP2",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "SWAP1",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "PUSH [tag]",
									"source": 0,
									"value": "3"
								},
								{
									"begin": 288,
									"end": 398,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "tag",
									"source": 0,
									"value": "2"
								},
								{
									"begin": 288,
									"end": 398,
									"name": "JUMPDEST",
									"source": 0
								},
								{
									"begin": 352,
									"end": 368,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 332,
									"end": 340,
									"name": "PUSH",
									"source": 0,
									"value": "1"
								},
								{
									"begin": 332,
									"end": 340,
									"name": "PUSH",
									"source": 0,
									"value": "0"
								},
								{
									"begin": 332,
									"end": 369,
									"name": "PUSH",
									"source": 0,
									"value": "100"
								},
								{
									"begin": 332,
									"end": 369,
									"name": "EXP",
									"source": 0
								},
								{
									"begin": 332,
									"end": 369,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 332,
									"end": 369,
									"name": "SLOAD",
									"source": 0
								},
								{
									"begin": 332,
									"end": 369,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 332,
									"end": 369,
									"name": "PUSH",
									"source": 0,
									"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
								},
								{
									"begin": 332,
									"end": 369,
									"name": "MUL",
									"source": 0
								},
								{
									"begin": 332,
									"end": 369,
									"name": "NOT",
									"source": 0
								},
								{
									"begin": 332,
									"end": 369,
									"name": "AND",
									"source": 0
								},
								{
									"begin": 332,
									"end": 369,
									"name": "SWAP1",
									"source": 0
								},
								{
									"begin": 332,
									"end": 369,
									"name": "DUP4",
									"source": 0
								},
								{
									"begin": 332,
									"end": 369,
									"name": "PUSH",
									"source": 0,
									"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
								},
								{
									"begin": 332,
									"end": 369,
									"name": "AND",
									"source": 0
								},
								{
									"begin": 332,
									"end": 369,
									"name": "MUL",
									"source": 0
								},
								{
									"begin": 332,
									"end": 369,
									"name": "OR",
									"source": 0
								},
								{
									"begin": 332,
									"end": 369,
									"name": "SWAP1",
									"source": 0
								},
								{
									"begin": 332,
									"end": 369,
									"name": "SSTORE",
									"source": 0
								},
								{
									"begin": 332,
									"end": 369,
									"name": "POP",
									"source": 0
								},
								{
									"begin": 383,
									"end": 393,
									"name": "CALLER",
									"source": 0
								},
								{
									"begin": 375,
									"end": 380,
									"name": "PUSH",
									"source": 0,
									"value": "0"
								},
								{
									"begin": 375,
									"end": 380,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "PUSH",
									"source": 0,
									"value": "100"
								},
								{
									"begin": 375,
									"end": 393,
									"name": "EXP",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "SLOAD",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "PUSH",
									"source": 0,
									"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
								},
								{
									"begin": 375,
									"end": 393,
									"name": "MUL",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "NOT",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "AND",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "SWAP1",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "DUP4",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "PUSH",
									"source": 0,
									"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
								},
								{
									"begin": 375,
									"end": 393,
									"name": "AND",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "MUL",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "OR",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "SWAP1",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "SSTORE",
									"source": 0
								},
								{
									"begin": 375,
									"end": 393,
									"name": "POP",
									"source": 0
								},
								{
									"begin": 288,
									"end": 398,
									"name": "POP",
									"source": 0
								},
								{
									"begin": 217,
									"end": 528,
									"name": "PUSH [tag]",
									"source": 0,
									"value": "6"
								},
								{
									"begin": 217,
									"end": 528,
									"name": "JUMP",
									"source": 0
								},
								{
									"begin": 88,
									"end": 205,
									"name": "tag",
									"source": 1,
									"value": "8"
								},
								{
									"begin": 88,
									"end": 205,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 197,
									"end": 198,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 194,
									"end": 195,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 187,
									"end": 199,
									"name": "REVERT",
									"source": 1
								},
								{
									"begin": 334,
									"end": 460,
									"name": "tag",
									"source": 1,
									"value": "10"
								},
								{
									"begin": 334,
									"end": 460,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 371,
									"end": 378,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 411,
									"end": 453,
									"name": "PUSH",
									"source": 1,
									"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
								},
								{
									"begin": 404,
									"end": 409,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 400,
									"end": 454,
									"name": "AND",
									"source": 1
								},
								{
									"begin": 389,
									"end": 454,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 389,
									"end": 454,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 334,
									"end": 460,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 334,
									"end": 460,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 334,
									"end": 460,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 334,
									"end": 460,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 466,
									"end": 562,
									"name": "tag",
									"source": 1,
									"value": "11"
								},
								{
									"begin": 466,
									"end": 562,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 503,
									"end": 510,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 532,
									"end": 556,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "20"
								},
								{
									"begin": 550,
									"end": 555,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 532,
									"end": 556,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "10"
								},
								{
									"begin": 532,
									"end": 556,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 532,
									"end": 556,
									"name": "tag",
									"source": 1,
									"value": "20"
								},
								{
									"begin": 532,
									"end": 556,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 521,
									"end": 556,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 521,
									"end": 556,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 466,
									"end": 562,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 466,
									"end": 562,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 466,
									"end": 562,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 466,
									"end": 562,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 568,
									"end": 690,
									"name": "tag",
									"source": 1,
									"value": "12"
								},
								{
									"begin": 568,
									"end": 690,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 641,
									"end": 665,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "22"
								},
								{
									"begin": 659,
									"end": 664,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 641,
									"end": 665,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "11"
								},
								{
									"begin": 641,
									"end": 665,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 641,
									"end": 665,
									"name": "tag",
									"source": 1,
									"value": "22"
								},
								{
									"begin": 641,
									"end": 665,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 634,
									"end": 639,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 631,
									"end": 666,
									"name": "EQ",
									"source": 1
								},
								{
									"begin": 621,
									"end": 684,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "23"
								},
								{
									"begin": 621,
									"end": 684,
									"name": "JUMPI",
									"source": 1
								},
								{
									"begin": 680,
									"end": 681,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 677,
									"end": 678,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 670,
									"end": 682,
									"name": "REVERT",
									"source": 1
								},
								{
									"begin": 621,
									"end": 684,
									"name": "tag",
									"source": 1,
									"value": "23"
								},
								{
									"begin": 621,
									"end": 684,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 568,
									"end": 690,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 568,
									"end": 690,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 696,
									"end": 839,
									"name": "tag",
									"source": 1,
									"value": "13"
								},
								{
									"begin": 696,
									"end": 839,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 753,
									"end": 758,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 784,
									"end": 790,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 778,
									"end": 791,
									"name": "MLOAD",
									"source": 1
								},
								{
									"begin": 769,
									"end": 791,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": 769,
									"end": 791,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 800,
									"end": 833,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "25"
								},
								{
									"begin": 827,
									"end": 832,
									"name": "DUP2",
									"source": 1
								},
								{
									"begin": 800,
									"end": 833,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "12"
								},
								{
									"begin": 800,
									"end": 833,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 800,
									"end": 833,
									"name": "tag",
									"source": 1,
									"value": "25"
								},
								{
									"begin": 800,
									"end": 833,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 696,
									"end": 839,
									"name": "SWAP3",
									"source": 1
								},
								{
									"begin": 696,
									"end": 839,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 696,
									"end": 839,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 696,
									"end": 839,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 696,
									"end": 839,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 845,
									"end": 1196,
									"name": "tag",
									"source": 1,
									"value": "3"
								},
								{
									"begin": 845,
									"end": 1196,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 915,
									"end": 921,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 964,
									"end": 966,
									"name": "PUSH",
									"source": 1,
									"value": "20"
								},
								{
									"begin": 952,
									"end": 961,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 943,
									"end": 950,
									"name": "DUP5",
									"source": 1
								},
								{
									"begin": 939,
									"end": 962,
									"name": "SUB",
									"source": 1
								},
								{
									"begin": 935,
									"end": 967,
									"name": "SLT",
									"source": 1
								},
								{
									"begin": 932,
									"end": 1051,
									"name": "ISZERO",
									"source": 1
								},
								{
									"begin": 932,
									"end": 1051,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "27"
								},
								{
									"begin": 932,
									"end": 1051,
									"name": "JUMPI",
									"source": 1
								},
								{
									"begin": 970,
									"end": 1049,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "28"
								},
								{
									"begin": 970,
									"end": 1049,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "8"
								},
								{
									"begin": 970,
									"end": 1049,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 970,
									"end": 1049,
									"name": "tag",
									"source": 1,
									"value": "28"
								},
								{
									"begin": 970,
									"end": 1049,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 932,
									"end": 1051,
									"name": "tag",
									"source": 1,
									"value": "27"
								},
								{
									"begin": 932,
									"end": 1051,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 1090,
									"end": 1091,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 1115,
									"end": 1179,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "29"
								},
								{
									"begin": 1171,
									"end": 1178,
									"name": "DUP5",
									"source": 1
								},
								{
									"begin": 1162,
									"end": 1168,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 1151,
									"end": 1160,
									"name": "DUP6",
									"source": 1
								},
								{
									"begin": 1147,
									"end": 1169,
									"name": "ADD",
									"source": 1
								},
								{
									"begin": 1115,
									"end": 1179,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "13"
								},
								{
									"begin": 1115,
									"end": 1179,
									"jumpType": "[in]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 1115,
									"end": 1179,
									"name": "tag",
									"source": 1,
									"value": "29"
								},
								{
									"begin": 1115,
									"end": 1179,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 1105,
									"end": 1179,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 1105,
									"end": 1179,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 1061,
									"end": 1189,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 845,
									"end": 1196,
									"name": "SWAP3",
									"source": 1
								},
								{
									"begin": 845,
									"end": 1196,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 845,
									"end": 1196,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 845,
									"end": 1196,
									"name": "POP",
									"source": 1
								},
								{
									"begin": 845,
									"end": 1196,
									"jumpType": "[out]",
									"name": "JUMP",
									"source": 1
								},
								{
									"begin": 217,
									"end": 528,
									"name": "tag",
									"source": 0,
									"value": "6"
								},
								{
									"begin": 217,
									"end": 528,
									"name": "JUMPDEST",
									"source": 0
								},
								{
									"begin": 217,
									"end": 528,
									"name": "PUSH #[$]",
									"source": 0,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 217,
									"end": 528,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 217,
									"end": 528,
									"name": "PUSH [$]",
									"source": 0,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 217,
									"end": 528,
									"name": "PUSH",
									"source": 0,
									"value": "0"
								},
								{
									"begin": 217,
									"end": 528,
									"name": "CODECOPY",
									"source": 0
								},
								{
									"begin": 217,
									"end": 528,
									"name": "PUSH",
									"source": 0,
									"value": "0"
								},
								{
									"begin": 217,
									"end": 528,
									"name": "RETURN",
									"source": 0
								}
							],
							".data": {
								"0": {
									".auxdata": "a2646970667358221220a64ec62813afe9cb866a7dace124472c2540e633633aa2d876042db322053ae564736f6c63430008120033",
									".code": [
										{
											"begin": 217,
											"end": 528,
											"name": "PUSH",
											"source": 0,
											"value": "80"
										},
										{
											"begin": 217,
											"end": 528,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 217,
											"end": 528,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "CALLVALUE",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "ISZERO",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "1"
										},
										{
											"begin": 217,
											"end": 528,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 217,
											"end": 528,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "REVERT",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "tag",
											"source": 0,
											"value": "1"
										},
										{
											"begin": 217,
											"end": 528,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "POP",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "PUSH",
											"source": 0,
											"value": "4"
										},
										{
											"begin": 217,
											"end": 528,
											"name": "CALLDATASIZE",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "LT",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "2"
										},
										{
											"begin": 217,
											"end": 528,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 217,
											"end": 528,
											"name": "CALLDATALOAD",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "PUSH",
											"source": 0,
											"value": "E0"
										},
										{
											"begin": 217,
											"end": 528,
											"name": "SHR",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "PUSH",
											"source": 0,
											"value": "8DA5CB5B"
										},
										{
											"begin": 217,
											"end": 528,
											"name": "EQ",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "4"
										},
										{
											"begin": 217,
											"end": 528,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "3"
										},
										{
											"begin": 217,
											"end": 528,
											"name": "JUMP",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "tag",
											"source": 0,
											"value": "2"
										},
										{
											"begin": 217,
											"end": 528,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 217,
											"end": 528,
											"name": "tag",
											"source": 0,
											"value": "3"
										},
										{
											"begin": 217,
											"end": 528,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 429,
											"end": 440,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 453,
											"end": 461,
											"name": "PUSH",
											"source": 0,
											"value": "1"
										},
										{
											"begin": 453,
											"end": 461,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 453,
											"end": 461,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 453,
											"end": 461,
											"name": "SLOAD",
											"source": 0
										},
										{
											"begin": 453,
											"end": 461,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 453,
											"end": 461,
											"name": "PUSH",
											"source": 0,
											"value": "100"
										},
										{
											"begin": 453,
											"end": 461,
											"name": "EXP",
											"source": 0
										},
										{
											"begin": 453,
											"end": 461,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 453,
											"end": 461,
											"name": "DIV",
											"source": 0
										},
										{
											"begin": 453,
											"end": 461,
											"name": "PUSH",
											"source": 0,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 453,
											"end": 461,
											"name": "AND",
											"source": 0
										},
										{
											"begin": 445,
											"end": 475,
											"name": "PUSH",
											"source": 0,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 445,
											"end": 475,
											"name": "AND",
											"source": 0
										},
										{
											"begin": 476,
											"end": 484,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 476,
											"end": 484,
											"name": "CALLDATASIZE",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "MLOAD",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "7"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "SWAP3",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "SWAP2",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "8"
										},
										{
											"begin": 445,
											"end": 485,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "tag",
											"source": 0,
											"value": "7"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "MLOAD",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "DUP4",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "SUB",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "DUP2",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "DUP6",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "GAS",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "DELEGATECALL",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "SWAP2",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "POP",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "POP",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "RETURNDATASIZE",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "DUP2",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "EQ",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "11"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "MLOAD",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "SWAP2",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "POP",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH",
											"source": 0,
											"value": "1F"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "NOT",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH",
											"source": 0,
											"value": "3F"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "RETURNDATASIZE",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "ADD",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "AND",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "DUP3",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "ADD",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "RETURNDATASIZE",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "DUP3",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "RETURNDATASIZE",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH",
											"source": 0,
											"value": "20"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "DUP5",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "ADD",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "RETURNDATACOPY",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "10"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "JUMP",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "tag",
											"source": 0,
											"value": "11"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "PUSH",
											"source": 0,
											"value": "60"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "SWAP2",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "POP",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "tag",
											"source": 0,
											"value": "10"
										},
										{
											"begin": 445,
											"end": 485,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 445,
											"end": 485,
											"name": "STOP",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "tag",
											"source": 0,
											"value": "4"
										},
										{
											"begin": 242,
											"end": 262,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "13"
										},
										{
											"begin": 242,
											"end": 262,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "14"
										},
										{
											"begin": 242,
											"end": 262,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "tag",
											"source": 0,
											"value": "13"
										},
										{
											"begin": 242,
											"end": 262,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 242,
											"end": 262,
											"name": "MLOAD",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "15"
										},
										{
											"begin": 242,
											"end": 262,
											"name": "SWAP2",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "16"
										},
										{
											"begin": 242,
											"end": 262,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "tag",
											"source": 0,
											"value": "15"
										},
										{
											"begin": 242,
											"end": 262,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 242,
											"end": 262,
											"name": "MLOAD",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "SWAP2",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "SUB",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "RETURN",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "tag",
											"source": 0,
											"value": "14"
										},
										{
											"begin": 242,
											"end": 262,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 242,
											"end": 262,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "SLOAD",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "PUSH",
											"source": 0,
											"value": "100"
										},
										{
											"begin": 242,
											"end": 262,
											"name": "EXP",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "DIV",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "PUSH",
											"source": 0,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 242,
											"end": 262,
											"name": "AND",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"name": "DUP2",
											"source": 0
										},
										{
											"begin": 242,
											"end": 262,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 0
										},
										{
											"begin": 7,
											"end": 154,
											"name": "tag",
											"source": 1,
											"value": "17"
										},
										{
											"begin": 7,
											"end": 154,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 108,
											"end": 119,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 145,
											"end": 148,
											"name": "DUP2",
											"source": 1
										},
										{
											"begin": 130,
											"end": 148,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 130,
											"end": 148,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 7,
											"end": 154,
											"name": "SWAP3",
											"source": 1
										},
										{
											"begin": 7,
											"end": 154,
											"name": "SWAP2",
											"source": 1
										},
										{
											"begin": 7,
											"end": 154,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 7,
											"end": 154,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 7,
											"end": 154,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 160,
											"end": 306,
											"name": "tag",
											"source": 1,
											"value": "18"
										},
										{
											"begin": 160,
											"end": 306,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 257,
											"end": 263,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 252,
											"end": 255,
											"name": "DUP2",
											"source": 1
										},
										{
											"begin": 247,
											"end": 250,
											"name": "DUP4",
											"source": 1
										},
										{
											"begin": 234,
											"end": 264,
											"name": "CALLDATACOPY",
											"source": 1
										},
										{
											"begin": 298,
											"end": 299,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 289,
											"end": 295,
											"name": "DUP4",
											"source": 1
										},
										{
											"begin": 284,
											"end": 287,
											"name": "DUP4",
											"source": 1
										},
										{
											"begin": 280,
											"end": 296,
											"name": "ADD",
											"source": 1
										},
										{
											"begin": 273,
											"end": 300,
											"name": "MSTORE",
											"source": 1
										},
										{
											"begin": 160,
											"end": 306,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 160,
											"end": 306,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 160,
											"end": 306,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 160,
											"end": 306,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 334,
											"end": 661,
											"name": "tag",
											"source": 1,
											"value": "19"
										},
										{
											"begin": 334,
											"end": 661,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 448,
											"end": 451,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 469,
											"end": 557,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "27"
										},
										{
											"begin": 550,
											"end": 556,
											"name": "DUP4",
											"source": 1
										},
										{
											"begin": 545,
											"end": 548,
											"name": "DUP6",
											"source": 1
										},
										{
											"begin": 469,
											"end": 557,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "17"
										},
										{
											"begin": 469,
											"end": 557,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 469,
											"end": 557,
											"name": "tag",
											"source": 1,
											"value": "27"
										},
										{
											"begin": 469,
											"end": 557,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 462,
											"end": 557,
											"name": "SWAP4",
											"source": 1
										},
										{
											"begin": 462,
											"end": 557,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 567,
											"end": 623,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "28"
										},
										{
											"begin": 616,
											"end": 622,
											"name": "DUP4",
											"source": 1
										},
										{
											"begin": 611,
											"end": 614,
											"name": "DUP6",
											"source": 1
										},
										{
											"begin": 604,
											"end": 609,
											"name": "DUP5",
											"source": 1
										},
										{
											"begin": 567,
											"end": 623,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "18"
										},
										{
											"begin": 567,
											"end": 623,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 567,
											"end": 623,
											"name": "tag",
											"source": 1,
											"value": "28"
										},
										{
											"begin": 567,
											"end": 623,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 648,
											"end": 654,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 643,
											"end": 646,
											"name": "DUP5",
											"source": 1
										},
										{
											"begin": 639,
											"end": 655,
											"name": "ADD",
											"source": 1
										},
										{
											"begin": 632,
											"end": 655,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 632,
											"end": 655,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 334,
											"end": 661,
											"name": "SWAP4",
											"source": 1
										},
										{
											"begin": 334,
											"end": 661,
											"name": "SWAP3",
											"source": 1
										},
										{
											"begin": 334,
											"end": 661,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 334,
											"end": 661,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 334,
											"end": 661,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 334,
											"end": 661,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 667,
											"end": 958,
											"name": "tag",
											"source": 1,
											"value": "8"
										},
										{
											"begin": 667,
											"end": 958,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 807,
											"end": 810,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 829,
											"end": 932,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "30"
										},
										{
											"begin": 928,
											"end": 931,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 919,
											"end": 925,
											"name": "DUP5",
											"source": 1
										},
										{
											"begin": 911,
											"end": 917,
											"name": "DUP7",
											"source": 1
										},
										{
											"begin": 829,
											"end": 932,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "19"
										},
										{
											"begin": 829,
											"end": 932,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 829,
											"end": 932,
											"name": "tag",
											"source": 1,
											"value": "30"
										},
										{
											"begin": 829,
											"end": 932,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 822,
											"end": 932,
											"name": "SWAP2",
											"source": 1
										},
										{
											"begin": 822,
											"end": 932,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 949,
											"end": 952,
											"name": "DUP2",
											"source": 1
										},
										{
											"begin": 942,
											"end": 952,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 942,
											"end": 952,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 667,
											"end": 958,
											"name": "SWAP4",
											"source": 1
										},
										{
											"begin": 667,
											"end": 958,
											"name": "SWAP3",
											"source": 1
										},
										{
											"begin": 667,
											"end": 958,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 667,
											"end": 958,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 667,
											"end": 958,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 667,
											"end": 958,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 964,
											"end": 1090,
											"name": "tag",
											"source": 1,
											"value": "20"
										},
										{
											"begin": 964,
											"end": 1090,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 1001,
											"end": 1008,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 1041,
											"end": 1083,
											"name": "PUSH",
											"source": 1,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 1034,
											"end": 1039,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 1030,
											"end": 1084,
											"name": "AND",
											"source": 1
										},
										{
											"begin": 1019,
											"end": 1084,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 1019,
											"end": 1084,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 964,
											"end": 1090,
											"name": "SWAP2",
											"source": 1
										},
										{
											"begin": 964,
											"end": 1090,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 964,
											"end": 1090,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 964,
											"end": 1090,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 1096,
											"end": 1192,
											"name": "tag",
											"source": 1,
											"value": "21"
										},
										{
											"begin": 1096,
											"end": 1192,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 1133,
											"end": 1140,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 1162,
											"end": 1186,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "33"
										},
										{
											"begin": 1180,
											"end": 1185,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 1162,
											"end": 1186,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "20"
										},
										{
											"begin": 1162,
											"end": 1186,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 1162,
											"end": 1186,
											"name": "tag",
											"source": 1,
											"value": "33"
										},
										{
											"begin": 1162,
											"end": 1186,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 1151,
											"end": 1186,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 1151,
											"end": 1186,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 1096,
											"end": 1192,
											"name": "SWAP2",
											"source": 1
										},
										{
											"begin": 1096,
											"end": 1192,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 1096,
											"end": 1192,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 1096,
											"end": 1192,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 1198,
											"end": 1316,
											"name": "tag",
											"source": 1,
											"value": "22"
										},
										{
											"begin": 1198,
											"end": 1316,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 1285,
											"end": 1309,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "35"
										},
										{
											"begin": 1303,
											"end": 1308,
											"name": "DUP2",
											"source": 1
										},
										{
											"begin": 1285,
											"end": 1309,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "21"
										},
										{
											"begin": 1285,
											"end": 1309,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 1285,
											"end": 1309,
											"name": "tag",
											"source": 1,
											"value": "35"
										},
										{
											"begin": 1285,
											"end": 1309,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 1280,
											"end": 1283,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 1273,
											"end": 1310,
											"name": "MSTORE",
											"source": 1
										},
										{
											"begin": 1198,
											"end": 1316,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 1198,
											"end": 1316,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 1198,
											"end": 1316,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 1322,
											"end": 1544,
											"name": "tag",
											"source": 1,
											"value": "16"
										},
										{
											"begin": 1322,
											"end": 1544,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 1415,
											"end": 1419,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 1453,
											"end": 1455,
											"name": "PUSH",
											"source": 1,
											"value": "20"
										},
										{
											"begin": 1442,
											"end": 1451,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 1438,
											"end": 1456,
											"name": "ADD",
											"source": 1
										},
										{
											"begin": 1430,
											"end": 1456,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 1430,
											"end": 1456,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 1466,
											"end": 1537,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "37"
										},
										{
											"begin": 1534,
											"end": 1535,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 1523,
											"end": 1532,
											"name": "DUP4",
											"source": 1
										},
										{
											"begin": 1519,
											"end": 1536,
											"name": "ADD",
											"source": 1
										},
										{
											"begin": 1510,
											"end": 1516,
											"name": "DUP5",
											"source": 1
										},
										{
											"begin": 1466,
											"end": 1537,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "22"
										},
										{
											"begin": 1466,
											"end": 1537,
											"jumpType": "[in]",
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 1466,
											"end": 1537,
											"name": "tag",
											"source": 1,
											"value": "37"
										},
										{
											"begin": 1466,
											"end": 1537,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 1322,
											"end": 1544,
											"name": "SWAP3",
											"source": 1
										},
										{
											"begin": 1322,
											"end": 1544,
											"name": "SWAP2",
											"source": 1
										},
										{
											"begin": 1322,
											"end": 1544,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 1322,
											"end": 1544,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 1322,
											"end": 1544,
											"jumpType": "[out]",
											"name": "JUMP",
											"source": 1
										}
									]
								}
							},
							"sourceList": [
								"contracts/ethernaut/delegation.sol",
								"#utility.yul"
							]
						},
						"methodIdentifiers": {
							"owner()": "8da5cb5b"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegateAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ethernaut/delegation.sol\":\"Delegation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/ethernaut/delegation.sol\":{\"keccak256\":\"0x43f9c25f4cad214f0730f685e35d8450575ed2037acad4a3e391e466063a7918\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://462e1967968e5f4e911875790251114f7b9fffdf89ace399cad458003f158eeb\",\"dweb:/ipfs/QmS2VqAtWjRhX5kyvLDSvffK9NmqyRgedH4SxHPAntV41N\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [
							{
								"astId": 25,
								"contract": "contracts/ethernaut/delegation.sol:Delegation",
								"label": "owner",
								"offset": 0,
								"slot": "0",
								"type": "t_address"
							},
							{
								"astId": 28,
								"contract": "contracts/ethernaut/delegation.sol:Delegation",
								"label": "delegate",
								"offset": 0,
								"slot": "1",
								"type": "t_contract(Delegate)23"
							}
						],
						"types": {
							"t_address": {
								"encoding": "inplace",
								"label": "address",
								"numberOfBytes": "20"
							},
							"t_contract(Delegate)23": {
								"encoding": "inplace",
								"label": "contract Delegate",
								"numberOfBytes": "20"
							}
						}
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			}
		},
		"sources": {
			"contracts/ethernaut/delegation.sol": {
				"ast": {
					"absolutePath": "contracts/ethernaut/delegation.sol",
					"exportedSymbols": {
						"Delegate": [
							23
						],
						"Delegation": [
							66
						]
					},
					"id": 67,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 1,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".0"
							],
							"nodeType": "PragmaDirective",
							"src": "32:23:0"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "Delegate",
							"contractDependencies": [],
							"contractKind": "contract",
							"fullyImplemented": true,
							"id": 23,
							"linearizedBaseContracts": [
								23
							],
							"name": "Delegate",
							"nameLocation": "66:8:0",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"constant": false,
									"functionSelector": "8da5cb5b",
									"id": 3,
									"mutability": "mutable",
									"name": "owner",
									"nameLocation": "95:5:0",
									"nodeType": "VariableDeclaration",
									"scope": 23,
									"src": "80:20:0",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_address",
										"typeString": "address"
									},
									"typeName": {
										"id": 2,
										"name": "address",
										"nodeType": "ElementaryTypeName",
										"src": "80:7:0",
										"stateMutability": "nonpayable",
										"typeDescriptions": {
											"typeIdentifier": "t_address",
											"typeString": "address"
										}
									},
									"visibility": "public"
								},
								{
									"body": {
										"id": 12,
										"nodeType": "Block",
										"src": "133:25:0",
										"statements": [
											{
												"expression": {
													"id": 10,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 8,
														"name": "owner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 3,
														"src": "139:5:0",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 9,
														"name": "_owner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 5,
														"src": "147:6:0",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "139:14:0",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 11,
												"nodeType": "ExpressionStatement",
												"src": "139:14:0"
											}
										]
									},
									"id": 13,
									"implemented": true,
									"kind": "constructor",
									"modifiers": [],
									"name": "",
									"nameLocation": "-1:-1:-1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5,
												"mutability": "mutable",
												"name": "_owner",
												"nameLocation": "125:6:0",
												"nodeType": "VariableDeclaration",
												"scope": 13,
												"src": "117:14:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "117:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "116:16:0"
									},
									"returnParameters": {
										"id": 7,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "133:0:0"
									},
									"scope": 23,
									"src": "105:53:0",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 21,
										"nodeType": "Block",
										"src": "184:29:0",
										"statements": [
											{
												"expression": {
													"id": 19,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 16,
														"name": "owner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 3,
														"src": "190:5:0",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"expression": {
															"id": 17,
															"name": "msg",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4294967281,
															"src": "198:3:0",
															"typeDescriptions": {
																"typeIdentifier": "t_magic_message",
																"typeString": "msg"
															}
														},
														"id": 18,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "202:6:0",
														"memberName": "sender",
														"nodeType": "MemberAccess",
														"src": "198:10:0",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "190:18:0",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 20,
												"nodeType": "ExpressionStatement",
												"src": "190:18:0"
											}
										]
									},
									"functionSelector": "dd365b8b",
									"id": 22,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "pwn",
									"nameLocation": "171:3:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 14,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "174:2:0"
									},
									"returnParameters": {
										"id": 15,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "184:0:0"
									},
									"scope": 23,
									"src": "162:51:0",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "public"
								}
							],
							"scope": 67,
							"src": "57:158:0",
							"usedErrors": []
						},
						{
							"abstract": false,
							"baseContracts": [],
							"canonicalName": "Delegation",
							"contractDependencies": [],
							"contractKind": "contract",
							"fullyImplemented": true,
							"id": 66,
							"linearizedBaseContracts": [
								66
							],
							"name": "Delegation",
							"nameLocation": "226:10:0",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"constant": false,
									"functionSelector": "8da5cb5b",
									"id": 25,
									"mutability": "mutable",
									"name": "owner",
									"nameLocation": "257:5:0",
									"nodeType": "VariableDeclaration",
									"scope": 66,
									"src": "242:20:0",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_address",
										"typeString": "address"
									},
									"typeName": {
										"id": 24,
										"name": "address",
										"nodeType": "ElementaryTypeName",
										"src": "242:7:0",
										"stateMutability": "nonpayable",
										"typeDescriptions": {
											"typeIdentifier": "t_address",
											"typeString": "address"
										}
									},
									"visibility": "public"
								},
								{
									"constant": false,
									"id": 28,
									"mutability": "mutable",
									"name": "delegate",
									"nameLocation": "275:8:0",
									"nodeType": "VariableDeclaration",
									"scope": 66,
									"src": "266:17:0",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_contract$_Delegate_$23",
										"typeString": "contract Delegate"
									},
									"typeName": {
										"id": 27,
										"nodeType": "UserDefinedTypeName",
										"pathNode": {
											"id": 26,
											"name": "Delegate",
											"nameLocations": [
												"266:8:0"
											],
											"nodeType": "IdentifierPath",
											"referencedDeclaration": 23,
											"src": "266:8:0"
										},
										"referencedDeclaration": 23,
										"src": "266:8:0",
										"typeDescriptions": {
											"typeIdentifier": "t_contract$_Delegate_$23",
											"typeString": "contract Delegate"
										}
									},
									"visibility": "internal"
								},
								{
									"body": {
										"id": 44,
										"nodeType": "Block",
										"src": "326:72:0",
										"statements": [
											{
												"expression": {
													"id": 37,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 33,
														"name": "delegate",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 28,
														"src": "332:8:0",
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_Delegate_$23",
															"typeString": "contract Delegate"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"id": 35,
																"name": "_delegateAddress",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 30,
																"src": "352:16:0",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 34,
															"name": "Delegate",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 23,
															"src": "343:8:0",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_contract$_Delegate_$23_$",
																"typeString": "type(contract Delegate)"
															}
														},
														"id": 36,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"nameLocations": [],
														"names": [],
														"nodeType": "FunctionCall",
														"src": "343:26:0",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_contract$_Delegate_$23",
															"typeString": "contract Delegate"
														}
													},
													"src": "332:37:0",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_Delegate_$23",
														"typeString": "contract Delegate"
													}
												},
												"id": 38,
												"nodeType": "ExpressionStatement",
												"src": "332:37:0"
											},
											{
												"expression": {
													"id": 42,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 39,
														"name": "owner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 25,
														"src": "375:5:0",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"expression": {
															"id": 40,
															"name": "msg",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4294967281,
															"src": "383:3:0",
															"typeDescriptions": {
																"typeIdentifier": "t_magic_message",
																"typeString": "msg"
															}
														},
														"id": 41,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "387:6:0",
														"memberName": "sender",
														"nodeType": "MemberAccess",
														"src": "383:10:0",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "375:18:0",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 43,
												"nodeType": "ExpressionStatement",
												"src": "375:18:0"
											}
										]
									},
									"id": 45,
									"implemented": true,
									"kind": "constructor",
									"modifiers": [],
									"name": "",
									"nameLocation": "-1:-1:-1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 31,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 30,
												"mutability": "mutable",
												"name": "_delegateAddress",
												"nameLocation": "308:16:0",
												"nodeType": "VariableDeclaration",
												"scope": 45,
												"src": "300:24:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 29,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "300:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "299:26:0"
									},
									"returnParameters": {
										"id": 32,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "326:0:0"
									},
									"scope": 66,
									"src": "288:110:0",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 64,
										"nodeType": "Block",
										"src": "422:104:0",
										"statements": [
											{
												"assignments": [
													49,
													null
												],
												"declarations": [
													{
														"constant": false,
														"id": 49,
														"mutability": "mutable",
														"name": "result",
														"nameLocation": "434:6:0",
														"nodeType": "VariableDeclaration",
														"scope": 64,
														"src": "429:11:0",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"typeName": {
															"id": 48,
															"name": "bool",
															"nodeType": "ElementaryTypeName",
															"src": "429:4:0",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"visibility": "internal"
													},
													null
												],
												"id": 58,
												"initialValue": {
													"arguments": [
														{
															"expression": {
																"id": 55,
																"name": "msg",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967281,
																"src": "476:3:0",
																"typeDescriptions": {
																	"typeIdentifier": "t_magic_message",
																	"typeString": "msg"
																}
															},
															"id": 56,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberLocation": "480:4:0",
															"memberName": "data",
															"nodeType": "MemberAccess",
															"src": "476:8:0",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_calldata_ptr",
																"typeString": "bytes calldata"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_calldata_ptr",
																"typeString": "bytes calldata"
															}
														],
														"expression": {
															"arguments": [
																{
																	"id": 52,
																	"name": "delegate",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 28,
																	"src": "453:8:0",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_Delegate_$23",
																		"typeString": "contract Delegate"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_Delegate_$23",
																		"typeString": "contract Delegate"
																	}
																],
																"id": 51,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "445:7:0",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 50,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "445:7:0",
																	"typeDescriptions": {}
																}
															},
															"id": 53,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"nameLocations": [],
															"names": [],
															"nodeType": "FunctionCall",
															"src": "445:17:0",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"id": 54,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberLocation": "463:12:0",
														"memberName": "delegatecall",
														"nodeType": "MemberAccess",
														"src": "445:30:0",
														"typeDescriptions": {
															"typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
															"typeString": "function (bytes memory) returns (bool,bytes memory)"
														}
													},
													"id": 57,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"nameLocations": [],
													"names": [],
													"nodeType": "FunctionCall",
													"src": "445:40:0",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
														"typeString": "tuple(bool,bytes memory)"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "428:57:0"
											},
											{
												"condition": {
													"id": 59,
													"name": "result",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 49,
													"src": "495:6:0",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 63,
												"nodeType": "IfStatement",
												"src": "491:31:0",
												"trueBody": {
													"id": 62,
													"nodeType": "Block",
													"src": "503:19:0",
													"statements": [
														{
															"expression": {
																"id": 60,
																"name": "this",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967268,
																"src": "511:4:0",
																"typeDescriptions": {
																	"typeIdentifier": "t_contract$_Delegation_$66",
																	"typeString": "contract Delegation"
																}
															},
															"id": 61,
															"nodeType": "ExpressionStatement",
															"src": "511:4:0"
														}
													]
												}
											}
										]
									},
									"id": 65,
									"implemented": true,
									"kind": "fallback",
									"modifiers": [],
									"name": "",
									"nameLocation": "-1:-1:-1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 46,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "410:2:0"
									},
									"returnParameters": {
										"id": 47,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "422:0:0"
									},
									"scope": 66,
									"src": "402:124:0",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 67,
							"src": "217:311:0",
							"usedErrors": []
						}
					],
					"src": "32:496:0"
				},
				"id": 0
			}
		}
	}
}