diff --git a/Ep1/artifacts/Work.json b/Ep1/artifacts/Work.json index dd02cc7..06091bc 100644 --- a/Ep1/artifacts/Work.json +++ b/Ep1/artifacts/Work.json @@ -41,9 +41,9 @@ }, "generatedSources": [], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060008081905550610176806100276000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80631b9265b81461003b5780632630dd3a14610059575b600080fd5b610043610063565b6040516100509190610096565b60405180910390f35b61006161006c565b005b60008054905090565b600160008082825461007e91906100b1565b92505081905550565b61009081610107565b82525050565b60006020820190506100ab6000830184610087565b92915050565b60006100bc82610107565b91506100c783610107565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156100fc576100fb610111565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212205519110aefbb3837bd9cc14a878c229d626ed6fda0e9c0bbe16af25725c5384364736f6c63430008070033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 DUP2 SWAP1 SSTORE POP PUSH2 0x176 DUP1 PUSH2 0x27 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 0x1B9265B8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x2630DD3A EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x7E SWAP2 SWAP1 PUSH2 0xB1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x90 DUP2 PUSH2 0x107 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC DUP3 PUSH2 0x107 JUMP JUMPDEST SWAP2 POP PUSH2 0xC7 DUP4 PUSH2 0x107 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xFC JUMPI PUSH2 0xFB PUSH2 0x111 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SSTORE NOT GT EXP 0xEF 0xBB CODESIZE CALLDATACOPY 0xBD SWAP13 0xC1 0x4A DUP8 DUP13 0x22 SWAP14 PUSH3 0x6ED6FD LOG0 0xE9 0xC0 0xBB 0xE1 PUSH11 0xF25725C5384364736F6C63 NUMBER STOP ADDMOD SMOD STOP CALLER ", - "sourceMap": "60:274:0:-:0;;;143:43;;;;;;;;;;177:1;168:6;:10;;;;60:274;;;;;;" + "object": "608060405234801561001057600080fd5b5060008081905550610176806100276000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80631b9265b81461003b5780632630dd3a14610059575b600080fd5b610043610063565b6040516100509190610096565b60405180910390f35b61006161006c565b005b60008054905090565b600160008082825461007e91906100b1565b92505081905550565b61009081610107565b82525050565b60006020820190506100ab6000830184610087565b92915050565b60006100bc82610107565b91506100c783610107565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156100fc576100fb610111565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212202c392d8e6d353efeebe211265316085d0f1c5ba0659d4b6db48a323701fa52b464736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 DUP2 SWAP1 SSTORE POP PUSH2 0x176 DUP1 PUSH2 0x27 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 0x1B9265B8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x2630DD3A EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x7E SWAP2 SWAP1 PUSH2 0xB1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x90 DUP2 PUSH2 0x107 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC DUP3 PUSH2 0x107 JUMP JUMPDEST SWAP2 POP PUSH2 0xC7 DUP4 PUSH2 0x107 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xFC JUMPI PUSH2 0xFB PUSH2 0x111 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2C CODECOPY 0x2D DUP15 PUSH14 0x353EFEEBE211265316085D0F1C5B LOG0 PUSH6 0x9D4B6DB48A32 CALLDATACOPY ADD STATICCALL MSTORE 0xB4 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:362:0:-:0;;;171:43;;;;;;;;;;205:1;196:6;:10;;;;62:362;;;;;;" }, "deployedBytecode": { "functionDebugData": { @@ -600,9 +600,9 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80631b9265b81461003b5780632630dd3a14610059575b600080fd5b610043610063565b6040516100509190610096565b60405180910390f35b61006161006c565b005b60008054905090565b600160008082825461007e91906100b1565b92505081905550565b61009081610107565b82525050565b60006020820190506100ab6000830184610087565b92915050565b60006100bc82610107565b91506100c783610107565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156100fc576100fb610111565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212205519110aefbb3837bd9cc14a878c229d626ed6fda0e9c0bbe16af25725c5384364736f6c63430008070033", - "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 0x1B9265B8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x2630DD3A EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x7E SWAP2 SWAP1 PUSH2 0xB1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x90 DUP2 PUSH2 0x107 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC DUP3 PUSH2 0x107 JUMP JUMPDEST SWAP2 POP PUSH2 0xC7 DUP4 PUSH2 0x107 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xFC JUMPI PUSH2 0xFB PUSH2 0x111 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SSTORE NOT GT EXP 0xEF 0xBB CODESIZE CALLDATACOPY 0xBD SWAP13 0xC1 0x4A DUP8 DUP13 0x22 SWAP14 PUSH3 0x6ED6FD LOG0 0xE9 0xC0 0xBB 0xE1 PUSH11 0xF25725C5384364736F6C63 NUMBER STOP ADDMOD SMOD STOP CALLER ", - "sourceMap": "60:274:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;257:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;194:55;;;:::i;:::-;;257:74;293:4;317:6;;310:13;;257:74;:::o;194:55::-;240:1;230:6;;:11;;;;;;;:::i;:::-;;;;;;;;194:55::o;7:118:1:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;7:118;;:::o;131:222::-;224:4;262:2;251:9;247:18;239:26;;275:71;343:1;332:9;328:17;319:6;275:71;:::i;:::-;131:222;;;;:::o;359:305::-;399:3;418:20;436:1;418:20;:::i;:::-;413:25;;452:20;470:1;452:20;:::i;:::-;447:25;;606:1;538:66;534:74;531:1;528:81;525:107;;;612:18;;:::i;:::-;525:107;656:1;653;649:9;642:16;;359:305;;;;:::o;670:77::-;707:7;736:5;725:16;;670:77;;;:::o;753:180::-;801:77;798:1;791:88;898:4;895:1;888:15;922:4;919:1;912:15" + "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80631b9265b81461003b5780632630dd3a14610059575b600080fd5b610043610063565b6040516100509190610096565b60405180910390f35b61006161006c565b005b60008054905090565b600160008082825461007e91906100b1565b92505081905550565b61009081610107565b82525050565b60006020820190506100ab6000830184610087565b92915050565b60006100bc82610107565b91506100c783610107565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156100fc576100fb610111565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212202c392d8e6d353efeebe211265316085d0f1c5ba0659d4b6db48a323701fa52b464736f6c63430008070033", + "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 0x1B9265B8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x2630DD3A EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x7E SWAP2 SWAP1 PUSH2 0xB1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x90 DUP2 PUSH2 0x107 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC DUP3 PUSH2 0x107 JUMP JUMPDEST SWAP2 POP PUSH2 0xC7 DUP4 PUSH2 0x107 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xFC JUMPI PUSH2 0xFB PUSH2 0x111 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2C CODECOPY 0x2D DUP15 PUSH14 0x353EFEEBE211265316085D0F1C5B LOG0 PUSH6 0x9D4B6DB48A32 CALLDATACOPY ADD STATICCALL MSTORE 0xB4 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:362:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;347:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;265:55;;;:::i;:::-;;347:74;383:4;407:6;;400:13;;347:74;:::o;265:55::-;311:1;301:6;;:11;;;;;;;:::i;:::-;;;;;;;;265:55::o;7:118:1:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;7:118;;:::o;131:222::-;224:4;262:2;251:9;247:18;239:26;;275:71;343:1;332:9;328:17;319:6;275:71;:::i;:::-;131:222;;;;:::o;359:305::-;399:3;418:20;436:1;418:20;:::i;:::-;413:25;;452:20;470:1;452:20;:::i;:::-;447:25;;606:1;538:66;534:74;531:1;528:81;525:107;;;612:18;;:::i;:::-;525:107;656:1;653;649:9;642:16;;359:305;;;;:::o;670:77::-;707:7;736:5;725:16;;670:77;;;:::o;753:180::-;801:77;798:1;791:88;898:4;895:1;888:15;922:4;919:1;912:15" }, "gasEstimates": { "creation": { diff --git a/Ep1/artifacts/Work_metadata.json b/Ep1/artifacts/Work_metadata.json index 40fb7d6..ac4bbbc 100644 --- a/Ep1/artifacts/Work_metadata.json +++ b/Ep1/artifacts/Work_metadata.json @@ -44,7 +44,7 @@ }, "settings": { "compilationTarget": { - "part1/work.sol": "Work" + "Ep1/work.sol": "Work" }, "evmVersion": "london", "libraries": {}, @@ -58,12 +58,12 @@ "remappings": [] }, "sources": { - "part1/work.sol": { - "keccak256": "0x6632526d7e09d58521571db62b6d3607df5047da581f7623ede839bd5de944d0", + "Ep1/work.sol": { + "keccak256": "0x62dede35857b1ccb4cc7883fcb8d577a72058f9718dff8a466d150e6a8523315", "license": "MIT", "urls": [ - "bzz-raw://e439b010af869c6df9a60311818e88fa2f74c14ffc7f02c109fd4f870b118229", - "dweb:/ipfs/QmRxRHcWNp2SrcfSHpVHUycFbw2tYkFp1kTGTEB4Nmhz8a" + "bzz-raw://533ef26c7819e5d1c754848d246c64e71342ec4276a32ebeee3930ffc58c6342", + "dweb:/ipfs/QmaGr1avmue3eK168cEFsQEqNGEhMTc6WmwGL8R6T5EuHG" ] } }, diff --git a/Ep1/artifacts/build-info/60505094554d380d71fcf31ddb58dd2f.json b/Ep1/artifacts/build-info/60505094554d380d71fcf31ddb58dd2f.json new file mode 100644 index 0000000..8a91d6f --- /dev/null +++ b/Ep1/artifacts/build-info/60505094554d380d71fcf31ddb58dd2f.json @@ -0,0 +1,2488 @@ +{ + "id": "60505094554d380d71fcf31ddb58dd2f", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep1/work.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7;\r\n\r\ncontract Work {\r\n uint salary;\r\n\r\n // Create a new work contract to initialize the salary\r\n constructor() {\r\n salary = 0;\r\n }\r\n\r\n // Increase your salary once you work\r\n function doWork() public {\r\n salary += 1;\r\n }\r\n\r\n // Pay salary\r\n function pay() public view returns (uint) {\r\n return salary;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep1/work.sol": { + "Work": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "doWork", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "pay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep1/work.sol\":60:414 contract Work {\r... */\n mstore(0x40, 0x80)\n /* \"Ep1/work.sol\":161:204 constructor() {\r... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"Ep1/work.sol\":195:196 0 */\n 0x00\n /* \"Ep1/work.sol\":186:192 salary */\n dup1\n /* \"Ep1/work.sol\":186:196 salary = 0 */\n dup2\n swap1\n sstore\n pop\n /* \"Ep1/work.sol\":60:414 contract Work {\r... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep1/work.sol\":60:414 contract Work {\r... */\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 0x1b9265b8\n eq\n tag_3\n jumpi\n dup1\n 0x2630dd3a\n eq\n tag_4\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep1/work.sol\":337:411 function pay() public view returns (uint) {\r... */\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 /* \"Ep1/work.sol\":255:310 function doWork() public {\r... */\n tag_4:\n tag_9\n tag_10\n jump\t// in\n tag_9:\n stop\n /* \"Ep1/work.sol\":337:411 function pay() public view returns (uint) {\r... */\n tag_6:\n /* \"Ep1/work.sol\":373:377 uint */\n 0x00\n /* \"Ep1/work.sol\":397:403 salary */\n dup1\n sload\n /* \"Ep1/work.sol\":390:403 return salary */\n swap1\n pop\n /* \"Ep1/work.sol\":337:411 function pay() public view returns (uint) {\r... */\n swap1\n jump\t// out\n /* \"Ep1/work.sol\":255:310 function doWork() public {\r... */\n tag_10:\n /* \"Ep1/work.sol\":301:302 1 */\n 0x01\n /* \"Ep1/work.sol\":291:297 salary */\n 0x00\n dup1\n /* \"Ep1/work.sol\":291:302 salary += 1 */\n dup3\n dup3\n sload\n tag_13\n swap2\n swap1\n tag_14\n jump\t// in\n tag_13:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"Ep1/work.sol\":255:310 function doWork() public {\r... */\n jump\t// out\n /* \"#utility.yul\":7:125 */\n tag_16:\n /* \"#utility.yul\":94:118 */\n tag_18\n /* \"#utility.yul\":112:117 */\n dup2\n /* \"#utility.yul\":94:118 */\n tag_19\n jump\t// in\n tag_18:\n /* \"#utility.yul\":89:92 */\n dup3\n /* \"#utility.yul\":82:119 */\n mstore\n /* \"#utility.yul\":7:125 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":131:353 */\n tag_8:\n /* \"#utility.yul\":224:228 */\n 0x00\n /* \"#utility.yul\":262:264 */\n 0x20\n /* \"#utility.yul\":251:260 */\n dup3\n /* \"#utility.yul\":247:265 */\n add\n /* \"#utility.yul\":239:265 */\n swap1\n pop\n /* \"#utility.yul\":275:346 */\n tag_21\n /* \"#utility.yul\":343:344 */\n 0x00\n /* \"#utility.yul\":332:341 */\n dup4\n /* \"#utility.yul\":328:345 */\n add\n /* \"#utility.yul\":319:325 */\n dup5\n /* \"#utility.yul\":275:346 */\n tag_16\n jump\t// in\n tag_21:\n /* \"#utility.yul\":131:353 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":359:664 */\n tag_14:\n /* \"#utility.yul\":399:402 */\n 0x00\n /* \"#utility.yul\":418:438 */\n tag_23\n /* \"#utility.yul\":436:437 */\n dup3\n /* \"#utility.yul\":418:438 */\n tag_19\n jump\t// in\n tag_23:\n /* \"#utility.yul\":413:438 */\n swap2\n pop\n /* \"#utility.yul\":452:472 */\n tag_24\n /* \"#utility.yul\":470:471 */\n dup4\n /* \"#utility.yul\":452:472 */\n tag_19\n jump\t// in\n tag_24:\n /* \"#utility.yul\":447:472 */\n swap3\n pop\n /* \"#utility.yul\":606:607 */\n dup3\n /* \"#utility.yul\":538:604 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":534:608 */\n sub\n /* \"#utility.yul\":531:532 */\n dup3\n /* \"#utility.yul\":528:609 */\n gt\n /* \"#utility.yul\":525:632 */\n iszero\n tag_25\n jumpi\n /* \"#utility.yul\":612:630 */\n tag_26\n tag_27\n jump\t// in\n tag_26:\n /* \"#utility.yul\":525:632 */\n tag_25:\n /* \"#utility.yul\":656:657 */\n dup3\n /* \"#utility.yul\":653:654 */\n dup3\n /* \"#utility.yul\":649:658 */\n add\n /* \"#utility.yul\":642:658 */\n swap1\n pop\n /* \"#utility.yul\":359:664 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":670:747 */\n tag_19:\n /* \"#utility.yul\":707:714 */\n 0x00\n /* \"#utility.yul\":736:741 */\n dup2\n /* \"#utility.yul\":725:741 */\n swap1\n pop\n /* \"#utility.yul\":670:747 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":753:933 */\n tag_27:\n /* \"#utility.yul\":801:878 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":798:799 */\n 0x00\n /* \"#utility.yul\":791:879 */\n mstore\n /* \"#utility.yul\":898:902 */\n 0x11\n /* \"#utility.yul\":895:896 */\n 0x04\n /* \"#utility.yul\":888:903 */\n mstore\n /* \"#utility.yul\":922:926 */\n 0x24\n /* \"#utility.yul\":919:920 */\n 0x00\n /* \"#utility.yul\":912:927 */\n revert\n\n auxdata: 0xa2646970667358221220b48807436ce933954e1810960780c31d44fbbd9bfd5fc1d4c71075c03025201664736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": { + "@_11": { + "entryPoint": null, + "id": 11, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060008081905550610176806100276000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80631b9265b81461003b5780632630dd3a14610059575b600080fd5b610043610063565b6040516100509190610096565b60405180910390f35b61006161006c565b005b60008054905090565b600160008082825461007e91906100b1565b92505081905550565b61009081610107565b82525050565b60006020820190506100ab6000830184610087565b92915050565b60006100bc82610107565b91506100c783610107565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156100fc576100fb610111565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220b48807436ce933954e1810960780c31d44fbbd9bfd5fc1d4c71075c03025201664736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 DUP2 SWAP1 SSTORE POP PUSH2 0x176 DUP1 PUSH2 0x27 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 0x1B9265B8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x2630DD3A EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x7E SWAP2 SWAP1 PUSH2 0xB1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x90 DUP2 PUSH2 0x107 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC DUP3 PUSH2 0x107 JUMP JUMPDEST SWAP2 POP PUSH2 0xC7 DUP4 PUSH2 0x107 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xFC JUMPI PUSH2 0xFB PUSH2 0x111 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB4 DUP9 SMOD NUMBER PUSH13 0xE933954E1810960780C31D44FB 0xBD SWAP12 REVERT 0x5F 0xC1 0xD4 0xC7 LT PUSH22 0xC03025201664736F6C63430008070033000000000000 ", + "sourceMap": "60:354:0:-:0;;;161:43;;;;;;;;;;195:1;186:6;:10;;;;60:354;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@doWork_19": { + "entryPoint": 108, + "id": 19, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@pay_27": { + "entryPoint": 99, + "id": 27, + "parameterSlots": 0, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 135, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 150, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 177, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 263, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 273, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:936:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "72:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "89:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "112:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "94:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "94:24:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "82:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "82:37:1" + }, + "nodeType": "YulExpressionStatement", + "src": "82:37:1" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "60:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "67:3:1", + "type": "" + } + ], + "src": "7:118:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "229:124:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "239:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "251:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "262:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "247:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "247:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "239:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "319:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "332:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "328:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "328:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "275:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "275:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "275:71:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "201:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "213:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "224:4:1", + "type": "" + } + ], + "src": "131:222:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "403:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "610:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "612:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "612:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "612:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "531:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "538:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "606:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "534:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "534:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "528:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "528:81:1" + }, + "nodeType": "YulIf", + "src": "525:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "642:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "653:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "656:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "649:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "649:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "642:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "390:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "393:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "399:3:1", + "type": "" + } + ], + "src": "359:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "715:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "725:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "736:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "725:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "697:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "707:7:1", + "type": "" + } + ], + "src": "670:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "781:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "798:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "801:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "791:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "791:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "791:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "895:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "898:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "888:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "888:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "888:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "919:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "922:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "912:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "912:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "912:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "753:180:1" + } + ] + }, + "contents": "{\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80631b9265b81461003b5780632630dd3a14610059575b600080fd5b610043610063565b6040516100509190610096565b60405180910390f35b61006161006c565b005b60008054905090565b600160008082825461007e91906100b1565b92505081905550565b61009081610107565b82525050565b60006020820190506100ab6000830184610087565b92915050565b60006100bc82610107565b91506100c783610107565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156100fc576100fb610111565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220b48807436ce933954e1810960780c31d44fbbd9bfd5fc1d4c71075c03025201664736f6c63430008070033", + "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 0x1B9265B8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x2630DD3A EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x7E SWAP2 SWAP1 PUSH2 0xB1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x90 DUP2 PUSH2 0x107 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC DUP3 PUSH2 0x107 JUMP JUMPDEST SWAP2 POP PUSH2 0xC7 DUP4 PUSH2 0x107 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xFC JUMPI PUSH2 0xFB PUSH2 0x111 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB4 DUP9 SMOD NUMBER PUSH13 0xE933954E1810960780C31D44FB 0xBD SWAP12 REVERT 0x5F 0xC1 0xD4 0xC7 LT PUSH22 0xC03025201664736F6C63430008070033000000000000 ", + "sourceMap": "60:354:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;255:55;;;:::i;:::-;;337:74;373:4;397:6;;390:13;;337:74;:::o;255:55::-;301:1;291:6;;:11;;;;;;;:::i;:::-;;;;;;;;255:55::o;7:118:1:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;7:118;;:::o;131:222::-;224:4;262:2;251:9;247:18;239:26;;275:71;343:1;332:9;328:17;319:6;275:71;:::i;:::-;131:222;;;;:::o;359:305::-;399:3;418:20;436:1;418:20;:::i;:::-;413:25;;452:20;470:1;452:20;:::i;:::-;447:25;;606:1;538:66;534:74;531:1;528:81;525:107;;;612:18;;:::i;:::-;525:107;656:1;653;649:9;642:16;;359:305;;;;:::o;670:77::-;707:7;736:5;725:16;;670:77;;;:::o;753:180::-;801:77;798:1;791:88;898:4;895:1;888:15;922:4;919:1;912:15" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "74800", + "executionCost": "5137", + "totalCost": "79937" + }, + "external": { + "doWork()": "infinite", + "pay()": "2415" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 60, + "end": 414, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 60, + "end": 414, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 60, + "end": 414, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 161, + "end": 204, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 161, + "end": 204, + "name": "DUP1", + "source": 0 + }, + { + "begin": 161, + "end": 204, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 161, + "end": 204, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 161, + "end": 204, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 161, + "end": 204, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 161, + "end": 204, + "name": "DUP1", + "source": 0 + }, + { + "begin": 161, + "end": 204, + "name": "REVERT", + "source": 0 + }, + { + "begin": 161, + "end": 204, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 161, + "end": 204, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 161, + "end": 204, + "name": "POP", + "source": 0 + }, + { + "begin": 195, + "end": 196, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 186, + "end": 192, + "name": "DUP1", + "source": 0 + }, + { + "begin": 186, + "end": 196, + "name": "DUP2", + "source": 0 + }, + { + "begin": 186, + "end": 196, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 186, + "end": 196, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 186, + "end": 196, + "name": "POP", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 60, + "end": 414, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 60, + "end": 414, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 414, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 414, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220b48807436ce933954e1810960780c31d44fbbd9bfd5fc1d4c71075c03025201664736f6c63430008070033", + ".code": [ + { + "begin": 60, + "end": 414, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 60, + "end": 414, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 60, + "end": 414, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 60, + "end": 414, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 414, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "REVERT", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 60, + "end": 414, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "POP", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 60, + "end": 414, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "LT", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 60, + "end": 414, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 414, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 60, + "end": 414, + "name": "SHR", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "PUSH", + "source": 0, + "value": "1B9265B8" + }, + { + "begin": 60, + "end": 414, + "name": "EQ", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 60, + "end": 414, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "PUSH", + "source": 0, + "value": "2630DD3A" + }, + { + "begin": 60, + "end": 414, + "name": "EQ", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 60, + "end": 414, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 60, + "end": 414, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 414, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 414, + "name": "REVERT", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 337, + "end": 411, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 337, + "end": 411, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 337, + "end": 411, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 337, + "end": 411, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 337, + "end": 411, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 337, + "end": 411, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 337, + "end": 411, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 337, + "end": 411, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 337, + "end": 411, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 337, + "end": 411, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 337, + "end": 411, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "DUP1", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "SUB", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "RETURN", + "source": 0 + }, + { + "begin": 255, + "end": 310, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 255, + "end": 310, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 255, + "end": 310, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 255, + "end": 310, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 255, + "end": 310, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 255, + "end": 310, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 255, + "end": 310, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 255, + "end": 310, + "name": "STOP", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 337, + "end": 411, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 373, + "end": 377, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 397, + "end": 403, + "name": "DUP1", + "source": 0 + }, + { + "begin": 397, + "end": 403, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 390, + "end": 403, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 390, + "end": 403, + "name": "POP", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 337, + "end": 411, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 255, + "end": 310, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 255, + "end": 310, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 301, + "end": 302, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 291, + "end": 297, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 291, + "end": 297, + "name": "DUP1", + "source": 0 + }, + { + "begin": 291, + "end": 302, + "name": "DUP3", + "source": 0 + }, + { + "begin": 291, + "end": 302, + "name": "DUP3", + "source": 0 + }, + { + "begin": 291, + "end": 302, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 291, + "end": 302, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 291, + "end": 302, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 291, + "end": 302, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 291, + "end": 302, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 291, + "end": 302, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 291, + "end": 302, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 291, + "end": 302, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 291, + "end": 302, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 291, + "end": 302, + "name": "POP", + "source": 0 + }, + { + "begin": 291, + "end": 302, + "name": "POP", + "source": 0 + }, + { + "begin": 291, + "end": 302, + "name": "DUP2", + "source": 0 + }, + { + "begin": 291, + "end": 302, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 291, + "end": 302, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 291, + "end": 302, + "name": "POP", + "source": 0 + }, + { + "begin": 255, + "end": 310, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 125, + "name": "tag", + "source": 1, + "value": "16" + }, + { + "begin": 7, + "end": 125, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 94, + "end": 118, + "name": "PUSH [tag]", + "source": 1, + "value": "18" + }, + { + "begin": 112, + "end": 117, + "name": "DUP2", + "source": 1 + }, + { + "begin": 94, + "end": 118, + "name": "PUSH [tag]", + "source": 1, + "value": "19" + }, + { + "begin": 94, + "end": 118, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 94, + "end": 118, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 94, + "end": 118, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 89, + "end": 92, + "name": "DUP3", + "source": 1 + }, + { + "begin": 82, + "end": 119, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 7, + "end": 125, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 125, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 125, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 131, + "end": 353, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 131, + "end": 353, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 224, + "end": 228, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 262, + "end": 264, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 251, + "end": 260, + "name": "DUP3", + "source": 1 + }, + { + "begin": 247, + "end": 265, + "name": "ADD", + "source": 1 + }, + { + "begin": 239, + "end": 265, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 239, + "end": 265, + "name": "POP", + "source": 1 + }, + { + "begin": 275, + "end": 346, + "name": "PUSH [tag]", + "source": 1, + "value": "21" + }, + { + "begin": 343, + "end": 344, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 332, + "end": 341, + "name": "DUP4", + "source": 1 + }, + { + "begin": 328, + "end": 345, + "name": "ADD", + "source": 1 + }, + { + "begin": 319, + "end": 325, + "name": "DUP5", + "source": 1 + }, + { + "begin": 275, + "end": 346, + "name": "PUSH [tag]", + "source": 1, + "value": "16" + }, + { + "begin": 275, + "end": 346, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 275, + "end": 346, + "name": "tag", + "source": 1, + "value": "21" + }, + { + "begin": 275, + "end": 346, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "POP", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "POP", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 359, + "end": 664, + "name": "tag", + "source": 1, + "value": "14" + }, + { + "begin": 359, + "end": 664, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 399, + "end": 402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 418, + "end": 438, + "name": "PUSH [tag]", + "source": 1, + "value": "23" + }, + { + "begin": 436, + "end": 437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 418, + "end": 438, + "name": "PUSH [tag]", + "source": 1, + "value": "19" + }, + { + "begin": 418, + "end": 438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 418, + "end": 438, + "name": "tag", + "source": 1, + "value": "23" + }, + { + "begin": 418, + "end": 438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 413, + "end": 438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 413, + "end": 438, + "name": "POP", + "source": 1 + }, + { + "begin": 452, + "end": 472, + "name": "PUSH [tag]", + "source": 1, + "value": "24" + }, + { + "begin": 470, + "end": 471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 452, + "end": 472, + "name": "PUSH [tag]", + "source": 1, + "value": "19" + }, + { + "begin": 452, + "end": 472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 452, + "end": 472, + "name": "tag", + "source": 1, + "value": "24" + }, + { + "begin": 452, + "end": 472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 447, + "end": 472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 447, + "end": 472, + "name": "POP", + "source": 1 + }, + { + "begin": 606, + "end": 607, + "name": "DUP3", + "source": 1 + }, + { + "begin": 538, + "end": 604, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 534, + "end": 608, + "name": "SUB", + "source": 1 + }, + { + "begin": 531, + "end": 532, + "name": "DUP3", + "source": 1 + }, + { + "begin": 528, + "end": 609, + "name": "GT", + "source": 1 + }, + { + "begin": 525, + "end": 632, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 525, + "end": 632, + "name": "PUSH [tag]", + "source": 1, + "value": "25" + }, + { + "begin": 525, + "end": 632, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 612, + "end": 630, + "name": "PUSH [tag]", + "source": 1, + "value": "26" + }, + { + "begin": 612, + "end": 630, + "name": "PUSH [tag]", + "source": 1, + "value": "27" + }, + { + "begin": 612, + "end": 630, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 612, + "end": 630, + "name": "tag", + "source": 1, + "value": "26" + }, + { + "begin": 612, + "end": 630, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 525, + "end": 632, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 525, + "end": 632, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 656, + "end": 657, + "name": "DUP3", + "source": 1 + }, + { + "begin": 653, + "end": 654, + "name": "DUP3", + "source": 1 + }, + { + "begin": 649, + "end": 658, + "name": "ADD", + "source": 1 + }, + { + "begin": 642, + "end": 658, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 642, + "end": 658, + "name": "POP", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "POP", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "POP", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 670, + "end": 747, + "name": "tag", + "source": 1, + "value": "19" + }, + { + "begin": 670, + "end": 747, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 707, + "end": 714, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 736, + "end": 741, + "name": "DUP2", + "source": 1 + }, + { + "begin": 725, + "end": 741, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 725, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 670, + "end": 747, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 670, + "end": 747, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 670, + "end": 747, + "name": "POP", + "source": 1 + }, + { + "begin": 670, + "end": 747, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 753, + "end": 933, + "name": "tag", + "source": 1, + "value": "27" + }, + { + "begin": 753, + "end": 933, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 801, + "end": 878, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 798, + "end": 799, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 791, + "end": 879, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 898, + "end": 902, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 895, + "end": 896, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 888, + "end": 903, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 922, + "end": 926, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 919, + "end": 920, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 912, + "end": 927, + "name": "REVERT", + "source": 1 + } + ] + } + } + }, + "methodIdentifiers": { + "doWork()": "2630dd3a", + "pay()": "1b9265b8" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"doWork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep1/work.sol\":\"Work\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep1/work.sol\":{\"keccak256\":\"0x907adc02e255cb408d3cb8dab982216c4d23492403b9f329e83e10fa31693003\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b71c34ac4107a3b1074c71b72a944ac59e74e976081f938d2109aa40433022c\",\"dweb:/ipfs/QmW9WpBqiFXdVbNsYLEqALSwAVD8F824AXEFpuivuddtR4\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 3, + "contract": "Ep1/work.sol:Work", + "label": "salary", + "offset": 0, + "slot": "0", + "type": "t_uint256" + } + ], + "types": { + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep1/work.sol": { + "ast": { + "absolutePath": "Ep1/work.sol", + "exportedSymbols": { + "Work": [ + 28 + ] + }, + "id": 29, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7" + ], + "nodeType": "PragmaDirective", + "src": "33:23:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 28, + "linearizedBaseContracts": [ + 28 + ], + "name": "Work", + "nameLocation": "69:4:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3, + "mutability": "mutable", + "name": "salary", + "nameLocation": "86:6:0", + "nodeType": "VariableDeclaration", + "scope": 28, + "src": "81:11:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "81:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 10, + "nodeType": "Block", + "src": "175:29:0", + "statements": [ + { + "expression": { + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6, + "name": "salary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "186:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "195:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "186:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "186:10:0" + } + ] + }, + "id": 11, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4, + "nodeType": "ParameterList", + "parameters": [], + "src": "172:2:0" + }, + "returnParameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [], + "src": "175:0:0" + }, + "scope": 28, + "src": "161:43:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 18, + "nodeType": "Block", + "src": "280:30:0", + "statements": [ + { + "expression": { + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14, + "name": "salary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "291:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "301:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "291:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17, + "nodeType": "ExpressionStatement", + "src": "291:11:0" + } + ] + }, + "functionSelector": "2630dd3a", + "id": 19, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "doWork", + "nameLocation": "264:6:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [], + "src": "270:2:0" + }, + "returnParameters": { + "id": 13, + "nodeType": "ParameterList", + "parameters": [], + "src": "280:0:0" + }, + "scope": 28, + "src": "255:55:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 26, + "nodeType": "Block", + "src": "379:32:0", + "statements": [ + { + "expression": { + "id": 24, + "name": "salary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "397:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 23, + "id": 25, + "nodeType": "Return", + "src": "390:13:0" + } + ] + }, + "functionSelector": "1b9265b8", + "id": 27, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "pay", + "nameLocation": "346:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:0" + }, + "returnParameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "373:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "373:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "372:6:0" + }, + "scope": 28, + "src": "337:74:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 29, + "src": "60:354:0", + "usedErrors": [] + } + ], + "src": "33:381:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep1/artifacts/build-info/e3a38f1062880e2b90b263a1bca1577e.json b/Ep1/artifacts/build-info/e3a38f1062880e2b90b263a1bca1577e.json new file mode 100644 index 0000000..715a199 --- /dev/null +++ b/Ep1/artifacts/build-info/e3a38f1062880e2b90b263a1bca1577e.json @@ -0,0 +1,2488 @@ +{ + "id": "e3a38f1062880e2b90b263a1bca1577e", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep1/work.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7;\r\n\r\ncontract Work {\r\n uint private salary;\r\n\r\n // Create a new work contract to initialize the salary\r\n constructor() {\r\n salary = 0;\r\n }\r\n\r\n // Increase your salary once you work\r\n function doWork() public {\r\n salary += 1;\r\n }\r\n\r\n // Pay salary\r\n function pay() public view returns (uint) {\r\n return salary;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep1/work.sol": { + "Work": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "doWork", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "pay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep1/work.sol\":60:422 contract Work {\r... */\n mstore(0x40, 0x80)\n /* \"Ep1/work.sol\":169:212 constructor() {\r... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"Ep1/work.sol\":203:204 0 */\n 0x00\n /* \"Ep1/work.sol\":194:200 salary */\n dup1\n /* \"Ep1/work.sol\":194:204 salary = 0 */\n dup2\n swap1\n sstore\n pop\n /* \"Ep1/work.sol\":60:422 contract Work {\r... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep1/work.sol\":60:422 contract Work {\r... */\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 0x1b9265b8\n eq\n tag_3\n jumpi\n dup1\n 0x2630dd3a\n eq\n tag_4\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep1/work.sol\":345:419 function pay() public view returns (uint) {\r... */\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 /* \"Ep1/work.sol\":263:318 function doWork() public {\r... */\n tag_4:\n tag_9\n tag_10\n jump\t// in\n tag_9:\n stop\n /* \"Ep1/work.sol\":345:419 function pay() public view returns (uint) {\r... */\n tag_6:\n /* \"Ep1/work.sol\":381:385 uint */\n 0x00\n /* \"Ep1/work.sol\":405:411 salary */\n dup1\n sload\n /* \"Ep1/work.sol\":398:411 return salary */\n swap1\n pop\n /* \"Ep1/work.sol\":345:419 function pay() public view returns (uint) {\r... */\n swap1\n jump\t// out\n /* \"Ep1/work.sol\":263:318 function doWork() public {\r... */\n tag_10:\n /* \"Ep1/work.sol\":309:310 1 */\n 0x01\n /* \"Ep1/work.sol\":299:305 salary */\n 0x00\n dup1\n /* \"Ep1/work.sol\":299:310 salary += 1 */\n dup3\n dup3\n sload\n tag_13\n swap2\n swap1\n tag_14\n jump\t// in\n tag_13:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"Ep1/work.sol\":263:318 function doWork() public {\r... */\n jump\t// out\n /* \"#utility.yul\":7:125 */\n tag_16:\n /* \"#utility.yul\":94:118 */\n tag_18\n /* \"#utility.yul\":112:117 */\n dup2\n /* \"#utility.yul\":94:118 */\n tag_19\n jump\t// in\n tag_18:\n /* \"#utility.yul\":89:92 */\n dup3\n /* \"#utility.yul\":82:119 */\n mstore\n /* \"#utility.yul\":7:125 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":131:353 */\n tag_8:\n /* \"#utility.yul\":224:228 */\n 0x00\n /* \"#utility.yul\":262:264 */\n 0x20\n /* \"#utility.yul\":251:260 */\n dup3\n /* \"#utility.yul\":247:265 */\n add\n /* \"#utility.yul\":239:265 */\n swap1\n pop\n /* \"#utility.yul\":275:346 */\n tag_21\n /* \"#utility.yul\":343:344 */\n 0x00\n /* \"#utility.yul\":332:341 */\n dup4\n /* \"#utility.yul\":328:345 */\n add\n /* \"#utility.yul\":319:325 */\n dup5\n /* \"#utility.yul\":275:346 */\n tag_16\n jump\t// in\n tag_21:\n /* \"#utility.yul\":131:353 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":359:664 */\n tag_14:\n /* \"#utility.yul\":399:402 */\n 0x00\n /* \"#utility.yul\":418:438 */\n tag_23\n /* \"#utility.yul\":436:437 */\n dup3\n /* \"#utility.yul\":418:438 */\n tag_19\n jump\t// in\n tag_23:\n /* \"#utility.yul\":413:438 */\n swap2\n pop\n /* \"#utility.yul\":452:472 */\n tag_24\n /* \"#utility.yul\":470:471 */\n dup4\n /* \"#utility.yul\":452:472 */\n tag_19\n jump\t// in\n tag_24:\n /* \"#utility.yul\":447:472 */\n swap3\n pop\n /* \"#utility.yul\":606:607 */\n dup3\n /* \"#utility.yul\":538:604 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":534:608 */\n sub\n /* \"#utility.yul\":531:532 */\n dup3\n /* \"#utility.yul\":528:609 */\n gt\n /* \"#utility.yul\":525:632 */\n iszero\n tag_25\n jumpi\n /* \"#utility.yul\":612:630 */\n tag_26\n tag_27\n jump\t// in\n tag_26:\n /* \"#utility.yul\":525:632 */\n tag_25:\n /* \"#utility.yul\":656:657 */\n dup3\n /* \"#utility.yul\":653:654 */\n dup3\n /* \"#utility.yul\":649:658 */\n add\n /* \"#utility.yul\":642:658 */\n swap1\n pop\n /* \"#utility.yul\":359:664 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":670:747 */\n tag_19:\n /* \"#utility.yul\":707:714 */\n 0x00\n /* \"#utility.yul\":736:741 */\n dup2\n /* \"#utility.yul\":725:741 */\n swap1\n pop\n /* \"#utility.yul\":670:747 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":753:933 */\n tag_27:\n /* \"#utility.yul\":801:878 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":798:799 */\n 0x00\n /* \"#utility.yul\":791:879 */\n mstore\n /* \"#utility.yul\":898:902 */\n 0x11\n /* \"#utility.yul\":895:896 */\n 0x04\n /* \"#utility.yul\":888:903 */\n mstore\n /* \"#utility.yul\":922:926 */\n 0x24\n /* \"#utility.yul\":919:920 */\n 0x00\n /* \"#utility.yul\":912:927 */\n revert\n\n auxdata: 0xa26469706673582212209f03b1645ba7c3269fdb50ae8ed27581b1366c1d1befea7d1f92d733f62e21c364736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": { + "@_11": { + "entryPoint": null, + "id": 11, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060008081905550610176806100276000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80631b9265b81461003b5780632630dd3a14610059575b600080fd5b610043610063565b6040516100509190610096565b60405180910390f35b61006161006c565b005b60008054905090565b600160008082825461007e91906100b1565b92505081905550565b61009081610107565b82525050565b60006020820190506100ab6000830184610087565b92915050565b60006100bc82610107565b91506100c783610107565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156100fc576100fb610111565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212209f03b1645ba7c3269fdb50ae8ed27581b1366c1d1befea7d1f92d733f62e21c364736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 DUP2 SWAP1 SSTORE POP PUSH2 0x176 DUP1 PUSH2 0x27 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 0x1B9265B8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x2630DD3A EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x7E SWAP2 SWAP1 PUSH2 0xB1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x90 DUP2 PUSH2 0x107 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC DUP3 PUSH2 0x107 JUMP JUMPDEST SWAP2 POP PUSH2 0xC7 DUP4 PUSH2 0x107 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xFC JUMPI PUSH2 0xFB PUSH2 0x111 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP16 SUB 0xB1 PUSH5 0x5BA7C3269F 0xDB POP 0xAE DUP15 0xD2 PUSH22 0x81B1366C1D1BEFEA7D1F92D733F62E21C364736F6C63 NUMBER STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "60:362:0:-:0;;;169:43;;;;;;;;;;203:1;194:6;:10;;;;60:362;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@doWork_19": { + "entryPoint": 108, + "id": 19, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@pay_27": { + "entryPoint": 99, + "id": 27, + "parameterSlots": 0, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 135, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 150, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 177, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 263, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 273, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:936:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "72:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "89:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "112:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "94:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "94:24:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "82:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "82:37:1" + }, + "nodeType": "YulExpressionStatement", + "src": "82:37:1" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "60:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "67:3:1", + "type": "" + } + ], + "src": "7:118:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "229:124:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "239:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "251:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "262:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "247:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "247:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "239:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "319:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "332:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "328:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "328:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "275:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "275:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "275:71:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "201:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "213:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "224:4:1", + "type": "" + } + ], + "src": "131:222:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "403:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "610:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "612:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "612:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "612:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "531:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "538:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "606:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "534:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "534:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "528:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "528:81:1" + }, + "nodeType": "YulIf", + "src": "525:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "642:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "653:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "656:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "649:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "649:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "642:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "390:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "393:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "399:3:1", + "type": "" + } + ], + "src": "359:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "715:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "725:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "736:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "725:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "697:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "707:7:1", + "type": "" + } + ], + "src": "670:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "781:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "798:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "801:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "791:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "791:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "791:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "895:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "898:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "888:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "888:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "888:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "919:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "922:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "912:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "912:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "912:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "753:180:1" + } + ] + }, + "contents": "{\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80631b9265b81461003b5780632630dd3a14610059575b600080fd5b610043610063565b6040516100509190610096565b60405180910390f35b61006161006c565b005b60008054905090565b600160008082825461007e91906100b1565b92505081905550565b61009081610107565b82525050565b60006020820190506100ab6000830184610087565b92915050565b60006100bc82610107565b91506100c783610107565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156100fc576100fb610111565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212209f03b1645ba7c3269fdb50ae8ed27581b1366c1d1befea7d1f92d733f62e21c364736f6c63430008070033", + "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 0x1B9265B8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x2630DD3A EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x7E SWAP2 SWAP1 PUSH2 0xB1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x90 DUP2 PUSH2 0x107 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC DUP3 PUSH2 0x107 JUMP JUMPDEST SWAP2 POP PUSH2 0xC7 DUP4 PUSH2 0x107 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xFC JUMPI PUSH2 0xFB PUSH2 0x111 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP16 SUB 0xB1 PUSH5 0x5BA7C3269F 0xDB POP 0xAE DUP15 0xD2 PUSH22 0x81B1366C1D1BEFEA7D1F92D733F62E21C364736F6C63 NUMBER STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "60:362:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;345:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;263:55;;;:::i;:::-;;345:74;381:4;405:6;;398:13;;345:74;:::o;263:55::-;309:1;299:6;;:11;;;;;;;:::i;:::-;;;;;;;;263:55::o;7:118:1:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;7:118;;:::o;131:222::-;224:4;262:2;251:9;247:18;239:26;;275:71;343:1;332:9;328:17;319:6;275:71;:::i;:::-;131:222;;;;:::o;359:305::-;399:3;418:20;436:1;418:20;:::i;:::-;413:25;;452:20;470:1;452:20;:::i;:::-;447:25;;606:1;538:66;534:74;531:1;528:81;525:107;;;612:18;;:::i;:::-;525:107;656:1;653;649:9;642:16;;359:305;;;;:::o;670:77::-;707:7;736:5;725:16;;670:77;;;:::o;753:180::-;801:77;798:1;791:88;898:4;895:1;888:15;922:4;919:1;912:15" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "74800", + "executionCost": "5137", + "totalCost": "79937" + }, + "external": { + "doWork()": "infinite", + "pay()": "2415" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 60, + "end": 422, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 60, + "end": 422, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 60, + "end": 422, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 169, + "end": 212, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 169, + "end": 212, + "name": "DUP1", + "source": 0 + }, + { + "begin": 169, + "end": 212, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 169, + "end": 212, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 169, + "end": 212, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 169, + "end": 212, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 169, + "end": 212, + "name": "DUP1", + "source": 0 + }, + { + "begin": 169, + "end": 212, + "name": "REVERT", + "source": 0 + }, + { + "begin": 169, + "end": 212, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 169, + "end": 212, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 169, + "end": 212, + "name": "POP", + "source": 0 + }, + { + "begin": 203, + "end": 204, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 194, + "end": 200, + "name": "DUP1", + "source": 0 + }, + { + "begin": 194, + "end": 204, + "name": "DUP2", + "source": 0 + }, + { + "begin": 194, + "end": 204, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 194, + "end": 204, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 194, + "end": 204, + "name": "POP", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 60, + "end": 422, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 60, + "end": 422, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 422, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 422, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a26469706673582212209f03b1645ba7c3269fdb50ae8ed27581b1366c1d1befea7d1f92d733f62e21c364736f6c63430008070033", + ".code": [ + { + "begin": 60, + "end": 422, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 60, + "end": 422, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 60, + "end": 422, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 60, + "end": 422, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 422, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "REVERT", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 60, + "end": 422, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "POP", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 60, + "end": 422, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "LT", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 60, + "end": 422, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 422, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 60, + "end": 422, + "name": "SHR", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "PUSH", + "source": 0, + "value": "1B9265B8" + }, + { + "begin": 60, + "end": 422, + "name": "EQ", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 60, + "end": 422, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "PUSH", + "source": 0, + "value": "2630DD3A" + }, + { + "begin": 60, + "end": 422, + "name": "EQ", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 60, + "end": 422, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 60, + "end": 422, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 422, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 422, + "name": "REVERT", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 345, + "end": 419, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 345, + "end": 419, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 345, + "end": 419, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 345, + "end": 419, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 345, + "end": 419, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 345, + "end": 419, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 345, + "end": 419, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 345, + "end": 419, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 345, + "end": 419, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 345, + "end": 419, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 345, + "end": 419, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "DUP1", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "SUB", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "RETURN", + "source": 0 + }, + { + "begin": 263, + "end": 318, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 263, + "end": 318, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 263, + "end": 318, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 263, + "end": 318, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 263, + "end": 318, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 263, + "end": 318, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 263, + "end": 318, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 263, + "end": 318, + "name": "STOP", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 345, + "end": 419, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 381, + "end": 385, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 405, + "end": 411, + "name": "DUP1", + "source": 0 + }, + { + "begin": 405, + "end": 411, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 398, + "end": 411, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 398, + "end": 411, + "name": "POP", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 345, + "end": 419, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 263, + "end": 318, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 263, + "end": 318, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 309, + "end": 310, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 299, + "end": 305, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 299, + "end": 305, + "name": "DUP1", + "source": 0 + }, + { + "begin": 299, + "end": 310, + "name": "DUP3", + "source": 0 + }, + { + "begin": 299, + "end": 310, + "name": "DUP3", + "source": 0 + }, + { + "begin": 299, + "end": 310, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 299, + "end": 310, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 299, + "end": 310, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 299, + "end": 310, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 299, + "end": 310, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 299, + "end": 310, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 299, + "end": 310, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 299, + "end": 310, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 299, + "end": 310, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 299, + "end": 310, + "name": "POP", + "source": 0 + }, + { + "begin": 299, + "end": 310, + "name": "POP", + "source": 0 + }, + { + "begin": 299, + "end": 310, + "name": "DUP2", + "source": 0 + }, + { + "begin": 299, + "end": 310, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 299, + "end": 310, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 299, + "end": 310, + "name": "POP", + "source": 0 + }, + { + "begin": 263, + "end": 318, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 125, + "name": "tag", + "source": 1, + "value": "16" + }, + { + "begin": 7, + "end": 125, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 94, + "end": 118, + "name": "PUSH [tag]", + "source": 1, + "value": "18" + }, + { + "begin": 112, + "end": 117, + "name": "DUP2", + "source": 1 + }, + { + "begin": 94, + "end": 118, + "name": "PUSH [tag]", + "source": 1, + "value": "19" + }, + { + "begin": 94, + "end": 118, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 94, + "end": 118, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 94, + "end": 118, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 89, + "end": 92, + "name": "DUP3", + "source": 1 + }, + { + "begin": 82, + "end": 119, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 7, + "end": 125, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 125, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 125, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 131, + "end": 353, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 131, + "end": 353, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 224, + "end": 228, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 262, + "end": 264, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 251, + "end": 260, + "name": "DUP3", + "source": 1 + }, + { + "begin": 247, + "end": 265, + "name": "ADD", + "source": 1 + }, + { + "begin": 239, + "end": 265, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 239, + "end": 265, + "name": "POP", + "source": 1 + }, + { + "begin": 275, + "end": 346, + "name": "PUSH [tag]", + "source": 1, + "value": "21" + }, + { + "begin": 343, + "end": 344, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 332, + "end": 341, + "name": "DUP4", + "source": 1 + }, + { + "begin": 328, + "end": 345, + "name": "ADD", + "source": 1 + }, + { + "begin": 319, + "end": 325, + "name": "DUP5", + "source": 1 + }, + { + "begin": 275, + "end": 346, + "name": "PUSH [tag]", + "source": 1, + "value": "16" + }, + { + "begin": 275, + "end": 346, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 275, + "end": 346, + "name": "tag", + "source": 1, + "value": "21" + }, + { + "begin": 275, + "end": 346, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "POP", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "POP", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 359, + "end": 664, + "name": "tag", + "source": 1, + "value": "14" + }, + { + "begin": 359, + "end": 664, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 399, + "end": 402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 418, + "end": 438, + "name": "PUSH [tag]", + "source": 1, + "value": "23" + }, + { + "begin": 436, + "end": 437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 418, + "end": 438, + "name": "PUSH [tag]", + "source": 1, + "value": "19" + }, + { + "begin": 418, + "end": 438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 418, + "end": 438, + "name": "tag", + "source": 1, + "value": "23" + }, + { + "begin": 418, + "end": 438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 413, + "end": 438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 413, + "end": 438, + "name": "POP", + "source": 1 + }, + { + "begin": 452, + "end": 472, + "name": "PUSH [tag]", + "source": 1, + "value": "24" + }, + { + "begin": 470, + "end": 471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 452, + "end": 472, + "name": "PUSH [tag]", + "source": 1, + "value": "19" + }, + { + "begin": 452, + "end": 472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 452, + "end": 472, + "name": "tag", + "source": 1, + "value": "24" + }, + { + "begin": 452, + "end": 472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 447, + "end": 472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 447, + "end": 472, + "name": "POP", + "source": 1 + }, + { + "begin": 606, + "end": 607, + "name": "DUP3", + "source": 1 + }, + { + "begin": 538, + "end": 604, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 534, + "end": 608, + "name": "SUB", + "source": 1 + }, + { + "begin": 531, + "end": 532, + "name": "DUP3", + "source": 1 + }, + { + "begin": 528, + "end": 609, + "name": "GT", + "source": 1 + }, + { + "begin": 525, + "end": 632, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 525, + "end": 632, + "name": "PUSH [tag]", + "source": 1, + "value": "25" + }, + { + "begin": 525, + "end": 632, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 612, + "end": 630, + "name": "PUSH [tag]", + "source": 1, + "value": "26" + }, + { + "begin": 612, + "end": 630, + "name": "PUSH [tag]", + "source": 1, + "value": "27" + }, + { + "begin": 612, + "end": 630, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 612, + "end": 630, + "name": "tag", + "source": 1, + "value": "26" + }, + { + "begin": 612, + "end": 630, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 525, + "end": 632, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 525, + "end": 632, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 656, + "end": 657, + "name": "DUP3", + "source": 1 + }, + { + "begin": 653, + "end": 654, + "name": "DUP3", + "source": 1 + }, + { + "begin": 649, + "end": 658, + "name": "ADD", + "source": 1 + }, + { + "begin": 642, + "end": 658, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 642, + "end": 658, + "name": "POP", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "POP", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "POP", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 670, + "end": 747, + "name": "tag", + "source": 1, + "value": "19" + }, + { + "begin": 670, + "end": 747, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 707, + "end": 714, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 736, + "end": 741, + "name": "DUP2", + "source": 1 + }, + { + "begin": 725, + "end": 741, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 725, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 670, + "end": 747, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 670, + "end": 747, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 670, + "end": 747, + "name": "POP", + "source": 1 + }, + { + "begin": 670, + "end": 747, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 753, + "end": 933, + "name": "tag", + "source": 1, + "value": "27" + }, + { + "begin": 753, + "end": 933, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 801, + "end": 878, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 798, + "end": 799, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 791, + "end": 879, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 898, + "end": 902, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 895, + "end": 896, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 888, + "end": 903, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 922, + "end": 926, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 919, + "end": 920, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 912, + "end": 927, + "name": "REVERT", + "source": 1 + } + ] + } + } + }, + "methodIdentifiers": { + "doWork()": "2630dd3a", + "pay()": "1b9265b8" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"doWork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep1/work.sol\":\"Work\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep1/work.sol\":{\"keccak256\":\"0x89f992a7ebfa73aabde2b29e0e5ddb0fb0a401ff1c50d84ebc7e744036010bb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0165799f55c414f2686666403c3b79610633159e50257e56560613145c1c55\",\"dweb:/ipfs/QmYeWuwoACuSa3HUH46bYJxDwJnwD7iUn9i7vAQYY1k25z\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 3, + "contract": "Ep1/work.sol:Work", + "label": "salary", + "offset": 0, + "slot": "0", + "type": "t_uint256" + } + ], + "types": { + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep1/work.sol": { + "ast": { + "absolutePath": "Ep1/work.sol", + "exportedSymbols": { + "Work": [ + 28 + ] + }, + "id": 29, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7" + ], + "nodeType": "PragmaDirective", + "src": "33:23:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 28, + "linearizedBaseContracts": [ + 28 + ], + "name": "Work", + "nameLocation": "69:4:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3, + "mutability": "mutable", + "name": "salary", + "nameLocation": "94:6:0", + "nodeType": "VariableDeclaration", + "scope": 28, + "src": "81:19:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "81:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 10, + "nodeType": "Block", + "src": "183:29:0", + "statements": [ + { + "expression": { + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6, + "name": "salary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "194:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "203:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "194:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "194:10:0" + } + ] + }, + "id": 11, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4, + "nodeType": "ParameterList", + "parameters": [], + "src": "180:2:0" + }, + "returnParameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [], + "src": "183:0:0" + }, + "scope": 28, + "src": "169:43:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 18, + "nodeType": "Block", + "src": "288:30:0", + "statements": [ + { + "expression": { + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14, + "name": "salary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "299:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "309:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "299:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17, + "nodeType": "ExpressionStatement", + "src": "299:11:0" + } + ] + }, + "functionSelector": "2630dd3a", + "id": 19, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "doWork", + "nameLocation": "272:6:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [], + "src": "278:2:0" + }, + "returnParameters": { + "id": 13, + "nodeType": "ParameterList", + "parameters": [], + "src": "288:0:0" + }, + "scope": 28, + "src": "263:55:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 26, + "nodeType": "Block", + "src": "387:32:0", + "statements": [ + { + "expression": { + "id": 24, + "name": "salary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "405:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 23, + "id": 25, + "nodeType": "Return", + "src": "398:13:0" + } + ] + }, + "functionSelector": "1b9265b8", + "id": 27, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "pay", + "nameLocation": "354:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20, + "nodeType": "ParameterList", + "parameters": [], + "src": "357:2:0" + }, + "returnParameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "381:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "381:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "380:6:0" + }, + "scope": 28, + "src": "345:74:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 29, + "src": "60:362:0", + "usedErrors": [] + } + ], + "src": "33:389:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep1/artifacts/build-info/e98e419b3b74d610ecf45ffacb912611.json b/Ep1/artifacts/build-info/e98e419b3b74d610ecf45ffacb912611.json new file mode 100644 index 0000000..8bce241 --- /dev/null +++ b/Ep1/artifacts/build-info/e98e419b3b74d610ecf45ffacb912611.json @@ -0,0 +1,2489 @@ +{ + "id": "e98e419b3b74d610ecf45ffacb912611", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep1/work.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Work {\r\n uint private salary;\r\n\r\n // Create a new work contract to initialize the salary\r\n constructor() {\r\n salary = 0;\r\n }\r\n\r\n // Increase your salary once you work\r\n function doWork() public {\r\n salary += 1;\r\n }\r\n\r\n // Pay salary\r\n function pay() public view returns (uint) {\r\n return salary;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep1/work.sol": { + "Work": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "doWork", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "pay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep1/work.sol\":62:424 contract Work {\r... */\n mstore(0x40, 0x80)\n /* \"Ep1/work.sol\":171:214 constructor() {\r... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"Ep1/work.sol\":205:206 0 */\n 0x00\n /* \"Ep1/work.sol\":196:202 salary */\n dup1\n /* \"Ep1/work.sol\":196:206 salary = 0 */\n dup2\n swap1\n sstore\n pop\n /* \"Ep1/work.sol\":62:424 contract Work {\r... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep1/work.sol\":62:424 contract Work {\r... */\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 0x1b9265b8\n eq\n tag_3\n jumpi\n dup1\n 0x2630dd3a\n eq\n tag_4\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep1/work.sol\":347:421 function pay() public view returns (uint) {\r... */\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 /* \"Ep1/work.sol\":265:320 function doWork() public {\r... */\n tag_4:\n tag_9\n tag_10\n jump\t// in\n tag_9:\n stop\n /* \"Ep1/work.sol\":347:421 function pay() public view returns (uint) {\r... */\n tag_6:\n /* \"Ep1/work.sol\":383:387 uint */\n 0x00\n /* \"Ep1/work.sol\":407:413 salary */\n dup1\n sload\n /* \"Ep1/work.sol\":400:413 return salary */\n swap1\n pop\n /* \"Ep1/work.sol\":347:421 function pay() public view returns (uint) {\r... */\n swap1\n jump\t// out\n /* \"Ep1/work.sol\":265:320 function doWork() public {\r... */\n tag_10:\n /* \"Ep1/work.sol\":311:312 1 */\n 0x01\n /* \"Ep1/work.sol\":301:307 salary */\n 0x00\n dup1\n /* \"Ep1/work.sol\":301:312 salary += 1 */\n dup3\n dup3\n sload\n tag_13\n swap2\n swap1\n tag_14\n jump\t// in\n tag_13:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"Ep1/work.sol\":265:320 function doWork() public {\r... */\n jump\t// out\n /* \"#utility.yul\":7:125 */\n tag_16:\n /* \"#utility.yul\":94:118 */\n tag_18\n /* \"#utility.yul\":112:117 */\n dup2\n /* \"#utility.yul\":94:118 */\n tag_19\n jump\t// in\n tag_18:\n /* \"#utility.yul\":89:92 */\n dup3\n /* \"#utility.yul\":82:119 */\n mstore\n /* \"#utility.yul\":7:125 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":131:353 */\n tag_8:\n /* \"#utility.yul\":224:228 */\n 0x00\n /* \"#utility.yul\":262:264 */\n 0x20\n /* \"#utility.yul\":251:260 */\n dup3\n /* \"#utility.yul\":247:265 */\n add\n /* \"#utility.yul\":239:265 */\n swap1\n pop\n /* \"#utility.yul\":275:346 */\n tag_21\n /* \"#utility.yul\":343:344 */\n 0x00\n /* \"#utility.yul\":332:341 */\n dup4\n /* \"#utility.yul\":328:345 */\n add\n /* \"#utility.yul\":319:325 */\n dup5\n /* \"#utility.yul\":275:346 */\n tag_16\n jump\t// in\n tag_21:\n /* \"#utility.yul\":131:353 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":359:664 */\n tag_14:\n /* \"#utility.yul\":399:402 */\n 0x00\n /* \"#utility.yul\":418:438 */\n tag_23\n /* \"#utility.yul\":436:437 */\n dup3\n /* \"#utility.yul\":418:438 */\n tag_19\n jump\t// in\n tag_23:\n /* \"#utility.yul\":413:438 */\n swap2\n pop\n /* \"#utility.yul\":452:472 */\n tag_24\n /* \"#utility.yul\":470:471 */\n dup4\n /* \"#utility.yul\":452:472 */\n tag_19\n jump\t// in\n tag_24:\n /* \"#utility.yul\":447:472 */\n swap3\n pop\n /* \"#utility.yul\":606:607 */\n dup3\n /* \"#utility.yul\":538:604 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":534:608 */\n sub\n /* \"#utility.yul\":531:532 */\n dup3\n /* \"#utility.yul\":528:609 */\n gt\n /* \"#utility.yul\":525:632 */\n iszero\n tag_25\n jumpi\n /* \"#utility.yul\":612:630 */\n tag_26\n tag_27\n jump\t// in\n tag_26:\n /* \"#utility.yul\":525:632 */\n tag_25:\n /* \"#utility.yul\":656:657 */\n dup3\n /* \"#utility.yul\":653:654 */\n dup3\n /* \"#utility.yul\":649:658 */\n add\n /* \"#utility.yul\":642:658 */\n swap1\n pop\n /* \"#utility.yul\":359:664 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":670:747 */\n tag_19:\n /* \"#utility.yul\":707:714 */\n 0x00\n /* \"#utility.yul\":736:741 */\n dup2\n /* \"#utility.yul\":725:741 */\n swap1\n pop\n /* \"#utility.yul\":670:747 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":753:933 */\n tag_27:\n /* \"#utility.yul\":801:878 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":798:799 */\n 0x00\n /* \"#utility.yul\":791:879 */\n mstore\n /* \"#utility.yul\":898:902 */\n 0x11\n /* \"#utility.yul\":895:896 */\n 0x04\n /* \"#utility.yul\":888:903 */\n mstore\n /* \"#utility.yul\":922:926 */\n 0x24\n /* \"#utility.yul\":919:920 */\n 0x00\n /* \"#utility.yul\":912:927 */\n revert\n\n auxdata: 0xa26469706673582212202c392d8e6d353efeebe211265316085d0f1c5ba0659d4b6db48a323701fa52b464736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": { + "@_11": { + "entryPoint": null, + "id": 11, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060008081905550610176806100276000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80631b9265b81461003b5780632630dd3a14610059575b600080fd5b610043610063565b6040516100509190610096565b60405180910390f35b61006161006c565b005b60008054905090565b600160008082825461007e91906100b1565b92505081905550565b61009081610107565b82525050565b60006020820190506100ab6000830184610087565b92915050565b60006100bc82610107565b91506100c783610107565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156100fc576100fb610111565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212202c392d8e6d353efeebe211265316085d0f1c5ba0659d4b6db48a323701fa52b464736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 DUP2 SWAP1 SSTORE POP PUSH2 0x176 DUP1 PUSH2 0x27 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 0x1B9265B8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x2630DD3A EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x7E SWAP2 SWAP1 PUSH2 0xB1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x90 DUP2 PUSH2 0x107 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC DUP3 PUSH2 0x107 JUMP JUMPDEST SWAP2 POP PUSH2 0xC7 DUP4 PUSH2 0x107 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xFC JUMPI PUSH2 0xFB PUSH2 0x111 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2C CODECOPY 0x2D DUP15 PUSH14 0x353EFEEBE211265316085D0F1C5B LOG0 PUSH6 0x9D4B6DB48A32 CALLDATACOPY ADD STATICCALL MSTORE 0xB4 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:362:0:-:0;;;171:43;;;;;;;;;;205:1;196:6;:10;;;;62:362;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@doWork_19": { + "entryPoint": 108, + "id": 19, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@pay_27": { + "entryPoint": 99, + "id": 27, + "parameterSlots": 0, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 135, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 150, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 177, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 263, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 273, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:936:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "72:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "89:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "112:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "94:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "94:24:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "82:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "82:37:1" + }, + "nodeType": "YulExpressionStatement", + "src": "82:37:1" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "60:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "67:3:1", + "type": "" + } + ], + "src": "7:118:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "229:124:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "239:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "251:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "262:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "247:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "247:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "239:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "319:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "332:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "328:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "328:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "275:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "275:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "275:71:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "201:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "213:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "224:4:1", + "type": "" + } + ], + "src": "131:222:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "403:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "610:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "612:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "612:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "612:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "531:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "538:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "606:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "534:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "534:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "528:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "528:81:1" + }, + "nodeType": "YulIf", + "src": "525:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "642:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "653:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "656:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "649:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "649:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "642:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "390:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "393:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "399:3:1", + "type": "" + } + ], + "src": "359:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "715:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "725:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "736:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "725:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "697:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "707:7:1", + "type": "" + } + ], + "src": "670:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "781:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "798:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "801:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "791:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "791:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "791:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "895:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "898:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "888:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "888:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "888:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "919:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "922:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "912:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "912:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "912:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "753:180:1" + } + ] + }, + "contents": "{\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80631b9265b81461003b5780632630dd3a14610059575b600080fd5b610043610063565b6040516100509190610096565b60405180910390f35b61006161006c565b005b60008054905090565b600160008082825461007e91906100b1565b92505081905550565b61009081610107565b82525050565b60006020820190506100ab6000830184610087565b92915050565b60006100bc82610107565b91506100c783610107565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156100fc576100fb610111565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212202c392d8e6d353efeebe211265316085d0f1c5ba0659d4b6db48a323701fa52b464736f6c63430008070033", + "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 0x1B9265B8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x2630DD3A EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x7E SWAP2 SWAP1 PUSH2 0xB1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x90 DUP2 PUSH2 0x107 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC DUP3 PUSH2 0x107 JUMP JUMPDEST SWAP2 POP PUSH2 0xC7 DUP4 PUSH2 0x107 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xFC JUMPI PUSH2 0xFB PUSH2 0x111 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2C CODECOPY 0x2D DUP15 PUSH14 0x353EFEEBE211265316085D0F1C5B LOG0 PUSH6 0x9D4B6DB48A32 CALLDATACOPY ADD STATICCALL MSTORE 0xB4 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:362:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;347:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;265:55;;;:::i;:::-;;347:74;383:4;407:6;;400:13;;347:74;:::o;265:55::-;311:1;301:6;;:11;;;;;;;:::i;:::-;;;;;;;;265:55::o;7:118:1:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;7:118;;:::o;131:222::-;224:4;262:2;251:9;247:18;239:26;;275:71;343:1;332:9;328:17;319:6;275:71;:::i;:::-;131:222;;;;:::o;359:305::-;399:3;418:20;436:1;418:20;:::i;:::-;413:25;;452:20;470:1;452:20;:::i;:::-;447:25;;606:1;538:66;534:74;531:1;528:81;525:107;;;612:18;;:::i;:::-;525:107;656:1;653;649:9;642:16;;359:305;;;;:::o;670:77::-;707:7;736:5;725:16;;670:77;;;:::o;753:180::-;801:77;798:1;791:88;898:4;895:1;888:15;922:4;919:1;912:15" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "74800", + "executionCost": "5137", + "totalCost": "79937" + }, + "external": { + "doWork()": "infinite", + "pay()": "2415" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 424, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 424, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 424, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 171, + "end": 214, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 171, + "end": 214, + "name": "DUP1", + "source": 0 + }, + { + "begin": 171, + "end": 214, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 171, + "end": 214, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 171, + "end": 214, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 171, + "end": 214, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 171, + "end": 214, + "name": "DUP1", + "source": 0 + }, + { + "begin": 171, + "end": 214, + "name": "REVERT", + "source": 0 + }, + { + "begin": 171, + "end": 214, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 171, + "end": 214, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 171, + "end": 214, + "name": "POP", + "source": 0 + }, + { + "begin": 205, + "end": 206, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 196, + "end": 202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 196, + "end": 206, + "name": "DUP2", + "source": 0 + }, + { + "begin": 196, + "end": 206, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 196, + "end": 206, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 196, + "end": 206, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 424, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 424, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 424, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 424, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a26469706673582212202c392d8e6d353efeebe211265316085d0f1c5ba0659d4b6db48a323701fa52b464736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 424, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 424, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 424, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 424, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 424, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 424, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 424, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 424, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 424, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 424, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "PUSH", + "source": 0, + "value": "1B9265B8" + }, + { + "begin": 62, + "end": 424, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 424, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "PUSH", + "source": 0, + "value": "2630DD3A" + }, + { + "begin": 62, + "end": 424, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 424, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 424, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 424, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 424, + "name": "REVERT", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 347, + "end": 421, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 347, + "end": 421, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 347, + "end": 421, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 347, + "end": 421, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 347, + "end": 421, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 347, + "end": 421, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 347, + "end": 421, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 347, + "end": 421, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 347, + "end": 421, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 347, + "end": 421, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 347, + "end": 421, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "DUP1", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "SUB", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "RETURN", + "source": 0 + }, + { + "begin": 265, + "end": 320, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 265, + "end": 320, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 265, + "end": 320, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 265, + "end": 320, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 265, + "end": 320, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 265, + "end": 320, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 265, + "end": 320, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 265, + "end": 320, + "name": "STOP", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 347, + "end": 421, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 383, + "end": 387, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 407, + "end": 413, + "name": "DUP1", + "source": 0 + }, + { + "begin": 407, + "end": 413, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 400, + "end": 413, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 400, + "end": 413, + "name": "POP", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 347, + "end": 421, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 265, + "end": 320, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 265, + "end": 320, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 311, + "end": 312, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 301, + "end": 307, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 301, + "end": 307, + "name": "DUP1", + "source": 0 + }, + { + "begin": 301, + "end": 312, + "name": "DUP3", + "source": 0 + }, + { + "begin": 301, + "end": 312, + "name": "DUP3", + "source": 0 + }, + { + "begin": 301, + "end": 312, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 301, + "end": 312, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 301, + "end": 312, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 301, + "end": 312, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 301, + "end": 312, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 301, + "end": 312, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 301, + "end": 312, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 301, + "end": 312, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 301, + "end": 312, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 301, + "end": 312, + "name": "POP", + "source": 0 + }, + { + "begin": 301, + "end": 312, + "name": "POP", + "source": 0 + }, + { + "begin": 301, + "end": 312, + "name": "DUP2", + "source": 0 + }, + { + "begin": 301, + "end": 312, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 301, + "end": 312, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 301, + "end": 312, + "name": "POP", + "source": 0 + }, + { + "begin": 265, + "end": 320, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 125, + "name": "tag", + "source": 1, + "value": "16" + }, + { + "begin": 7, + "end": 125, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 94, + "end": 118, + "name": "PUSH [tag]", + "source": 1, + "value": "18" + }, + { + "begin": 112, + "end": 117, + "name": "DUP2", + "source": 1 + }, + { + "begin": 94, + "end": 118, + "name": "PUSH [tag]", + "source": 1, + "value": "19" + }, + { + "begin": 94, + "end": 118, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 94, + "end": 118, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 94, + "end": 118, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 89, + "end": 92, + "name": "DUP3", + "source": 1 + }, + { + "begin": 82, + "end": 119, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 7, + "end": 125, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 125, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 125, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 131, + "end": 353, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 131, + "end": 353, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 224, + "end": 228, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 262, + "end": 264, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 251, + "end": 260, + "name": "DUP3", + "source": 1 + }, + { + "begin": 247, + "end": 265, + "name": "ADD", + "source": 1 + }, + { + "begin": 239, + "end": 265, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 239, + "end": 265, + "name": "POP", + "source": 1 + }, + { + "begin": 275, + "end": 346, + "name": "PUSH [tag]", + "source": 1, + "value": "21" + }, + { + "begin": 343, + "end": 344, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 332, + "end": 341, + "name": "DUP4", + "source": 1 + }, + { + "begin": 328, + "end": 345, + "name": "ADD", + "source": 1 + }, + { + "begin": 319, + "end": 325, + "name": "DUP5", + "source": 1 + }, + { + "begin": 275, + "end": 346, + "name": "PUSH [tag]", + "source": 1, + "value": "16" + }, + { + "begin": 275, + "end": 346, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 275, + "end": 346, + "name": "tag", + "source": 1, + "value": "21" + }, + { + "begin": 275, + "end": 346, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "POP", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "POP", + "source": 1 + }, + { + "begin": 131, + "end": 353, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 359, + "end": 664, + "name": "tag", + "source": 1, + "value": "14" + }, + { + "begin": 359, + "end": 664, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 399, + "end": 402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 418, + "end": 438, + "name": "PUSH [tag]", + "source": 1, + "value": "23" + }, + { + "begin": 436, + "end": 437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 418, + "end": 438, + "name": "PUSH [tag]", + "source": 1, + "value": "19" + }, + { + "begin": 418, + "end": 438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 418, + "end": 438, + "name": "tag", + "source": 1, + "value": "23" + }, + { + "begin": 418, + "end": 438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 413, + "end": 438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 413, + "end": 438, + "name": "POP", + "source": 1 + }, + { + "begin": 452, + "end": 472, + "name": "PUSH [tag]", + "source": 1, + "value": "24" + }, + { + "begin": 470, + "end": 471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 452, + "end": 472, + "name": "PUSH [tag]", + "source": 1, + "value": "19" + }, + { + "begin": 452, + "end": 472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 452, + "end": 472, + "name": "tag", + "source": 1, + "value": "24" + }, + { + "begin": 452, + "end": 472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 447, + "end": 472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 447, + "end": 472, + "name": "POP", + "source": 1 + }, + { + "begin": 606, + "end": 607, + "name": "DUP3", + "source": 1 + }, + { + "begin": 538, + "end": 604, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 534, + "end": 608, + "name": "SUB", + "source": 1 + }, + { + "begin": 531, + "end": 532, + "name": "DUP3", + "source": 1 + }, + { + "begin": 528, + "end": 609, + "name": "GT", + "source": 1 + }, + { + "begin": 525, + "end": 632, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 525, + "end": 632, + "name": "PUSH [tag]", + "source": 1, + "value": "25" + }, + { + "begin": 525, + "end": 632, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 612, + "end": 630, + "name": "PUSH [tag]", + "source": 1, + "value": "26" + }, + { + "begin": 612, + "end": 630, + "name": "PUSH [tag]", + "source": 1, + "value": "27" + }, + { + "begin": 612, + "end": 630, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 612, + "end": 630, + "name": "tag", + "source": 1, + "value": "26" + }, + { + "begin": 612, + "end": 630, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 525, + "end": 632, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 525, + "end": 632, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 656, + "end": 657, + "name": "DUP3", + "source": 1 + }, + { + "begin": 653, + "end": 654, + "name": "DUP3", + "source": 1 + }, + { + "begin": 649, + "end": 658, + "name": "ADD", + "source": 1 + }, + { + "begin": 642, + "end": 658, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 642, + "end": 658, + "name": "POP", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "POP", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "POP", + "source": 1 + }, + { + "begin": 359, + "end": 664, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 670, + "end": 747, + "name": "tag", + "source": 1, + "value": "19" + }, + { + "begin": 670, + "end": 747, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 707, + "end": 714, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 736, + "end": 741, + "name": "DUP2", + "source": 1 + }, + { + "begin": 725, + "end": 741, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 725, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 670, + "end": 747, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 670, + "end": 747, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 670, + "end": 747, + "name": "POP", + "source": 1 + }, + { + "begin": 670, + "end": 747, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 753, + "end": 933, + "name": "tag", + "source": 1, + "value": "27" + }, + { + "begin": 753, + "end": 933, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 801, + "end": 878, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 798, + "end": 799, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 791, + "end": 879, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 898, + "end": 902, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 895, + "end": 896, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 888, + "end": 903, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 922, + "end": 926, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 919, + "end": 920, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 912, + "end": 927, + "name": "REVERT", + "source": 1 + } + ] + } + } + }, + "methodIdentifiers": { + "doWork()": "2630dd3a", + "pay()": "1b9265b8" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"doWork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep1/work.sol\":\"Work\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep1/work.sol\":{\"keccak256\":\"0x62dede35857b1ccb4cc7883fcb8d577a72058f9718dff8a466d150e6a8523315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://533ef26c7819e5d1c754848d246c64e71342ec4276a32ebeee3930ffc58c6342\",\"dweb:/ipfs/QmaGr1avmue3eK168cEFsQEqNGEhMTc6WmwGL8R6T5EuHG\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 3, + "contract": "Ep1/work.sol:Work", + "label": "salary", + "offset": 0, + "slot": "0", + "type": "t_uint256" + } + ], + "types": { + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep1/work.sol": { + "ast": { + "absolutePath": "Ep1/work.sol", + "exportedSymbols": { + "Work": [ + 28 + ] + }, + "id": 29, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 28, + "linearizedBaseContracts": [ + 28 + ], + "name": "Work", + "nameLocation": "71:4:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3, + "mutability": "mutable", + "name": "salary", + "nameLocation": "96:6:0", + "nodeType": "VariableDeclaration", + "scope": 28, + "src": "83:19:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "83:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 10, + "nodeType": "Block", + "src": "185:29:0", + "statements": [ + { + "expression": { + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6, + "name": "salary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "196:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "205:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "196:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "196:10:0" + } + ] + }, + "id": 11, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4, + "nodeType": "ParameterList", + "parameters": [], + "src": "182:2:0" + }, + "returnParameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:0:0" + }, + "scope": 28, + "src": "171:43:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 18, + "nodeType": "Block", + "src": "290:30:0", + "statements": [ + { + "expression": { + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14, + "name": "salary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "301:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "311:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "301:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17, + "nodeType": "ExpressionStatement", + "src": "301:11:0" + } + ] + }, + "functionSelector": "2630dd3a", + "id": 19, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "doWork", + "nameLocation": "274:6:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [], + "src": "280:2:0" + }, + "returnParameters": { + "id": 13, + "nodeType": "ParameterList", + "parameters": [], + "src": "290:0:0" + }, + "scope": 28, + "src": "265:55:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 26, + "nodeType": "Block", + "src": "389:32:0", + "statements": [ + { + "expression": { + "id": 24, + "name": "salary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "407:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 23, + "id": 25, + "nodeType": "Return", + "src": "400:13:0" + } + ] + }, + "functionSelector": "1b9265b8", + "id": 27, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "pay", + "nameLocation": "356:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 20, + "nodeType": "ParameterList", + "parameters": [], + "src": "359:2:0" + }, + "returnParameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 22, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "383:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "383:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "382:6:0" + }, + "scope": 28, + "src": "347:74:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 29, + "src": "62:362:0", + "usedErrors": [] + } + ], + "src": "33:391:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep1/work.sol b/Ep1/work.sol index 9ddb3fd..be5fd74 100644 --- a/Ep1/work.sol +++ b/Ep1/work.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.7; +pragma solidity ^0.8.7.0; contract Work { - uint salary; + uint private salary; // Create a new work contract to initialize the salary constructor() { diff --git a/Ep2/artifacts/Bank.json b/Ep2/artifacts/Bank.json index 7c63c31..b416389 100644 --- a/Ep2/artifacts/Bank.json +++ b/Ep2/artifacts/Bank.json @@ -617,68 +617,74 @@ } ], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060405161053d38038061053d83398181016040528101906100329190610095565b8060008190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506100e8565b60008151905061008f816100d1565b92915050565b6000602082840312156100ab576100aa6100cc565b5b60006100b984828501610080565b91505092915050565b6000819050919050565b600080fd5b6100da816100c2565b81146100e557600080fd5b50565b610446806100f76000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806324b8ba5f146100465780632e1a7d4d14610062578063b6b55f251461007e575b600080fd5b610060600480360381019061005b919061021f565b61009a565b005b61007c6004803603810190610077919061024c565b6100c7565b005b6100986004803603810190610093919061024c565b610147565b005b80600460006101000a81548160ff021916908360028111156100bf576100be6103b5565b5b021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461012157600080fd5b600054811115610144578060008082825461013c9190610316565b925050819055505b50565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146101a157600080fd5b806000808282546101b291906102c0565b925050819055507f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c433826040516101ea929190610297565b60405180910390a150565b600081359050610204816103e9565b92915050565b600081359050610219816103f9565b92915050565b600060208284031215610235576102346103e4565b5b6000610243848285016101f5565b91505092915050565b600060208284031215610262576102616103e4565b5b60006102708482850161020a565b91505092915050565b6102828161034a565b82525050565b6102918161037c565b82525050565b60006040820190506102ac6000830185610279565b6102b96020830184610288565b9392505050565b60006102cb8261037c565b91506102d68361037c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561030b5761030a610386565b5b828201905092915050565b60006103218261037c565b915061032c8361037c565b92508282101561033f5761033e610386565b5b828203905092915050565b60006103558261035c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600080fd5b600381106103f657600080fd5b50565b6104028161037c565b811461040d57600080fd5b5056fea26469706673582212204cfb10fee983d5cc2a6447fd4d645cfa59afb2fe3f3b44e5c32726ea8462a38d64736f6c63430008070033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x53D CODESIZE SUB DUP1 PUSH2 0x53D DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x95 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP CALLER 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 POP PUSH2 0xE8 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x8F DUP2 PUSH2 0xD1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAB JUMPI PUSH2 0xAA PUSH2 0xCC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB9 DUP5 DUP3 DUP6 ADD PUSH2 0x80 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDA DUP2 PUSH2 0xC2 JUMP JUMPDEST DUP2 EQ PUSH2 0xE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x446 DUP1 PUSH2 0xF7 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x24B8BA5F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x21F JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x77 SWAP2 SWAP1 PUSH2 0x24C JUMP JUMPDEST PUSH2 0xC7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x98 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x24C JUMP JUMPDEST PUSH2 0x147 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBF JUMPI PUSH2 0xBE PUSH2 0x3B5 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD DUP2 GT ISZERO PUSH2 0x144 JUMPI DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x13C SWAP2 SWAP1 PUSH2 0x316 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x1B2 SWAP2 SWAP1 PUSH2 0x2C0 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x2DA466A7B24304F47E87FA2E1E5A81B9831CE54FEC19055CE277CA2F39BA42C4 CALLER DUP3 PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP3 SWAP2 SWAP1 PUSH2 0x297 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x204 DUP2 PUSH2 0x3E9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x219 DUP2 PUSH2 0x3F9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x235 JUMPI PUSH2 0x234 PUSH2 0x3E4 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x243 DUP5 DUP3 DUP6 ADD PUSH2 0x1F5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x262 JUMPI PUSH2 0x261 PUSH2 0x3E4 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x270 DUP5 DUP3 DUP6 ADD PUSH2 0x20A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x282 DUP2 PUSH2 0x34A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x291 DUP2 PUSH2 0x37C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2AC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x279 JUMP JUMPDEST PUSH2 0x2B9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x288 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CB DUP3 PUSH2 0x37C JUMP JUMPDEST SWAP2 POP PUSH2 0x2D6 DUP4 PUSH2 0x37C JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x30B JUMPI PUSH2 0x30A PUSH2 0x386 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x321 DUP3 PUSH2 0x37C JUMP JUMPDEST SWAP2 POP PUSH2 0x32C DUP4 PUSH2 0x37C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x33F JUMPI PUSH2 0x33E PUSH2 0x386 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x355 DUP3 PUSH2 0x35C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x3F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x402 DUP2 PUSH2 0x37C JUMP JUMPDEST DUP2 EQ PUSH2 0x40D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4C 0xFB LT INVALID 0xE9 DUP4 0xD5 0xCC 0x2A PUSH5 0x47FD4D645C STATICCALL MSIZE 0xAF 0xB2 INVALID EXTCODEHASH EXTCODESIZE DIFFICULTY 0xE5 0xC3 0x27 0x26 0xEA DUP5 PUSH3 0xA38D64 PUSH20 0x6F6C634300080700330000000000000000000000 ", - "sourceMap": "84:2394:0:-:0;;;464:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;508:6;500:5;:14;;;;533:10;525:5;;:18;;;;;;;;;;;;;;;;;;464:87;84:2394;;7:143:1;64:5;95:6;89:13;80:22;;111:33;138:5;111:33;:::i;:::-;7:143;;;;:::o;156:351::-;226:6;275:2;263:9;254:7;250:23;246:32;243:119;;;281:79;;:::i;:::-;243:119;401:1;426:64;482:7;473:6;462:9;458:22;426:64;:::i;:::-;416:74;;372:128;156:351;;;;:::o;594:77::-;631:7;660:5;649:16;;594:77;;;:::o;800:117::-;909:1;906;899:12;923:122;996:24;1014:5;996:24;:::i;:::-;989:5;986:35;976:63;;1035:1;1032;1025:12;976:63;923:122;:::o;84:2394:0:-;;;;;;;" + "object": "608060405234801561001057600080fd5b506040516105a63803806105a683398181016040528101906100329190610095565b8060008190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506100e8565b60008151905061008f816100d1565b92915050565b6000602082840312156100ab576100aa6100cc565b5b60006100b984828501610080565b91505092915050565b6000819050919050565b600080fd5b6100da816100c2565b81146100e557600080fd5b50565b6104af806100f76000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806324b8ba5f146100465780632e1a7d4d14610062578063b6b55f251461007e575b600080fd5b610060600480360381019061005b919061025f565b61009a565b005b61007c6004803603810190610077919061028c565b6100c7565b005b6100986004803603810190610093919061028c565b610187565b005b80600460006101000a81548160ff021916908360028111156100bf576100be61041e565b5b021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461012157600080fd5b60005481111561016c57806000546040517f8c905368000000000000000000000000000000000000000000000000000000008152600401610163929190610300565b60405180910390fd5b8060008082825461017d919061037f565b9250508190555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146101e157600080fd5b806000808282546101f29190610329565b925050819055507f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4338260405161022a9291906102d7565b60405180910390a150565b60008135905061024481610452565b92915050565b60008135905061025981610462565b92915050565b6000602082840312156102755761027461044d565b5b600061028384828501610235565b91505092915050565b6000602082840312156102a2576102a161044d565b5b60006102b08482850161024a565b91505092915050565b6102c2816103b3565b82525050565b6102d1816103e5565b82525050565b60006040820190506102ec60008301856102b9565b6102f960208301846102c8565b9392505050565b600060408201905061031560008301856102c8565b61032260208301846102c8565b9392505050565b6000610334826103e5565b915061033f836103e5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610374576103736103ef565b5b828201905092915050565b600061038a826103e5565b9150610395836103e5565b9250828210156103a8576103a76103ef565b5b828203905092915050565b60006103be826103c5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600080fd5b6003811061045f57600080fd5b50565b61046b816103e5565b811461047657600080fd5b5056fea2646970667358221220da1a5fc40ade22cdc923b1f8682facc441dc9e7c42f833e07b99f3fcd07cfea964736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x5A6 CODESIZE SUB DUP1 PUSH2 0x5A6 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x95 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP CALLER 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 POP PUSH2 0xE8 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x8F DUP2 PUSH2 0xD1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAB JUMPI PUSH2 0xAA PUSH2 0xCC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB9 DUP5 DUP3 DUP6 ADD PUSH2 0x80 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDA DUP2 PUSH2 0xC2 JUMP JUMPDEST DUP2 EQ PUSH2 0xE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x4AF DUP1 PUSH2 0xF7 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x24B8BA5F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x25F JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x77 SWAP2 SWAP1 PUSH2 0x28C JUMP JUMPDEST PUSH2 0xC7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x98 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x28C JUMP JUMPDEST PUSH2 0x187 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBF JUMPI PUSH2 0xBE PUSH2 0x41E JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD DUP2 GT ISZERO PUSH2 0x16C JUMPI DUP1 PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x8C90536800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x163 SWAP3 SWAP2 SWAP1 PUSH2 0x300 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x17D SWAP2 SWAP1 PUSH2 0x37F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0x329 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x2DA466A7B24304F47E87FA2E1E5A81B9831CE54FEC19055CE277CA2F39BA42C4 CALLER DUP3 PUSH1 0x40 MLOAD PUSH2 0x22A SWAP3 SWAP2 SWAP1 PUSH2 0x2D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x244 DUP2 PUSH2 0x452 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x259 DUP2 PUSH2 0x462 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x275 JUMPI PUSH2 0x274 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x283 DUP5 DUP3 DUP6 ADD PUSH2 0x235 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A2 JUMPI PUSH2 0x2A1 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B0 DUP5 DUP3 DUP6 ADD PUSH2 0x24A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2C2 DUP2 PUSH2 0x3B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2D1 DUP2 PUSH2 0x3E5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2EC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2B9 JUMP JUMPDEST PUSH2 0x2F9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2C8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x315 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2C8 JUMP JUMPDEST PUSH2 0x322 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2C8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334 DUP3 PUSH2 0x3E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x33F DUP4 PUSH2 0x3E5 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x374 JUMPI PUSH2 0x373 PUSH2 0x3EF JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38A DUP3 PUSH2 0x3E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x395 DUP4 PUSH2 0x3E5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x3A8 JUMPI PUSH2 0x3A7 PUSH2 0x3EF JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BE DUP3 PUSH2 0x3C5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x46B DUP2 PUSH2 0x3E5 JUMP JUMPDEST DUP2 EQ PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDA BYTE 0x5F 0xC4 EXP 0xDE 0x22 0xCD 0xC9 0x23 0xB1 0xF8 PUSH9 0x2FACC441DC9E7C42F8 CALLER 0xE0 PUSH28 0x99F3FCD07CFEA964736F6C6343000807003300000000000000000000 ", + "sourceMap": "86:2388:0:-:0;;;466:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;510:6;502:5;:14;;;;535:10;527:5;;:18;;;;;;;;;;;;;;;;;;466:87;86:2388;;7:143:1;64:5;95:6;89:13;80:22;;111:33;138:5;111:33;:::i;:::-;7:143;;;;:::o;156:351::-;226:6;275:2;263:9;254:7;250:23;246:32;243:119;;;281:79;;:::i;:::-;243:119;401:1;426:64;482:7;473:6;462:9;458:22;426:64;:::i;:::-;416:74;;372:128;156:351;;;;:::o;594:77::-;631:7;660:5;649:16;;594:77;;;:::o;800:117::-;909:1;906;899:12;923:122;996:24;1014:5;996:24;:::i;:::-;989:5;986:35;976:63;;1035:1;1032;1025:12;976:63;923:122;:::o;86:2388:0:-;;;;;;;" }, "deployedBytecode": { "functionDebugData": { "@deposit_61": { - "entryPoint": 327, + "entryPoint": 391, "id": 61, "parameterSlots": 1, "returnSlots": 0 }, - "@set_107": { + "@set_119": { "entryPoint": 154, - "id": 107, + "id": 119, "parameterSlots": 1, "returnSlots": 0 }, - "@withdraw_78": { + "@withdraw_90": { "entryPoint": 199, - "id": 78, + "id": 90, "parameterSlots": 1, "returnSlots": 0 }, - "abi_decode_t_enum$_Status_$91": { - "entryPoint": 501, + "abi_decode_t_enum$_Status_$103": { + "entryPoint": 565, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_t_uint256": { - "entryPoint": 522, + "entryPoint": 586, "id": null, "parameterSlots": 2, "returnSlots": 1 }, - "abi_decode_tuple_t_enum$_Status_$91": { - "entryPoint": 543, + "abi_decode_tuple_t_enum$_Status_$103": { + "entryPoint": 607, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_uint256": { - "entryPoint": 588, + "entryPoint": 652, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_t_address_to_t_address_fromStack": { - "entryPoint": 633, + "entryPoint": 697, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "abi_encode_t_uint256_to_t_uint256_fromStack": { - "entryPoint": 648, + "entryPoint": 712, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { - "entryPoint": 663, + "entryPoint": 727, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 768, "id": null, "parameterSlots": 3, "returnSlots": 1 @@ -690,43 +696,43 @@ "returnSlots": 1 }, "checked_add_t_uint256": { - "entryPoint": 704, + "entryPoint": 809, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "checked_sub_t_uint256": { - "entryPoint": 790, + "entryPoint": 895, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "cleanup_t_address": { - "entryPoint": 842, + "entryPoint": 947, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_uint160": { - "entryPoint": 860, + "entryPoint": 965, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_uint256": { - "entryPoint": 892, + "entryPoint": 997, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "panic_error_0x11": { - "entryPoint": 902, + "entryPoint": 1007, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "panic_error_0x21": { - "entryPoint": 949, + "entryPoint": 1054, "id": null, "parameterSlots": 0, "returnSlots": 0 @@ -738,19 +744,19 @@ "returnSlots": 0 }, "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 996, + "entryPoint": 1101, "id": null, "parameterSlots": 0, "returnSlots": 0 }, - "validator_revert_t_enum$_Status_$91": { - "entryPoint": 1001, + "validator_revert_t_enum$_Status_$103": { + "entryPoint": 1106, "id": null, "parameterSlots": 1, "returnSlots": 0 }, "validator_revert_t_uint256": { - "entryPoint": 1017, + "entryPoint": 1122, "id": null, "parameterSlots": 1, "returnSlots": 0 @@ -760,37 +766,37 @@ { "ast": { "nodeType": "YulBlock", - "src": "0:3352:1", + "src": "0:3695:1", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "68:96:1", + "src": "69:97:1", "statements": [ { "nodeType": "YulAssignment", - "src": "78:29:1", + "src": "79:29:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "100:6:1" + "src": "101:6:1" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "87:12:1" + "src": "88:12:1" }, "nodeType": "YulFunctionCall", - "src": "87:20:1" + "src": "88:20:1" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "78:5:1" + "src": "79:5:1" } ] }, @@ -800,35 +806,35 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "152:5:1" + "src": "154:5:1" } ], "functionName": { - "name": "validator_revert_t_enum$_Status_$91", + "name": "validator_revert_t_enum$_Status_$103", "nodeType": "YulIdentifier", - "src": "116:35:1" + "src": "117:36:1" }, "nodeType": "YulFunctionCall", - "src": "116:42:1" + "src": "117:43:1" }, "nodeType": "YulExpressionStatement", - "src": "116:42:1" + "src": "117:43:1" } ] }, - "name": "abi_decode_t_enum$_Status_$91", + "name": "abi_decode_t_enum$_Status_$103", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "46:6:1", + "src": "47:6:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "54:3:1", + "src": "55:3:1", "type": "" } ], @@ -836,41 +842,41 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "62:5:1", + "src": "63:5:1", "type": "" } ], - "src": "7:157:1" + "src": "7:159:1" }, { "body": { "nodeType": "YulBlock", - "src": "222:87:1", + "src": "224:87:1", "statements": [ { "nodeType": "YulAssignment", - "src": "232:29:1", + "src": "234:29:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "254:6:1" + "src": "256:6:1" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "241:12:1" + "src": "243:12:1" }, "nodeType": "YulFunctionCall", - "src": "241:20:1" + "src": "243:20:1" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "232:5:1" + "src": "234:5:1" } ] }, @@ -880,19 +886,19 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "297:5:1" + "src": "299:5:1" } ], "functionName": { "name": "validator_revert_t_uint256", "nodeType": "YulIdentifier", - "src": "270:26:1" + "src": "272:26:1" }, "nodeType": "YulFunctionCall", - "src": "270:33:1" + "src": "272:33:1" }, "nodeType": "YulExpressionStatement", - "src": "270:33:1" + "src": "272:33:1" } ] }, @@ -902,13 +908,13 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "200:6:1", + "src": "202:6:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "208:3:1", + "src": "210:3:1", "type": "" } ], @@ -916,21 +922,21 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "216:5:1", + "src": "218:5:1", "type": "" } ], - "src": "170:139:1" + "src": "172:139:1" }, { "body": { "nodeType": "YulBlock", - "src": "390:272:1", + "src": "393:273:1", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "436:83:1", + "src": "439:83:1", "statements": [ { "expression": { @@ -938,13 +944,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "438:77:1" + "src": "441:77:1" }, "nodeType": "YulFunctionCall", - "src": "438:79:1" + "src": "441:79:1" }, "nodeType": "YulExpressionStatement", - "src": "438:79:1" + "src": "441:79:1" } ] }, @@ -955,26 +961,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "411:7:1" + "src": "414:7:1" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "420:9:1" + "src": "423:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "407:3:1" + "src": "410:3:1" }, "nodeType": "YulFunctionCall", - "src": "407:23:1" + "src": "410:23:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "432:2:1", + "src": "435:2:1", "type": "", "value": "32" } @@ -982,25 +988,25 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "403:3:1" + "src": "406:3:1" }, "nodeType": "YulFunctionCall", - "src": "403:32:1" + "src": "406:32:1" }, "nodeType": "YulIf", - "src": "400:119:1" + "src": "403:119:1" }, { "nodeType": "YulBlock", - "src": "529:126:1", + "src": "532:127:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "544:15:1", + "src": "547:15:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "558:1:1", + "src": "561:1:1", "type": "", "value": "0" }, @@ -1008,14 +1014,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "548:6:1", + "src": "551:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "573:72:1", + "src": "576:73:1", "value": { "arguments": [ { @@ -1023,41 +1029,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "617:9:1" + "src": "621:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "628:6:1" + "src": "632:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "613:3:1" + "src": "617:3:1" }, "nodeType": "YulFunctionCall", - "src": "613:22:1" + "src": "617:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "637:7:1" + "src": "641:7:1" } ], "functionName": { - "name": "abi_decode_t_enum$_Status_$91", + "name": "abi_decode_t_enum$_Status_$103", "nodeType": "YulIdentifier", - "src": "583:29:1" + "src": "586:30:1" }, "nodeType": "YulFunctionCall", - "src": "583:62:1" + "src": "586:63:1" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "573:6:1" + "src": "576:6:1" } ] } @@ -1065,19 +1071,19 @@ } ] }, - "name": "abi_decode_tuple_t_enum$_Status_$91", + "name": "abi_decode_tuple_t_enum$_Status_$103", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "360:9:1", + "src": "363:9:1", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "371:7:1", + "src": "374:7:1", "type": "" } ], @@ -1085,21 +1091,21 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "383:6:1", + "src": "386:6:1", "type": "" } ], - "src": "315:347:1" + "src": "317:349:1" }, { "body": { "nodeType": "YulBlock", - "src": "734:263:1", + "src": "738:263:1", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "780:83:1", + "src": "784:83:1", "statements": [ { "expression": { @@ -1107,13 +1113,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "782:77:1" + "src": "786:77:1" }, "nodeType": "YulFunctionCall", - "src": "782:79:1" + "src": "786:79:1" }, "nodeType": "YulExpressionStatement", - "src": "782:79:1" + "src": "786:79:1" } ] }, @@ -1124,26 +1130,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "755:7:1" + "src": "759:7:1" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "764:9:1" + "src": "768:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "751:3:1" + "src": "755:3:1" }, "nodeType": "YulFunctionCall", - "src": "751:23:1" + "src": "755:23:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "776:2:1", + "src": "780:2:1", "type": "", "value": "32" } @@ -1151,25 +1157,25 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "747:3:1" + "src": "751:3:1" }, "nodeType": "YulFunctionCall", - "src": "747:32:1" + "src": "751:32:1" }, "nodeType": "YulIf", - "src": "744:119:1" + "src": "748:119:1" }, { "nodeType": "YulBlock", - "src": "873:117:1", + "src": "877:117:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "888:15:1", + "src": "892:15:1", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "902:1:1", + "src": "906:1:1", "type": "", "value": "0" }, @@ -1177,14 +1183,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "892:6:1", + "src": "896:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "917:63:1", + "src": "921:63:1", "value": { "arguments": [ { @@ -1192,41 +1198,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "952:9:1" + "src": "956:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "963:6:1" + "src": "967:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "948:3:1" + "src": "952:3:1" }, "nodeType": "YulFunctionCall", - "src": "948:22:1" + "src": "952:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "972:7:1" + "src": "976:7:1" } ], "functionName": { "name": "abi_decode_t_uint256", "nodeType": "YulIdentifier", - "src": "927:20:1" + "src": "931:20:1" }, "nodeType": "YulFunctionCall", - "src": "927:53:1" + "src": "931:53:1" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "917:6:1" + "src": "921:6:1" } ] } @@ -1240,13 +1246,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "704:9:1", + "src": "708:9:1", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "715:7:1", + "src": "719:7:1", "type": "" } ], @@ -1254,16 +1260,16 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "727:6:1", + "src": "731:6:1", "type": "" } ], - "src": "668:329:1" + "src": "672:329:1" }, { "body": { "nodeType": "YulBlock", - "src": "1068:53:1", + "src": "1072:53:1", "statements": [ { "expression": { @@ -1271,35 +1277,35 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "1085:3:1" + "src": "1089:3:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "1108:5:1" + "src": "1112:5:1" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", - "src": "1090:17:1" + "src": "1094:17:1" }, "nodeType": "YulFunctionCall", - "src": "1090:24:1" + "src": "1094:24:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1078:6:1" + "src": "1082:6:1" }, "nodeType": "YulFunctionCall", - "src": "1078:37:1" + "src": "1082:37:1" }, "nodeType": "YulExpressionStatement", - "src": "1078:37:1" + "src": "1082:37:1" } ] }, @@ -1309,22 +1315,22 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "1056:5:1", + "src": "1060:5:1", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "1063:3:1", + "src": "1067:3:1", "type": "" } ], - "src": "1003:118:1" + "src": "1007:118:1" }, { "body": { "nodeType": "YulBlock", - "src": "1192:53:1", + "src": "1196:53:1", "statements": [ { "expression": { @@ -1332,35 +1338,35 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "1209:3:1" + "src": "1213:3:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "1232:5:1" + "src": "1236:5:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "1214:17:1" + "src": "1218:17:1" }, "nodeType": "YulFunctionCall", - "src": "1214:24:1" + "src": "1218:24:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1202:6:1" + "src": "1206:6:1" }, "nodeType": "YulFunctionCall", - "src": "1202:37:1" + "src": "1206:37:1" }, "nodeType": "YulExpressionStatement", - "src": "1202:37:1" + "src": "1206:37:1" } ] }, @@ -1370,37 +1376,37 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "1180:5:1", + "src": "1184:5:1", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "1187:3:1", + "src": "1191:3:1", "type": "" } ], - "src": "1127:118:1" + "src": "1131:118:1" }, { "body": { "nodeType": "YulBlock", - "src": "1377:206:1", + "src": "1381:206:1", "statements": [ { "nodeType": "YulAssignment", - "src": "1387:26:1", + "src": "1391:26:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1399:9:1" + "src": "1403:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1410:2:1", + "src": "1414:2:1", "type": "", "value": "64" } @@ -1408,16 +1414,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1395:3:1" + "src": "1399:3:1" }, "nodeType": "YulFunctionCall", - "src": "1395:18:1" + "src": "1399:18:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "1387:4:1" + "src": "1391:4:1" } ] }, @@ -1427,19 +1433,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "1467:6:1" + "src": "1471:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1480:9:1" + "src": "1484:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1491:1:1", + "src": "1495:1:1", "type": "", "value": "0" } @@ -1447,22 +1453,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1476:3:1" + "src": "1480:3:1" }, "nodeType": "YulFunctionCall", - "src": "1476:17:1" + "src": "1480:17:1" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "1423:43:1" + "src": "1427:43:1" }, "nodeType": "YulFunctionCall", - "src": "1423:71:1" + "src": "1427:71:1" }, "nodeType": "YulExpressionStatement", - "src": "1423:71:1" + "src": "1427:71:1" }, { "expression": { @@ -1470,19 +1476,19 @@ { "name": "value1", "nodeType": "YulIdentifier", - "src": "1548:6:1" + "src": "1552:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "1561:9:1" + "src": "1565:9:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1572:2:1", + "src": "1576:2:1", "type": "", "value": "32" } @@ -1490,22 +1496,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1557:3:1" + "src": "1561:3:1" }, "nodeType": "YulFunctionCall", - "src": "1557:18:1" + "src": "1561:18:1" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "1504:43:1" + "src": "1508:43:1" }, "nodeType": "YulFunctionCall", - "src": "1504:72:1" + "src": "1508:72:1" }, "nodeType": "YulExpressionStatement", - "src": "1504:72:1" + "src": "1508:72:1" } ] }, @@ -1515,19 +1521,19 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "1341:9:1", + "src": "1345:9:1", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "1353:6:1", + "src": "1357:6:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "1361:6:1", + "src": "1365:6:1", "type": "" } ], @@ -1535,26 +1541,185 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "1372:4:1", + "src": "1376:4:1", "type": "" } ], - "src": "1251:332:1" + "src": "1255:332:1" }, { "body": { "nodeType": "YulBlock", - "src": "1629:35:1", + "src": "1719:206:1", "statements": [ { "nodeType": "YulAssignment", - "src": "1639:19:1", + "src": "1729:26:1", "value": { "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1741:9:1" + }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1655:2:1", + "src": "1752:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1737:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1737:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1729:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1809:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1822:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1833:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1818:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1818:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "1765:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "1765:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1765:71:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1890:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1903:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1914:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1899:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1899:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "1846:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "1846:72:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1846:72:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1683:9:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1695:6:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1703:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1714:4:1", + "type": "" + } + ], + "src": "1593:332:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1971:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1981:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1997:2:1", "type": "", "value": "64" } @@ -1562,16 +1727,16 @@ "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "1649:5:1" + "src": "1991:5:1" }, "nodeType": "YulFunctionCall", - "src": "1649:9:1" + "src": "1991:9:1" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "1639:6:1" + "src": "1981:6:1" } ] } @@ -1583,75 +1748,75 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "1622:6:1", + "src": "1964:6:1", "type": "" } ], - "src": "1589:75:1" + "src": "1931:75:1" }, { "body": { "nodeType": "YulBlock", - "src": "1714:261:1", + "src": "2056:261:1", "statements": [ { "nodeType": "YulAssignment", - "src": "1724:25:1", + "src": "2066:25:1", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "1747:1:1" + "src": "2089:1:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "1729:17:1" + "src": "2071:17:1" }, "nodeType": "YulFunctionCall", - "src": "1729:20:1" + "src": "2071:20:1" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "1724:1:1" + "src": "2066:1:1" } ] }, { "nodeType": "YulAssignment", - "src": "1758:25:1", + "src": "2100:25:1", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "1781:1:1" + "src": "2123:1:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "1763:17:1" + "src": "2105:17:1" }, "nodeType": "YulFunctionCall", - "src": "1763:20:1" + "src": "2105:20:1" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "1758:1:1" + "src": "2100:1:1" } ] }, { "body": { "nodeType": "YulBlock", - "src": "1921:22:1", + "src": "2263:22:1", "statements": [ { "expression": { @@ -1659,13 +1824,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "1923:16:1" + "src": "2265:16:1" }, "nodeType": "YulFunctionCall", - "src": "1923:18:1" + "src": "2265:18:1" }, "nodeType": "YulExpressionStatement", - "src": "1923:18:1" + "src": "2265:18:1" } ] }, @@ -1674,72 +1839,72 @@ { "name": "x", "nodeType": "YulIdentifier", - "src": "1842:1:1" + "src": "2184:1:1" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "1849:66:1", + "src": "2191:66:1", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "1917:1:1" + "src": "2259:1:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "1845:3:1" + "src": "2187:3:1" }, "nodeType": "YulFunctionCall", - "src": "1845:74:1" + "src": "2187:74:1" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "1839:2:1" + "src": "2181:2:1" }, "nodeType": "YulFunctionCall", - "src": "1839:81:1" + "src": "2181:81:1" }, "nodeType": "YulIf", - "src": "1836:107:1" + "src": "2178:107:1" }, { "nodeType": "YulAssignment", - "src": "1953:16:1", + "src": "2295:16:1", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "1964:1:1" + "src": "2306:1:1" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "1967:1:1" + "src": "2309:1:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1960:3:1" + "src": "2302:3:1" }, "nodeType": "YulFunctionCall", - "src": "1960:9:1" + "src": "2302:9:1" }, "variableNames": [ { "name": "sum", "nodeType": "YulIdentifier", - "src": "1953:3:1" + "src": "2295:3:1" } ] } @@ -1751,13 +1916,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "1701:1:1", + "src": "2043:1:1", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "1704:1:1", + "src": "2046:1:1", "type": "" } ], @@ -1765,75 +1930,75 @@ { "name": "sum", "nodeType": "YulTypedName", - "src": "1710:3:1", + "src": "2052:3:1", "type": "" } ], - "src": "1670:305:1" + "src": "2012:305:1" }, { "body": { "nodeType": "YulBlock", - "src": "2026:146:1", + "src": "2368:146:1", "statements": [ { "nodeType": "YulAssignment", - "src": "2036:25:1", + "src": "2378:25:1", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "2059:1:1" + "src": "2401:1:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "2041:17:1" + "src": "2383:17:1" }, "nodeType": "YulFunctionCall", - "src": "2041:20:1" + "src": "2383:20:1" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "2036:1:1" + "src": "2378:1:1" } ] }, { "nodeType": "YulAssignment", - "src": "2070:25:1", + "src": "2412:25:1", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "2093:1:1" + "src": "2435:1:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "2075:17:1" + "src": "2417:17:1" }, "nodeType": "YulFunctionCall", - "src": "2075:20:1" + "src": "2417:20:1" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "2070:1:1" + "src": "2412:1:1" } ] }, { "body": { "nodeType": "YulBlock", - "src": "2117:22:1", + "src": "2459:22:1", "statements": [ { "expression": { @@ -1841,13 +2006,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "2119:16:1" + "src": "2461:16:1" }, "nodeType": "YulFunctionCall", - "src": "2119:18:1" + "src": "2461:18:1" }, "nodeType": "YulExpressionStatement", - "src": "2119:18:1" + "src": "2461:18:1" } ] }, @@ -1856,54 +2021,54 @@ { "name": "x", "nodeType": "YulIdentifier", - "src": "2111:1:1" + "src": "2453:1:1" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "2114:1:1" + "src": "2456:1:1" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "2108:2:1" + "src": "2450:2:1" }, "nodeType": "YulFunctionCall", - "src": "2108:8:1" + "src": "2450:8:1" }, "nodeType": "YulIf", - "src": "2105:34:1" + "src": "2447:34:1" }, { "nodeType": "YulAssignment", - "src": "2149:17:1", + "src": "2491:17:1", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "2161:1:1" + "src": "2503:1:1" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "2164:1:1" + "src": "2506:1:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "2157:3:1" + "src": "2499:3:1" }, "nodeType": "YulFunctionCall", - "src": "2157:9:1" + "src": "2499:9:1" }, "variableNames": [ { "name": "diff", "nodeType": "YulIdentifier", - "src": "2149:4:1" + "src": "2491:4:1" } ] } @@ -1915,13 +2080,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "2012:1:1", + "src": "2354:1:1", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "2015:1:1", + "src": "2357:1:1", "type": "" } ], @@ -1929,41 +2094,41 @@ { "name": "diff", "nodeType": "YulTypedName", - "src": "2021:4:1", + "src": "2363:4:1", "type": "" } ], - "src": "1981:191:1" + "src": "2323:191:1" }, { "body": { "nodeType": "YulBlock", - "src": "2223:51:1", + "src": "2565:51:1", "statements": [ { "nodeType": "YulAssignment", - "src": "2233:35:1", + "src": "2575:35:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "2262:5:1" + "src": "2604:5:1" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", - "src": "2244:17:1" + "src": "2586:17:1" }, "nodeType": "YulFunctionCall", - "src": "2244:24:1" + "src": "2586:24:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "2233:7:1" + "src": "2575:7:1" } ] } @@ -1975,7 +2140,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "2205:5:1", + "src": "2547:5:1", "type": "" } ], @@ -1983,31 +2148,31 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "2215:7:1", + "src": "2557:7:1", "type": "" } ], - "src": "2178:96:1" + "src": "2520:96:1" }, { "body": { "nodeType": "YulBlock", - "src": "2325:81:1", + "src": "2667:81:1", "statements": [ { "nodeType": "YulAssignment", - "src": "2335:65:1", + "src": "2677:65:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "2350:5:1" + "src": "2692:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2357:42:1", + "src": "2699:42:1", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } @@ -2015,16 +2180,16 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "2346:3:1" + "src": "2688:3:1" }, "nodeType": "YulFunctionCall", - "src": "2346:54:1" + "src": "2688:54:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "2335:7:1" + "src": "2677:7:1" } ] } @@ -2036,7 +2201,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "2307:5:1", + "src": "2649:5:1", "type": "" } ], @@ -2044,30 +2209,30 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "2317:7:1", + "src": "2659:7:1", "type": "" } ], - "src": "2280:126:1" + "src": "2622:126:1" }, { "body": { "nodeType": "YulBlock", - "src": "2457:32:1", + "src": "2799:32:1", "statements": [ { "nodeType": "YulAssignment", - "src": "2467:16:1", + "src": "2809:16:1", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "2478:5:1" + "src": "2820:5:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "2467:7:1" + "src": "2809:7:1" } ] } @@ -2079,7 +2244,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "2439:5:1", + "src": "2781:5:1", "type": "" } ], @@ -2087,16 +2252,16 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "2449:7:1", + "src": "2791:7:1", "type": "" } ], - "src": "2412:77:1" + "src": "2754:77:1" }, { "body": { "nodeType": "YulBlock", - "src": "2523:152:1", + "src": "2865:152:1", "statements": [ { "expression": { @@ -2104,14 +2269,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2540:1:1", + "src": "2882:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2543:77:1", + "src": "2885:77:1", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } @@ -2119,13 +2284,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2533:6:1" + "src": "2875:6:1" }, "nodeType": "YulFunctionCall", - "src": "2533:88:1" + "src": "2875:88:1" }, "nodeType": "YulExpressionStatement", - "src": "2533:88:1" + "src": "2875:88:1" }, { "expression": { @@ -2133,14 +2298,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2637:1:1", + "src": "2979:1:1", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2640:4:1", + "src": "2982:4:1", "type": "", "value": "0x11" } @@ -2148,13 +2313,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2630:6:1" + "src": "2972:6:1" }, "nodeType": "YulFunctionCall", - "src": "2630:15:1" + "src": "2972:15:1" }, "nodeType": "YulExpressionStatement", - "src": "2630:15:1" + "src": "2972:15:1" }, { "expression": { @@ -2162,14 +2327,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2661:1:1", + "src": "3003:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2664:4:1", + "src": "3006:4:1", "type": "", "value": "0x24" } @@ -2177,24 +2342,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "2654:6:1" + "src": "2996:6:1" }, "nodeType": "YulFunctionCall", - "src": "2654:15:1" + "src": "2996:15:1" }, "nodeType": "YulExpressionStatement", - "src": "2654:15:1" + "src": "2996:15:1" } ] }, "name": "panic_error_0x11", "nodeType": "YulFunctionDefinition", - "src": "2495:180:1" + "src": "2837:180:1" }, { "body": { "nodeType": "YulBlock", - "src": "2709:152:1", + "src": "3051:152:1", "statements": [ { "expression": { @@ -2202,14 +2367,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2726:1:1", + "src": "3068:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2729:77:1", + "src": "3071:77:1", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } @@ -2217,13 +2382,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2719:6:1" + "src": "3061:6:1" }, "nodeType": "YulFunctionCall", - "src": "2719:88:1" + "src": "3061:88:1" }, "nodeType": "YulExpressionStatement", - "src": "2719:88:1" + "src": "3061:88:1" }, { "expression": { @@ -2231,14 +2396,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2823:1:1", + "src": "3165:1:1", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2826:4:1", + "src": "3168:4:1", "type": "", "value": "0x21" } @@ -2246,13 +2411,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2816:6:1" + "src": "3158:6:1" }, "nodeType": "YulFunctionCall", - "src": "2816:15:1" + "src": "3158:15:1" }, "nodeType": "YulExpressionStatement", - "src": "2816:15:1" + "src": "3158:15:1" }, { "expression": { @@ -2260,14 +2425,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2847:1:1", + "src": "3189:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2850:4:1", + "src": "3192:4:1", "type": "", "value": "0x24" } @@ -2275,24 +2440,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "2840:6:1" + "src": "3182:6:1" }, "nodeType": "YulFunctionCall", - "src": "2840:15:1" + "src": "3182:15:1" }, "nodeType": "YulExpressionStatement", - "src": "2840:15:1" + "src": "3182:15:1" } ] }, "name": "panic_error_0x21", "nodeType": "YulFunctionDefinition", - "src": "2681:180:1" + "src": "3023:180:1" }, { "body": { "nodeType": "YulBlock", - "src": "2956:28:1", + "src": "3298:28:1", "statements": [ { "expression": { @@ -2300,14 +2465,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2973:1:1", + "src": "3315:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2976:1:1", + "src": "3318:1:1", "type": "", "value": "0" } @@ -2315,24 +2480,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "2966:6:1" + "src": "3308:6:1" }, "nodeType": "YulFunctionCall", - "src": "2966:12:1" + "src": "3308:12:1" }, "nodeType": "YulExpressionStatement", - "src": "2966:12:1" + "src": "3308:12:1" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", - "src": "2867:117:1" + "src": "3209:117:1" }, { "body": { "nodeType": "YulBlock", - "src": "3079:28:1", + "src": "3421:28:1", "statements": [ { "expression": { @@ -2340,14 +2505,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "3096:1:1", + "src": "3438:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3099:1:1", + "src": "3441:1:1", "type": "", "value": "0" } @@ -2355,29 +2520,29 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "3089:6:1" + "src": "3431:6:1" }, "nodeType": "YulFunctionCall", - "src": "3089:12:1" + "src": "3431:12:1" }, "nodeType": "YulExpressionStatement", - "src": "3089:12:1" + "src": "3431:12:1" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", - "src": "2990:117:1" + "src": "3332:117:1" }, { "body": { "nodeType": "YulBlock", - "src": "3165:56:1", + "src": "3508:56:1", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "3199:16:1", + "src": "3542:16:1", "statements": [ { "expression": { @@ -2385,14 +2550,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "3208:1:1", + "src": "3551:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3211:1:1", + "src": "3554:1:1", "type": "", "value": "0" } @@ -2400,13 +2565,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "3201:6:1" + "src": "3544:6:1" }, "nodeType": "YulFunctionCall", - "src": "3201:12:1" + "src": "3544:12:1" }, "nodeType": "YulExpressionStatement", - "src": "3201:12:1" + "src": "3544:12:1" } ] }, @@ -2417,12 +2582,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "3188:5:1" + "src": "3531:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3195:1:1", + "src": "3538:1:1", "type": "", "value": "3" } @@ -2430,46 +2595,46 @@ "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "3185:2:1" + "src": "3528:2:1" }, "nodeType": "YulFunctionCall", - "src": "3185:12:1" + "src": "3528:12:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "3178:6:1" + "src": "3521:6:1" }, "nodeType": "YulFunctionCall", - "src": "3178:20:1" + "src": "3521:20:1" }, "nodeType": "YulIf", - "src": "3175:40:1" + "src": "3518:40:1" } ] }, - "name": "validator_revert_t_enum$_Status_$91", + "name": "validator_revert_t_enum$_Status_$103", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", - "src": "3158:5:1", + "src": "3501:5:1", "type": "" } ], - "src": "3113:108:1" + "src": "3455:109:1" }, { "body": { "nodeType": "YulBlock", - "src": "3270:79:1", + "src": "3613:79:1", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "3327:16:1", + "src": "3670:16:1", "statements": [ { "expression": { @@ -2477,14 +2642,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "3336:1:1", + "src": "3679:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3339:1:1", + "src": "3682:1:1", "type": "", "value": "0" } @@ -2492,13 +2657,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "3329:6:1" + "src": "3672:6:1" }, "nodeType": "YulFunctionCall", - "src": "3329:12:1" + "src": "3672:12:1" }, "nodeType": "YulExpressionStatement", - "src": "3329:12:1" + "src": "3672:12:1" } ] }, @@ -2509,44 +2674,44 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "3293:5:1" + "src": "3636:5:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "3318:5:1" + "src": "3661:5:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "3300:17:1" + "src": "3643:17:1" }, "nodeType": "YulFunctionCall", - "src": "3300:24:1" + "src": "3643:24:1" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "3290:2:1" + "src": "3633:2:1" }, "nodeType": "YulFunctionCall", - "src": "3290:35:1" + "src": "3633:35:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "3283:6:1" + "src": "3626:6:1" }, "nodeType": "YulFunctionCall", - "src": "3283:43:1" + "src": "3626:43:1" }, "nodeType": "YulIf", - "src": "3280:63:1" + "src": "3623:63:1" } ] }, @@ -2556,15 +2721,15 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "3263:5:1", + "src": "3606:5:1", "type": "" } ], - "src": "3227:122:1" + "src": "3570:122:1" } ] }, - "contents": "{\n\n function abi_decode_t_enum$_Status_$91(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_Status_$91(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_enum$_Status_$91(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_enum$_Status_$91(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_enum$_Status_$91(value) {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function abi_decode_t_enum$_Status_$103(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_Status_$103(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_enum$_Status_$103(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_enum$_Status_$103(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_enum$_Status_$103(value) {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", "id": 1, "language": "Yul", "name": "#utility.yul" @@ -2572,13 +2737,13 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806324b8ba5f146100465780632e1a7d4d14610062578063b6b55f251461007e575b600080fd5b610060600480360381019061005b919061021f565b61009a565b005b61007c6004803603810190610077919061024c565b6100c7565b005b6100986004803603810190610093919061024c565b610147565b005b80600460006101000a81548160ff021916908360028111156100bf576100be6103b5565b5b021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461012157600080fd5b600054811115610144578060008082825461013c9190610316565b925050819055505b50565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146101a157600080fd5b806000808282546101b291906102c0565b925050819055507f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c433826040516101ea929190610297565b60405180910390a150565b600081359050610204816103e9565b92915050565b600081359050610219816103f9565b92915050565b600060208284031215610235576102346103e4565b5b6000610243848285016101f5565b91505092915050565b600060208284031215610262576102616103e4565b5b60006102708482850161020a565b91505092915050565b6102828161034a565b82525050565b6102918161037c565b82525050565b60006040820190506102ac6000830185610279565b6102b96020830184610288565b9392505050565b60006102cb8261037c565b91506102d68361037c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561030b5761030a610386565b5b828201905092915050565b60006103218261037c565b915061032c8361037c565b92508282101561033f5761033e610386565b5b828203905092915050565b60006103558261035c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600080fd5b600381106103f657600080fd5b50565b6104028161037c565b811461040d57600080fd5b5056fea26469706673582212204cfb10fee983d5cc2a6447fd4d645cfa59afb2fe3f3b44e5c32726ea8462a38d64736f6c63430008070033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x24B8BA5F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x21F JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x77 SWAP2 SWAP1 PUSH2 0x24C JUMP JUMPDEST PUSH2 0xC7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x98 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x24C JUMP JUMPDEST PUSH2 0x147 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBF JUMPI PUSH2 0xBE PUSH2 0x3B5 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD DUP2 GT ISZERO PUSH2 0x144 JUMPI DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x13C SWAP2 SWAP1 PUSH2 0x316 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x1B2 SWAP2 SWAP1 PUSH2 0x2C0 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x2DA466A7B24304F47E87FA2E1E5A81B9831CE54FEC19055CE277CA2F39BA42C4 CALLER DUP3 PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP3 SWAP2 SWAP1 PUSH2 0x297 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x204 DUP2 PUSH2 0x3E9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x219 DUP2 PUSH2 0x3F9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x235 JUMPI PUSH2 0x234 PUSH2 0x3E4 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x243 DUP5 DUP3 DUP6 ADD PUSH2 0x1F5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x262 JUMPI PUSH2 0x261 PUSH2 0x3E4 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x270 DUP5 DUP3 DUP6 ADD PUSH2 0x20A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x282 DUP2 PUSH2 0x34A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x291 DUP2 PUSH2 0x37C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2AC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x279 JUMP JUMPDEST PUSH2 0x2B9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x288 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CB DUP3 PUSH2 0x37C JUMP JUMPDEST SWAP2 POP PUSH2 0x2D6 DUP4 PUSH2 0x37C JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x30B JUMPI PUSH2 0x30A PUSH2 0x386 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x321 DUP3 PUSH2 0x37C JUMP JUMPDEST SWAP2 POP PUSH2 0x32C DUP4 PUSH2 0x37C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x33F JUMPI PUSH2 0x33E PUSH2 0x386 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x355 DUP3 PUSH2 0x35C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x3F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x402 DUP2 PUSH2 0x37C JUMP JUMPDEST DUP2 EQ PUSH2 0x40D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4C 0xFB LT INVALID 0xE9 DUP4 0xD5 0xCC 0x2A PUSH5 0x47FD4D645C STATICCALL MSIZE 0xAF 0xB2 INVALID EXTCODEHASH EXTCODESIZE DIFFICULTY 0xE5 0xC3 0x27 0x26 0xEA DUP5 PUSH3 0xA38D64 PUSH20 0x6F6C634300080700330000000000000000000000 ", - "sourceMap": "84:2394:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:71;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1688:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1075:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2404:71;2460:7;2451:6;;:16;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2404:71;:::o;1688:182::-;767:10;758:19;;:5;;;;;;;;;;;:19;;;750:28;;;;;;1775:5:::1;;1766:6;:14;1762:100;;;1856:6;1847:5;::::0;:15:::1;;;;;;;:::i;:::-;;;;;;;;1762:100;1688:182:::0;:::o;1075:166::-;767:10;758:19;;:5;;;;;;;;;;;:19;;;750:28;;;;;;1142:6:::1;1133:5;::::0;:15:::1;;;;;;;:::i;:::-;;;;;;;;1203:29;1213:10;1225:6;1203:29;;;;;;;:::i;:::-;;;;;;;;1075:166:::0;:::o;7:157:1:-;62:5;100:6;87:20;78:29;;116:42;152:5;116:42;:::i;:::-;7:157;;;;:::o;170:139::-;216:5;254:6;241:20;232:29;;270:33;297:5;270:33;:::i;:::-;170:139;;;;:::o;315:347::-;383:6;432:2;420:9;411:7;407:23;403:32;400:119;;;438:79;;:::i;:::-;400:119;558:1;583:62;637:7;628:6;617:9;613:22;583:62;:::i;:::-;573:72;;529:126;315:347;;;;:::o;668:329::-;727:6;776:2;764:9;755:7;751:23;747:32;744:119;;;782:79;;:::i;:::-;744:119;902:1;927:53;972:7;963:6;952:9;948:22;927:53;:::i;:::-;917:63;;873:117;668:329;;;;:::o;1003:118::-;1090:24;1108:5;1090:24;:::i;:::-;1085:3;1078:37;1003:118;;:::o;1127:::-;1214:24;1232:5;1214:24;:::i;:::-;1209:3;1202:37;1127:118;;:::o;1251:332::-;1372:4;1410:2;1399:9;1395:18;1387:26;;1423:71;1491:1;1480:9;1476:17;1467:6;1423:71;:::i;:::-;1504:72;1572:2;1561:9;1557:18;1548:6;1504:72;:::i;:::-;1251:332;;;;;:::o;1670:305::-;1710:3;1729:20;1747:1;1729:20;:::i;:::-;1724:25;;1763:20;1781:1;1763:20;:::i;:::-;1758:25;;1917:1;1849:66;1845:74;1842:1;1839:81;1836:107;;;1923:18;;:::i;:::-;1836:107;1967:1;1964;1960:9;1953:16;;1670:305;;;;:::o;1981:191::-;2021:4;2041:20;2059:1;2041:20;:::i;:::-;2036:25;;2075:20;2093:1;2075:20;:::i;:::-;2070:25;;2114:1;2111;2108:8;2105:34;;;2119:18;;:::i;:::-;2105:34;2164:1;2161;2157:9;2149:17;;1981:191;;;;:::o;2178:96::-;2215:7;2244:24;2262:5;2244:24;:::i;:::-;2233:35;;2178:96;;;:::o;2280:126::-;2317:7;2357:42;2350:5;2346:54;2335:65;;2280:126;;;:::o;2412:77::-;2449:7;2478:5;2467:16;;2412:77;;;:::o;2495:180::-;2543:77;2540:1;2533:88;2640:4;2637:1;2630:15;2664:4;2661:1;2654:15;2681:180;2729:77;2726:1;2719:88;2826:4;2823:1;2816:15;2850:4;2847:1;2840:15;2990:117;3099:1;3096;3089:12;3113:108;3195:1;3188:5;3185:12;3175:40;;3211:1;3208;3201:12;3175:40;3113:108;:::o;3227:122::-;3300:24;3318:5;3300:24;:::i;:::-;3293:5;3290:35;3280:63;;3339:1;3336;3329:12;3280:63;3227:122;:::o" + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806324b8ba5f146100465780632e1a7d4d14610062578063b6b55f251461007e575b600080fd5b610060600480360381019061005b919061025f565b61009a565b005b61007c6004803603810190610077919061028c565b6100c7565b005b6100986004803603810190610093919061028c565b610187565b005b80600460006101000a81548160ff021916908360028111156100bf576100be61041e565b5b021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461012157600080fd5b60005481111561016c57806000546040517f8c905368000000000000000000000000000000000000000000000000000000008152600401610163929190610300565b60405180910390fd5b8060008082825461017d919061037f565b9250508190555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146101e157600080fd5b806000808282546101f29190610329565b925050819055507f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4338260405161022a9291906102d7565b60405180910390a150565b60008135905061024481610452565b92915050565b60008135905061025981610462565b92915050565b6000602082840312156102755761027461044d565b5b600061028384828501610235565b91505092915050565b6000602082840312156102a2576102a161044d565b5b60006102b08482850161024a565b91505092915050565b6102c2816103b3565b82525050565b6102d1816103e5565b82525050565b60006040820190506102ec60008301856102b9565b6102f960208301846102c8565b9392505050565b600060408201905061031560008301856102c8565b61032260208301846102c8565b9392505050565b6000610334826103e5565b915061033f836103e5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610374576103736103ef565b5b828201905092915050565b600061038a826103e5565b9150610395836103e5565b9250828210156103a8576103a76103ef565b5b828203905092915050565b60006103be826103c5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600080fd5b6003811061045f57600080fd5b50565b61046b816103e5565b811461047657600080fd5b5056fea2646970667358221220da1a5fc40ade22cdc923b1f8682facc441dc9e7c42f833e07b99f3fcd07cfea964736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x24B8BA5F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x25F JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x77 SWAP2 SWAP1 PUSH2 0x28C JUMP JUMPDEST PUSH2 0xC7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x98 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x28C JUMP JUMPDEST PUSH2 0x187 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBF JUMPI PUSH2 0xBE PUSH2 0x41E JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD DUP2 GT ISZERO PUSH2 0x16C JUMPI DUP1 PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x8C90536800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x163 SWAP3 SWAP2 SWAP1 PUSH2 0x300 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x17D SWAP2 SWAP1 PUSH2 0x37F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0x329 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x2DA466A7B24304F47E87FA2E1E5A81B9831CE54FEC19055CE277CA2F39BA42C4 CALLER DUP3 PUSH1 0x40 MLOAD PUSH2 0x22A SWAP3 SWAP2 SWAP1 PUSH2 0x2D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x244 DUP2 PUSH2 0x452 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x259 DUP2 PUSH2 0x462 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x275 JUMPI PUSH2 0x274 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x283 DUP5 DUP3 DUP6 ADD PUSH2 0x235 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A2 JUMPI PUSH2 0x2A1 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B0 DUP5 DUP3 DUP6 ADD PUSH2 0x24A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2C2 DUP2 PUSH2 0x3B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2D1 DUP2 PUSH2 0x3E5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2EC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2B9 JUMP JUMPDEST PUSH2 0x2F9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2C8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x315 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2C8 JUMP JUMPDEST PUSH2 0x322 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2C8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334 DUP3 PUSH2 0x3E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x33F DUP4 PUSH2 0x3E5 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x374 JUMPI PUSH2 0x373 PUSH2 0x3EF JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38A DUP3 PUSH2 0x3E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x395 DUP4 PUSH2 0x3E5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x3A8 JUMPI PUSH2 0x3A7 PUSH2 0x3EF JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BE DUP3 PUSH2 0x3C5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x46B DUP2 PUSH2 0x3E5 JUMP JUMPDEST DUP2 EQ PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDA BYTE 0x5F 0xC4 EXP 0xDE 0x22 0xCD 0xC9 0x23 0xB1 0xF8 PUSH9 0x2FACC441DC9E7C42F8 CALLER 0xE0 PUSH28 0x99F3FCD07CFEA964736F6C6343000807003300000000000000000000 ", + "sourceMap": "86:2388:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2400:71;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1687:179;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1077:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2400:71;2456:7;2447:6;;:16;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2400:71;:::o;1687:179::-;769:10;760:19;;:5;;;;;;;;;;;:19;;;752:28;;;;;;1774:5:::1;;1765:6;:14;1761:69;;;1816:6;1824:5;;1801:29;;;;;;;;;;;;:::i;:::-;;;;;;;;1761:69;1852:6;1843:5;::::0;:15:::1;;;;;;;:::i;:::-;;;;;;;;1687:179:::0;:::o;1077:166::-;769:10;760:19;;:5;;;;;;;;;;;:19;;;752:28;;;;;;1144:6:::1;1135:5;::::0;:15:::1;;;;;;;:::i;:::-;;;;;;;;1205:29;1215:10;1227:6;1205:29;;;;;;;:::i;:::-;;;;;;;;1077:166:::0;:::o;7:159:1:-;63:5;101:6;88:20;79:29;;117:43;154:5;117:43;:::i;:::-;7:159;;;;:::o;172:139::-;218:5;256:6;243:20;234:29;;272:33;299:5;272:33;:::i;:::-;172:139;;;;:::o;317:349::-;386:6;435:2;423:9;414:7;410:23;406:32;403:119;;;441:79;;:::i;:::-;403:119;561:1;586:63;641:7;632:6;621:9;617:22;586:63;:::i;:::-;576:73;;532:127;317:349;;;;:::o;672:329::-;731:6;780:2;768:9;759:7;755:23;751:32;748:119;;;786:79;;:::i;:::-;748:119;906:1;931:53;976:7;967:6;956:9;952:22;931:53;:::i;:::-;921:63;;877:117;672:329;;;;:::o;1007:118::-;1094:24;1112:5;1094:24;:::i;:::-;1089:3;1082:37;1007:118;;:::o;1131:::-;1218:24;1236:5;1218:24;:::i;:::-;1213:3;1206:37;1131:118;;:::o;1255:332::-;1376:4;1414:2;1403:9;1399:18;1391:26;;1427:71;1495:1;1484:9;1480:17;1471:6;1427:71;:::i;:::-;1508:72;1576:2;1565:9;1561:18;1552:6;1508:72;:::i;:::-;1255:332;;;;;:::o;1593:::-;1714:4;1752:2;1741:9;1737:18;1729:26;;1765:71;1833:1;1822:9;1818:17;1809:6;1765:71;:::i;:::-;1846:72;1914:2;1903:9;1899:18;1890:6;1846:72;:::i;:::-;1593:332;;;;;:::o;2012:305::-;2052:3;2071:20;2089:1;2071:20;:::i;:::-;2066:25;;2105:20;2123:1;2105:20;:::i;:::-;2100:25;;2259:1;2191:66;2187:74;2184:1;2181:81;2178:107;;;2265:18;;:::i;:::-;2178:107;2309:1;2306;2302:9;2295:16;;2012:305;;;;:::o;2323:191::-;2363:4;2383:20;2401:1;2383:20;:::i;:::-;2378:25;;2417:20;2435:1;2417:20;:::i;:::-;2412:25;;2456:1;2453;2450:8;2447:34;;;2461:18;;:::i;:::-;2447:34;2506:1;2503;2499:9;2491:17;;2323:191;;;;:::o;2520:96::-;2557:7;2586:24;2604:5;2586:24;:::i;:::-;2575:35;;2520:96;;;:::o;2622:126::-;2659:7;2699:42;2692:5;2688:54;2677:65;;2622:126;;;:::o;2754:77::-;2791:7;2820:5;2809:16;;2754:77;;;:::o;2837:180::-;2885:77;2882:1;2875:88;2982:4;2979:1;2972:15;3006:4;3003:1;2996:15;3023:180;3071:77;3068:1;3061:88;3168:4;3165:1;3158:15;3192:4;3189:1;3182:15;3332:117;3441:1;3438;3431:12;3455:109;3538:1;3531:5;3528:12;3518:40;;3554:1;3551;3544:12;3518:40;3455:109;:::o;3570:122::-;3643:24;3661:5;3643:24;:::i;:::-;3636:5;3633:35;3623:63;;3682:1;3679;3672:12;3623:63;3570:122;:::o" }, "gasEstimates": { "creation": { - "codeDepositCost": "218800", + "codeDepositCost": "239800", "executionCost": "infinite", "totalCost": "infinite" }, @@ -2606,6 +2771,22 @@ "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requested", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "available", + "type": "uint256" + } + ], + "name": "NotEnoughFunds", + "type": "error" + }, { "anonymous": false, "inputs": [ diff --git a/Ep2/artifacts/Bank_metadata.json b/Ep2/artifacts/Bank_metadata.json index f10f3ff..1be3f9b 100644 --- a/Ep2/artifacts/Bank_metadata.json +++ b/Ep2/artifacts/Bank_metadata.json @@ -16,6 +16,22 @@ "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requested", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "available", + "type": "uint256" + } + ], + "name": "NotEnoughFunds", + "type": "error" + }, { "anonymous": false, "inputs": [ @@ -76,6 +92,17 @@ } ], "devdoc": { + "errors": { + "NotEnoughFunds(uint256,uint256)": [ + { + "details": "自訂錯誤類型: 資金不足", + "params": { + "available": "可用的資金", + "requested": "要求的資金" + } + } + ] + }, "events": { "Deposited(address,uint256)": { "details": "已存款的事件", @@ -155,11 +182,11 @@ }, "sources": { "Ep2/bank.sol": { - "keccak256": "0x61bb1f9a74e137f74447c579776c4243f08ec387484970754dea7ab4f9fd62d2", + "keccak256": "0x7ba82065267c1a1dc7347d97f942bc7f65e4cc8f38846a619c34bbbbf829a414", "license": "MIT", "urls": [ - "bzz-raw://c6210487429c9ed02786474d4b4b560a4e09b744dc042a67f4ff0212ab4574f1", - "dweb:/ipfs/QmW7nENZpMfwHKuiFsmMEEhFUgze5U3iAnT8MSredzLv1X" + "bzz-raw://d3f2df0d44cfdd95fc1523e52180d484a8a1ed276cf096270261744bc29b10d3", + "dweb:/ipfs/QmRB9ExpgCKhA36C8Tc8VCe5XpP6aCAAchYcbXGq3qpkoT" ] } }, diff --git a/Ep2/artifacts/build-info/5bd89d33500dd9b914698d8f1c89a214.json b/Ep2/artifacts/build-info/5bd89d33500dd9b914698d8f1c89a214.json new file mode 100644 index 0000000..64d510f --- /dev/null +++ b/Ep2/artifacts/build-info/5bd89d33500dd9b914698d8f1c89a214.json @@ -0,0 +1,9727 @@ +{ + "id": "5bd89d33500dd9b914698d8f1c89a214", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep2/bank.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\n// @title 銀行合約\r\ncontract Bank {\r\n\r\n /// @notice 記載存款數字\r\n /// @dev State Variables(狀態變數)\r\n uint private value;\r\n\r\n /// @notice 記載存款擁有者\r\n /// @dev State Variables(狀態變數)\r\n address private owner;\r\n\r\n /// @dev The constructor sets the original `amount` of the contract to the bank.\r\n /// @param amount 存款開戶的金額數量\r\n constructor(uint amount) {\r\n value = amount;\r\n owner = msg.sender;\r\n }\r\n\r\n /// @dev Function Modifiers(修飾函式): 務必只能存款擁有者...\r\n /// msg.sender: 訊息的發送者(或這說是發出這個呼叫的人)\r\n modifier onlyOwner {\r\n require(owner == msg.sender);\r\n _;\r\n }\r\n\r\n /// @dev 已存款的事件\r\n /// @param addr 存款者的地址\r\n /// @param amount 存多少金額\r\n event Deposited(address addr, uint amount);\r\n\r\n /// @dev Functions(功能): 存款並增加總資產\r\n /// @param amount 欲存款的金額數量\r\n function deposit(uint amount) public onlyOwner {\r\n value += amount;\r\n\r\n // 觸發已存款的事件\r\n emit Deposited(msg.sender, amount); \r\n }\r\n\r\n /// @dev 自訂錯誤類型: 資金不足\r\n /// @param requested 要求的資金\r\n /// @param available 可用的資金\r\n error NotEnoughFunds(uint requested, uint available);\r\n\r\n /// @dev Errors(錯誤處理): 提款並減少總資產\r\n /// @param amount 提款的金額數量\r\n /// @notice revert可以直接填上錯誤訊息或者自訂錯誤類型,稱之revert主要是在還沒改變狀態之前撤銷。\r\n function withdraw(uint amount) \r\n public onlyOwner\r\n {\r\n if (amount > value)\r\n revert NotEnoughFunds(amount, value);\r\n\r\n value -= amount;\r\n }\r\n\r\n /// @dev 帳號的組成內容\r\n struct Account {\r\n\r\n // @dev 帳號的用戶名\r\n string username;\r\n\r\n // @dev 帳號的識別碼\r\n string id;\r\n }\r\n\r\n /// @dev 帳號的變數宣告\r\n Account private account;\r\n\r\n /// @dev 狀態定義包含Start、Doing、Done\r\n enum Status { Start, Doing, Done } \r\n\r\n /// @dev 狀態的變數宣告\r\n Status private status;\r\n\r\n /// @dev 將內部的狀態更新為外部指定的狀態\r\n /// @param _status 欲更新的狀態\r\n function set(Status _status) public {\r\n status = _status;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep2/bank.sol": { + "Bank": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requested", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "available", + "type": "uint256" + } + ], + "name": "NotEnoughFunds", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Deposited", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum Bank.Status", + "name": "_status", + "type": "uint8" + } + ], + "name": "set", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "errors": { + "NotEnoughFunds(uint256,uint256)": [ + { + "details": "自訂錯誤類型: 資金不足", + "params": { + "available": "可用的資金", + "requested": "要求的資金" + } + } + ] + }, + "events": { + "Deposited(address,uint256)": { + "details": "已存款的事件", + "params": { + "addr": "存款者的地址", + "amount": "存多少金額" + } + } + }, + "kind": "dev", + "methods": { + "constructor": { + "details": "The constructor sets the original `amount` of the contract to the bank.", + "params": { + "amount": "存款開戶的金額數量" + } + }, + "deposit(uint256)": { + "details": "Functions(功能): 存款並增加總資產", + "params": { + "amount": "欲存款的金額數量" + } + }, + "set(uint8)": { + "details": "將內部的狀態更新為外部指定的狀態", + "params": { + "_status": "欲更新的狀態" + } + }, + "withdraw(uint256)": { + "details": "Errors(錯誤處理): 提款並減少總資產", + "params": { + "amount": "提款的金額數量" + } + } + }, + "stateVariables": { + "account": { + "details": "帳號的變數宣告" + }, + "owner": { + "details": "State Variables(狀態變數)" + }, + "status": { + "details": "狀態的變數宣告" + }, + "value": { + "details": "State Variables(狀態變數)" + } + }, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep2/bank.sol\":86:2474 contract Bank {\r... */\n mstore(0x40, 0x80)\n /* \"Ep2/bank.sol\":466:553 constructor(uint amount) {\r... */\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 /* \"Ep2/bank.sol\":510:516 amount */\n dup1\n /* \"Ep2/bank.sol\":502:507 value */\n 0x00\n /* \"Ep2/bank.sol\":502:516 value = amount */\n dup2\n swap1\n sstore\n pop\n /* \"Ep2/bank.sol\":535:545 msg.sender */\n caller\n /* \"Ep2/bank.sol\":527:532 owner */\n 0x01\n 0x00\n /* \"Ep2/bank.sol\":527:545 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 /* \"Ep2/bank.sol\":466:553 constructor(uint amount) {\r... */\n pop\n /* \"Ep2/bank.sol\":86:2474 contract Bank {\r... */\n jump(tag_6)\n /* \"#utility.yul\":7:150 */\ntag_8:\n /* \"#utility.yul\":64:69 */\n 0x00\n /* \"#utility.yul\":95:101 */\n dup2\n /* \"#utility.yul\":89:102 */\n mload\n /* \"#utility.yul\":80:102 */\n swap1\n pop\n /* \"#utility.yul\":111:144 */\n tag_10\n /* \"#utility.yul\":138:143 */\n dup2\n /* \"#utility.yul\":111:144 */\n tag_11\n jump\t// in\ntag_10:\n /* \"#utility.yul\":7:150 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":156:507 */\ntag_3:\n /* \"#utility.yul\":226:232 */\n 0x00\n /* \"#utility.yul\":275:277 */\n 0x20\n /* \"#utility.yul\":263:272 */\n dup3\n /* \"#utility.yul\":254:261 */\n dup5\n /* \"#utility.yul\":250:273 */\n sub\n /* \"#utility.yul\":246:278 */\n slt\n /* \"#utility.yul\":243:362 */\n iszero\n tag_13\n jumpi\n /* \"#utility.yul\":281:360 */\n tag_14\n tag_15\n jump\t// in\ntag_14:\n /* \"#utility.yul\":243:362 */\ntag_13:\n /* \"#utility.yul\":401:402 */\n 0x00\n /* \"#utility.yul\":426:490 */\n tag_16\n /* \"#utility.yul\":482:489 */\n dup5\n /* \"#utility.yul\":473:479 */\n dup3\n /* \"#utility.yul\":462:471 */\n dup6\n /* \"#utility.yul\":458:480 */\n add\n /* \"#utility.yul\":426:490 */\n tag_8\n jump\t// in\ntag_16:\n /* \"#utility.yul\":416:490 */\n swap2\n pop\n /* \"#utility.yul\":372:500 */\n pop\n /* \"#utility.yul\":156:507 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":594:671 */\ntag_19:\n /* \"#utility.yul\":631:638 */\n 0x00\n /* \"#utility.yul\":660:665 */\n dup2\n /* \"#utility.yul\":649:665 */\n swap1\n pop\n /* \"#utility.yul\":594:671 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":800:917 */\ntag_15:\n /* \"#utility.yul\":909:910 */\n 0x00\n /* \"#utility.yul\":906:907 */\n dup1\n /* \"#utility.yul\":899:911 */\n revert\n /* \"#utility.yul\":923:1045 */\ntag_11:\n /* \"#utility.yul\":996:1020 */\n tag_25\n /* \"#utility.yul\":1014:1019 */\n dup2\n /* \"#utility.yul\":996:1020 */\n tag_19\n jump\t// in\ntag_25:\n /* \"#utility.yul\":989:994 */\n dup2\n /* \"#utility.yul\":986:1021 */\n eq\n /* \"#utility.yul\":976:1039 */\n tag_26\n jumpi\n /* \"#utility.yul\":1035:1036 */\n 0x00\n /* \"#utility.yul\":1032:1033 */\n dup1\n /* \"#utility.yul\":1025:1037 */\n revert\n /* \"#utility.yul\":976:1039 */\ntag_26:\n /* \"#utility.yul\":923:1045 */\n pop\n jump\t// out\n /* \"Ep2/bank.sol\":86:2474 contract Bank {\r... */\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 /* \"Ep2/bank.sol\":86:2474 contract Bank {\r... */\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 0x24b8ba5f\n eq\n tag_3\n jumpi\n dup1\n 0x2e1a7d4d\n eq\n tag_4\n jumpi\n dup1\n 0xb6b55f25\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep2/bank.sol\":2400:2471 function set(Status _status) public {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n stop\n /* \"Ep2/bank.sol\":1687:1866 function withdraw(uint amount) \r... */\n tag_4:\n tag_10\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_11\n swap2\n swap1\n tag_12\n jump\t// in\n tag_11:\n tag_13\n jump\t// in\n tag_10:\n stop\n /* \"Ep2/bank.sol\":1077:1243 function deposit(uint amount) public onlyOwner {\r... */\n tag_5:\n tag_14\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_15\n swap2\n swap1\n tag_12\n jump\t// in\n tag_15:\n tag_16\n jump\t// in\n tag_14:\n stop\n /* \"Ep2/bank.sol\":2400:2471 function set(Status _status) public {\r... */\n tag_9:\n /* \"Ep2/bank.sol\":2456:2463 _status */\n dup1\n /* \"Ep2/bank.sol\":2447:2453 status */\n 0x04\n 0x00\n /* \"Ep2/bank.sol\":2447:2463 status = _status */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0x02\n dup2\n gt\n iszero\n tag_18\n jumpi\n tag_19\n tag_20\n jump\t// in\n tag_19:\n tag_18:\n mul\n or\n swap1\n sstore\n pop\n /* \"Ep2/bank.sol\":2400:2471 function set(Status _status) public {\r... */\n pop\n jump\t// out\n /* \"Ep2/bank.sol\":1687:1866 function withdraw(uint amount) \r... */\n tag_13:\n /* \"Ep2/bank.sol\":769:779 msg.sender */\n caller\n /* \"Ep2/bank.sol\":760:779 owner == msg.sender */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"Ep2/bank.sol\":760:765 owner */\n 0x01\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"Ep2/bank.sol\":760:779 owner == msg.sender */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"Ep2/bank.sol\":752:780 require(owner == msg.sender) */\n tag_22\n jumpi\n 0x00\n dup1\n revert\n tag_22:\n /* \"Ep2/bank.sol\":1774:1779 value */\n sload(0x00)\n /* \"Ep2/bank.sol\":1765:1771 amount */\n dup2\n /* \"Ep2/bank.sol\":1765:1779 amount > value */\n gt\n /* \"Ep2/bank.sol\":1761:1830 if (amount > value)\r... */\n iszero\n tag_24\n jumpi\n /* \"Ep2/bank.sol\":1816:1822 amount */\n dup1\n /* \"Ep2/bank.sol\":1824:1829 value */\n sload(0x00)\n /* \"Ep2/bank.sol\":1801:1830 NotEnoughFunds(amount, value) */\n mload(0x40)\n 0x8c90536800000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_25\n swap3\n swap2\n swap1\n tag_26\n jump\t// in\n tag_25:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"Ep2/bank.sol\":1761:1830 if (amount > value)\r... */\n tag_24:\n /* \"Ep2/bank.sol\":1852:1858 amount */\n dup1\n /* \"Ep2/bank.sol\":1843:1848 value */\n 0x00\n dup1\n /* \"Ep2/bank.sol\":1843:1858 value -= amount */\n dup3\n dup3\n sload\n tag_27\n swap2\n swap1\n tag_28\n jump\t// in\n tag_27:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"Ep2/bank.sol\":1687:1866 function withdraw(uint amount) \r... */\n pop\n jump\t// out\n /* \"Ep2/bank.sol\":1077:1243 function deposit(uint amount) public onlyOwner {\r... */\n tag_16:\n /* \"Ep2/bank.sol\":769:779 msg.sender */\n caller\n /* \"Ep2/bank.sol\":760:779 owner == msg.sender */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"Ep2/bank.sol\":760:765 owner */\n 0x01\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"Ep2/bank.sol\":760:779 owner == msg.sender */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"Ep2/bank.sol\":752:780 require(owner == msg.sender) */\n tag_30\n jumpi\n 0x00\n dup1\n revert\n tag_30:\n /* \"Ep2/bank.sol\":1144:1150 amount */\n dup1\n /* \"Ep2/bank.sol\":1135:1140 value */\n 0x00\n dup1\n /* \"Ep2/bank.sol\":1135:1150 value += amount */\n dup3\n dup3\n sload\n tag_32\n swap2\n swap1\n tag_33\n jump\t// in\n tag_32:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"Ep2/bank.sol\":1205:1234 Deposited(msg.sender, amount) */\n 0x2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4\n /* \"Ep2/bank.sol\":1215:1225 msg.sender */\n caller\n /* \"Ep2/bank.sol\":1227:1233 amount */\n dup3\n /* \"Ep2/bank.sol\":1205:1234 Deposited(msg.sender, amount) */\n mload(0x40)\n tag_34\n swap3\n swap2\n swap1\n tag_35\n jump\t// in\n tag_34:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"Ep2/bank.sol\":1077:1243 function deposit(uint amount) public onlyOwner {\r... */\n pop\n jump\t// out\n /* \"#utility.yul\":7:166 */\n tag_37:\n /* \"#utility.yul\":63:68 */\n 0x00\n /* \"#utility.yul\":101:107 */\n dup2\n /* \"#utility.yul\":88:108 */\n calldataload\n /* \"#utility.yul\":79:108 */\n swap1\n pop\n /* \"#utility.yul\":117:160 */\n tag_39\n /* \"#utility.yul\":154:159 */\n dup2\n /* \"#utility.yul\":117:160 */\n tag_40\n jump\t// in\n tag_39:\n /* \"#utility.yul\":7:166 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":172:311 */\n tag_41:\n /* \"#utility.yul\":218:223 */\n 0x00\n /* \"#utility.yul\":256:262 */\n dup2\n /* \"#utility.yul\":243:263 */\n calldataload\n /* \"#utility.yul\":234:263 */\n swap1\n pop\n /* \"#utility.yul\":272:305 */\n tag_43\n /* \"#utility.yul\":299:304 */\n dup2\n /* \"#utility.yul\":272:305 */\n tag_44\n jump\t// in\n tag_43:\n /* \"#utility.yul\":172:311 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":317:666 */\n tag_8:\n /* \"#utility.yul\":386:392 */\n 0x00\n /* \"#utility.yul\":435:437 */\n 0x20\n /* \"#utility.yul\":423:432 */\n dup3\n /* \"#utility.yul\":414:421 */\n dup5\n /* \"#utility.yul\":410:433 */\n sub\n /* \"#utility.yul\":406:438 */\n slt\n /* \"#utility.yul\":403:522 */\n iszero\n tag_46\n jumpi\n /* \"#utility.yul\":441:520 */\n tag_47\n tag_48\n jump\t// in\n tag_47:\n /* \"#utility.yul\":403:522 */\n tag_46:\n /* \"#utility.yul\":561:562 */\n 0x00\n /* \"#utility.yul\":586:649 */\n tag_49\n /* \"#utility.yul\":641:648 */\n dup5\n /* \"#utility.yul\":632:638 */\n dup3\n /* \"#utility.yul\":621:630 */\n dup6\n /* \"#utility.yul\":617:639 */\n add\n /* \"#utility.yul\":586:649 */\n tag_37\n jump\t// in\n tag_49:\n /* \"#utility.yul\":576:649 */\n swap2\n pop\n /* \"#utility.yul\":532:659 */\n pop\n /* \"#utility.yul\":317:666 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":672:1001 */\n tag_12:\n /* \"#utility.yul\":731:737 */\n 0x00\n /* \"#utility.yul\":780:782 */\n 0x20\n /* \"#utility.yul\":768:777 */\n dup3\n /* \"#utility.yul\":759:766 */\n dup5\n /* \"#utility.yul\":755:778 */\n sub\n /* \"#utility.yul\":751:783 */\n slt\n /* \"#utility.yul\":748:867 */\n iszero\n tag_51\n jumpi\n /* \"#utility.yul\":786:865 */\n tag_52\n tag_48\n jump\t// in\n tag_52:\n /* \"#utility.yul\":748:867 */\n tag_51:\n /* \"#utility.yul\":906:907 */\n 0x00\n /* \"#utility.yul\":931:984 */\n tag_53\n /* \"#utility.yul\":976:983 */\n dup5\n /* \"#utility.yul\":967:973 */\n dup3\n /* \"#utility.yul\":956:965 */\n dup6\n /* \"#utility.yul\":952:974 */\n add\n /* \"#utility.yul\":931:984 */\n tag_41\n jump\t// in\n tag_53:\n /* \"#utility.yul\":921:984 */\n swap2\n pop\n /* \"#utility.yul\":877:994 */\n pop\n /* \"#utility.yul\":672:1001 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1007:1125 */\n tag_54:\n /* \"#utility.yul\":1094:1118 */\n tag_56\n /* \"#utility.yul\":1112:1117 */\n dup2\n /* \"#utility.yul\":1094:1118 */\n tag_57\n jump\t// in\n tag_56:\n /* \"#utility.yul\":1089:1092 */\n dup3\n /* \"#utility.yul\":1082:1119 */\n mstore\n /* \"#utility.yul\":1007:1125 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1131:1249 */\n tag_58:\n /* \"#utility.yul\":1218:1242 */\n tag_60\n /* \"#utility.yul\":1236:1241 */\n dup2\n /* \"#utility.yul\":1218:1242 */\n tag_61\n jump\t// in\n tag_60:\n /* \"#utility.yul\":1213:1216 */\n dup3\n /* \"#utility.yul\":1206:1243 */\n mstore\n /* \"#utility.yul\":1131:1249 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1255:1587 */\n tag_35:\n /* \"#utility.yul\":1376:1380 */\n 0x00\n /* \"#utility.yul\":1414:1416 */\n 0x40\n /* \"#utility.yul\":1403:1412 */\n dup3\n /* \"#utility.yul\":1399:1417 */\n add\n /* \"#utility.yul\":1391:1417 */\n swap1\n pop\n /* \"#utility.yul\":1427:1498 */\n tag_63\n /* \"#utility.yul\":1495:1496 */\n 0x00\n /* \"#utility.yul\":1484:1493 */\n dup4\n /* \"#utility.yul\":1480:1497 */\n add\n /* \"#utility.yul\":1471:1477 */\n dup6\n /* \"#utility.yul\":1427:1498 */\n tag_54\n jump\t// in\n tag_63:\n /* \"#utility.yul\":1508:1580 */\n tag_64\n /* \"#utility.yul\":1576:1578 */\n 0x20\n /* \"#utility.yul\":1565:1574 */\n dup4\n /* \"#utility.yul\":1561:1579 */\n add\n /* \"#utility.yul\":1552:1558 */\n dup5\n /* \"#utility.yul\":1508:1580 */\n tag_58\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1255:1587 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1593:1925 */\n tag_26:\n /* \"#utility.yul\":1714:1718 */\n 0x00\n /* \"#utility.yul\":1752:1754 */\n 0x40\n /* \"#utility.yul\":1741:1750 */\n dup3\n /* \"#utility.yul\":1737:1755 */\n add\n /* \"#utility.yul\":1729:1755 */\n swap1\n pop\n /* \"#utility.yul\":1765:1836 */\n tag_66\n /* \"#utility.yul\":1833:1834 */\n 0x00\n /* \"#utility.yul\":1822:1831 */\n dup4\n /* \"#utility.yul\":1818:1835 */\n add\n /* \"#utility.yul\":1809:1815 */\n dup6\n /* \"#utility.yul\":1765:1836 */\n tag_58\n jump\t// in\n tag_66:\n /* \"#utility.yul\":1846:1918 */\n tag_67\n /* \"#utility.yul\":1914:1916 */\n 0x20\n /* \"#utility.yul\":1903:1912 */\n dup4\n /* \"#utility.yul\":1899:1917 */\n add\n /* \"#utility.yul\":1890:1896 */\n dup5\n /* \"#utility.yul\":1846:1918 */\n tag_58\n jump\t// in\n tag_67:\n /* \"#utility.yul\":1593:1925 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2012:2317 */\n tag_33:\n /* \"#utility.yul\":2052:2055 */\n 0x00\n /* \"#utility.yul\":2071:2091 */\n tag_71\n /* \"#utility.yul\":2089:2090 */\n dup3\n /* \"#utility.yul\":2071:2091 */\n tag_61\n jump\t// in\n tag_71:\n /* \"#utility.yul\":2066:2091 */\n swap2\n pop\n /* \"#utility.yul\":2105:2125 */\n tag_72\n /* \"#utility.yul\":2123:2124 */\n dup4\n /* \"#utility.yul\":2105:2125 */\n tag_61\n jump\t// in\n tag_72:\n /* \"#utility.yul\":2100:2125 */\n swap3\n pop\n /* \"#utility.yul\":2259:2260 */\n dup3\n /* \"#utility.yul\":2191:2257 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":2187:2261 */\n sub\n /* \"#utility.yul\":2184:2185 */\n dup3\n /* \"#utility.yul\":2181:2262 */\n gt\n /* \"#utility.yul\":2178:2285 */\n iszero\n tag_73\n jumpi\n /* \"#utility.yul\":2265:2283 */\n tag_74\n tag_75\n jump\t// in\n tag_74:\n /* \"#utility.yul\":2178:2285 */\n tag_73:\n /* \"#utility.yul\":2309:2310 */\n dup3\n /* \"#utility.yul\":2306:2307 */\n dup3\n /* \"#utility.yul\":2302:2311 */\n add\n /* \"#utility.yul\":2295:2311 */\n swap1\n pop\n /* \"#utility.yul\":2012:2317 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2323:2514 */\n tag_28:\n /* \"#utility.yul\":2363:2367 */\n 0x00\n /* \"#utility.yul\":2383:2403 */\n tag_77\n /* \"#utility.yul\":2401:2402 */\n dup3\n /* \"#utility.yul\":2383:2403 */\n tag_61\n jump\t// in\n tag_77:\n /* \"#utility.yul\":2378:2403 */\n swap2\n pop\n /* \"#utility.yul\":2417:2437 */\n tag_78\n /* \"#utility.yul\":2435:2436 */\n dup4\n /* \"#utility.yul\":2417:2437 */\n tag_61\n jump\t// in\n tag_78:\n /* \"#utility.yul\":2412:2437 */\n swap3\n pop\n /* \"#utility.yul\":2456:2457 */\n dup3\n /* \"#utility.yul\":2453:2454 */\n dup3\n /* \"#utility.yul\":2450:2458 */\n lt\n /* \"#utility.yul\":2447:2481 */\n iszero\n tag_79\n jumpi\n /* \"#utility.yul\":2461:2479 */\n tag_80\n tag_75\n jump\t// in\n tag_80:\n /* \"#utility.yul\":2447:2481 */\n tag_79:\n /* \"#utility.yul\":2506:2507 */\n dup3\n /* \"#utility.yul\":2503:2504 */\n dup3\n /* \"#utility.yul\":2499:2508 */\n sub\n /* \"#utility.yul\":2491:2508 */\n swap1\n pop\n /* \"#utility.yul\":2323:2514 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2520:2616 */\n tag_57:\n /* \"#utility.yul\":2557:2564 */\n 0x00\n /* \"#utility.yul\":2586:2610 */\n tag_82\n /* \"#utility.yul\":2604:2609 */\n dup3\n /* \"#utility.yul\":2586:2610 */\n tag_83\n jump\t// in\n tag_82:\n /* \"#utility.yul\":2575:2610 */\n swap1\n pop\n /* \"#utility.yul\":2520:2616 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2622:2748 */\n tag_83:\n /* \"#utility.yul\":2659:2666 */\n 0x00\n /* \"#utility.yul\":2699:2741 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":2692:2697 */\n dup3\n /* \"#utility.yul\":2688:2742 */\n and\n /* \"#utility.yul\":2677:2742 */\n swap1\n pop\n /* \"#utility.yul\":2622:2748 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2754:2831 */\n tag_61:\n /* \"#utility.yul\":2791:2798 */\n 0x00\n /* \"#utility.yul\":2820:2825 */\n dup2\n /* \"#utility.yul\":2809:2825 */\n swap1\n pop\n /* \"#utility.yul\":2754:2831 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2837:3017 */\n tag_75:\n /* \"#utility.yul\":2885:2962 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2882:2883 */\n 0x00\n /* \"#utility.yul\":2875:2963 */\n mstore\n /* \"#utility.yul\":2982:2986 */\n 0x11\n /* \"#utility.yul\":2979:2980 */\n 0x04\n /* \"#utility.yul\":2972:2987 */\n mstore\n /* \"#utility.yul\":3006:3010 */\n 0x24\n /* \"#utility.yul\":3003:3004 */\n 0x00\n /* \"#utility.yul\":2996:3011 */\n revert\n /* \"#utility.yul\":3023:3203 */\n tag_20:\n /* \"#utility.yul\":3071:3148 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":3068:3069 */\n 0x00\n /* \"#utility.yul\":3061:3149 */\n mstore\n /* \"#utility.yul\":3168:3172 */\n 0x21\n /* \"#utility.yul\":3165:3166 */\n 0x04\n /* \"#utility.yul\":3158:3173 */\n mstore\n /* \"#utility.yul\":3192:3196 */\n 0x24\n /* \"#utility.yul\":3189:3190 */\n 0x00\n /* \"#utility.yul\":3182:3197 */\n revert\n /* \"#utility.yul\":3332:3449 */\n tag_48:\n /* \"#utility.yul\":3441:3442 */\n 0x00\n /* \"#utility.yul\":3438:3439 */\n dup1\n /* \"#utility.yul\":3431:3443 */\n revert\n /* \"#utility.yul\":3455:3564 */\n tag_40:\n /* \"#utility.yul\":3538:3539 */\n 0x03\n /* \"#utility.yul\":3531:3536 */\n dup2\n /* \"#utility.yul\":3528:3540 */\n lt\n /* \"#utility.yul\":3518:3558 */\n tag_92\n jumpi\n /* \"#utility.yul\":3554:3555 */\n 0x00\n /* \"#utility.yul\":3551:3552 */\n dup1\n /* \"#utility.yul\":3544:3556 */\n revert\n /* \"#utility.yul\":3518:3558 */\n tag_92:\n /* \"#utility.yul\":3455:3564 */\n pop\n jump\t// out\n /* \"#utility.yul\":3570:3692 */\n tag_44:\n /* \"#utility.yul\":3643:3667 */\n tag_94\n /* \"#utility.yul\":3661:3666 */\n dup2\n /* \"#utility.yul\":3643:3667 */\n tag_61\n jump\t// in\n tag_94:\n /* \"#utility.yul\":3636:3641 */\n dup2\n /* \"#utility.yul\":3633:3668 */\n eq\n /* \"#utility.yul\":3623:3686 */\n tag_95\n jumpi\n /* \"#utility.yul\":3682:3683 */\n 0x00\n /* \"#utility.yul\":3679:3680 */\n dup1\n /* \"#utility.yul\":3672:3684 */\n revert\n /* \"#utility.yul\":3623:3686 */\n tag_95:\n /* \"#utility.yul\":3570:3692 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220da1a5fc40ade22cdc923b1f8682facc441dc9e7c42f833e07b99f3fcd07cfea964736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": { + "@_23": { + "entryPoint": null, + "id": 23, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 128, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 149, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 194, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 204, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 209, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1048:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "70:80:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "80:22:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "95:6:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "89:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "89:13:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "80:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "138:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "111:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "111:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "111:33:1" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "48:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "56:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "64:5:1", + "type": "" + } + ], + "src": "7:143:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "233:274:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "279:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "281:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "281:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "281:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "254:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "263:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "250:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "250:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "275:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "246:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "246:32:1" + }, + "nodeType": "YulIf", + "src": "243:119:1" + }, + { + "nodeType": "YulBlock", + "src": "372:128:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "387:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "401:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "391:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "416:74:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "462:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "473:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "458:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "458:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "482:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "426:31:1" + }, + "nodeType": "YulFunctionCall", + "src": "426:64:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "416:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "203:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "214:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "226:6:1", + "type": "" + } + ], + "src": "156:351:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "553:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "563:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "579:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "573:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "573:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "563:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "546:6:1", + "type": "" + } + ], + "src": "513:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "639:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "649:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "660:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "649:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "621:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "631:7:1", + "type": "" + } + ], + "src": "594:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "766:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "783:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "786:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "776:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "776:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "776:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "677:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "889:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "906:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "909:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "899:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "899:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "899:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "800:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "966:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1023:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1032:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1035:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1025:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1025:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1025:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "989:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1014:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "996:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "996:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "986:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "986:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "979:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "979:43:1" + }, + "nodeType": "YulIf", + "src": "976:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "959:5:1", + "type": "" + } + ], + "src": "923:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506040516105a63803806105a683398181016040528101906100329190610095565b8060008190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506100e8565b60008151905061008f816100d1565b92915050565b6000602082840312156100ab576100aa6100cc565b5b60006100b984828501610080565b91505092915050565b6000819050919050565b600080fd5b6100da816100c2565b81146100e557600080fd5b50565b6104af806100f76000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806324b8ba5f146100465780632e1a7d4d14610062578063b6b55f251461007e575b600080fd5b610060600480360381019061005b919061025f565b61009a565b005b61007c6004803603810190610077919061028c565b6100c7565b005b6100986004803603810190610093919061028c565b610187565b005b80600460006101000a81548160ff021916908360028111156100bf576100be61041e565b5b021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461012157600080fd5b60005481111561016c57806000546040517f8c905368000000000000000000000000000000000000000000000000000000008152600401610163929190610300565b60405180910390fd5b8060008082825461017d919061037f565b9250508190555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146101e157600080fd5b806000808282546101f29190610329565b925050819055507f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4338260405161022a9291906102d7565b60405180910390a150565b60008135905061024481610452565b92915050565b60008135905061025981610462565b92915050565b6000602082840312156102755761027461044d565b5b600061028384828501610235565b91505092915050565b6000602082840312156102a2576102a161044d565b5b60006102b08482850161024a565b91505092915050565b6102c2816103b3565b82525050565b6102d1816103e5565b82525050565b60006040820190506102ec60008301856102b9565b6102f960208301846102c8565b9392505050565b600060408201905061031560008301856102c8565b61032260208301846102c8565b9392505050565b6000610334826103e5565b915061033f836103e5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610374576103736103ef565b5b828201905092915050565b600061038a826103e5565b9150610395836103e5565b9250828210156103a8576103a76103ef565b5b828203905092915050565b60006103be826103c5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600080fd5b6003811061045f57600080fd5b50565b61046b816103e5565b811461047657600080fd5b5056fea2646970667358221220da1a5fc40ade22cdc923b1f8682facc441dc9e7c42f833e07b99f3fcd07cfea964736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x5A6 CODESIZE SUB DUP1 PUSH2 0x5A6 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x95 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP CALLER 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 POP PUSH2 0xE8 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x8F DUP2 PUSH2 0xD1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAB JUMPI PUSH2 0xAA PUSH2 0xCC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB9 DUP5 DUP3 DUP6 ADD PUSH2 0x80 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDA DUP2 PUSH2 0xC2 JUMP JUMPDEST DUP2 EQ PUSH2 0xE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x4AF DUP1 PUSH2 0xF7 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x24B8BA5F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x25F JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x77 SWAP2 SWAP1 PUSH2 0x28C JUMP JUMPDEST PUSH2 0xC7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x98 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x28C JUMP JUMPDEST PUSH2 0x187 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBF JUMPI PUSH2 0xBE PUSH2 0x41E JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD DUP2 GT ISZERO PUSH2 0x16C JUMPI DUP1 PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x8C90536800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x163 SWAP3 SWAP2 SWAP1 PUSH2 0x300 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x17D SWAP2 SWAP1 PUSH2 0x37F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0x329 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x2DA466A7B24304F47E87FA2E1E5A81B9831CE54FEC19055CE277CA2F39BA42C4 CALLER DUP3 PUSH1 0x40 MLOAD PUSH2 0x22A SWAP3 SWAP2 SWAP1 PUSH2 0x2D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x244 DUP2 PUSH2 0x452 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x259 DUP2 PUSH2 0x462 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x275 JUMPI PUSH2 0x274 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x283 DUP5 DUP3 DUP6 ADD PUSH2 0x235 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A2 JUMPI PUSH2 0x2A1 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B0 DUP5 DUP3 DUP6 ADD PUSH2 0x24A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2C2 DUP2 PUSH2 0x3B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2D1 DUP2 PUSH2 0x3E5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2EC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2B9 JUMP JUMPDEST PUSH2 0x2F9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2C8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x315 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2C8 JUMP JUMPDEST PUSH2 0x322 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2C8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334 DUP3 PUSH2 0x3E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x33F DUP4 PUSH2 0x3E5 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x374 JUMPI PUSH2 0x373 PUSH2 0x3EF JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38A DUP3 PUSH2 0x3E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x395 DUP4 PUSH2 0x3E5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x3A8 JUMPI PUSH2 0x3A7 PUSH2 0x3EF JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BE DUP3 PUSH2 0x3C5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x46B DUP2 PUSH2 0x3E5 JUMP JUMPDEST DUP2 EQ PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDA BYTE 0x5F 0xC4 EXP 0xDE 0x22 0xCD 0xC9 0x23 0xB1 0xF8 PUSH9 0x2FACC441DC9E7C42F8 CALLER 0xE0 PUSH28 0x99F3FCD07CFEA964736F6C6343000807003300000000000000000000 ", + "sourceMap": "86:2388:0:-:0;;;466:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;510:6;502:5;:14;;;;535:10;527:5;;:18;;;;;;;;;;;;;;;;;;466:87;86:2388;;7:143:1;64:5;95:6;89:13;80:22;;111:33;138:5;111:33;:::i;:::-;7:143;;;;:::o;156:351::-;226:6;275:2;263:9;254:7;250:23;246:32;243:119;;;281:79;;:::i;:::-;243:119;401:1;426:64;482:7;473:6;462:9;458:22;426:64;:::i;:::-;416:74;;372:128;156:351;;;;:::o;594:77::-;631:7;660:5;649:16;;594:77;;;:::o;800:117::-;909:1;906;899:12;923:122;996:24;1014:5;996:24;:::i;:::-;989:5;986:35;976:63;;1035:1;1032;1025:12;976:63;923:122;:::o;86:2388:0:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@deposit_61": { + "entryPoint": 391, + "id": 61, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@set_119": { + "entryPoint": 154, + "id": 119, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@withdraw_90": { + "entryPoint": 199, + "id": 90, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_enum$_Status_$103": { + "entryPoint": 565, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 586, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_enum$_Status_$103": { + "entryPoint": 607, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 652, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 697, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 712, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 727, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 768, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 809, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 895, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 947, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 965, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 997, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 1007, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x21": { + "entryPoint": 1054, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 1101, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_enum$_Status_$103": { + "entryPoint": 1106, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 1122, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:3695:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "69:97:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "79:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "101:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "88:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "88:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "79:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "154:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_enum$_Status_$103", + "nodeType": "YulIdentifier", + "src": "117:36:1" + }, + "nodeType": "YulFunctionCall", + "src": "117:43:1" + }, + "nodeType": "YulExpressionStatement", + "src": "117:43:1" + } + ] + }, + "name": "abi_decode_t_enum$_Status_$103", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "47:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "55:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "63:5:1", + "type": "" + } + ], + "src": "7:159:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "224:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "234:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "256:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "243:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "243:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "234:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "299:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "272:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "272:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "272:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "202:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "210:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "218:5:1", + "type": "" + } + ], + "src": "172:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "393:273:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "439:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "441:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "441:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "441:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "414:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "423:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "410:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "410:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "435:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "406:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "406:32:1" + }, + "nodeType": "YulIf", + "src": "403:119:1" + }, + { + "nodeType": "YulBlock", + "src": "532:127:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "547:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "561:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "551:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "576:73:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "621:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "632:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "617:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "617:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "641:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_enum$_Status_$103", + "nodeType": "YulIdentifier", + "src": "586:30:1" + }, + "nodeType": "YulFunctionCall", + "src": "586:63:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "576:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_enum$_Status_$103", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "363:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "374:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "386:6:1", + "type": "" + } + ], + "src": "317:349:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "738:263:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "784:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "786:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "786:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "786:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "759:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "768:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "755:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "755:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "780:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "751:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "751:32:1" + }, + "nodeType": "YulIf", + "src": "748:119:1" + }, + { + "nodeType": "YulBlock", + "src": "877:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "892:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "906:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "896:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "921:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "956:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "967:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "952:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "952:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "976:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "931:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "931:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "921:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "708:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "719:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "731:6:1", + "type": "" + } + ], + "src": "672:329:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1072:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1089:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1112:5:1" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1094:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1094:24:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1082:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1082:37:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1082:37:1" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1060:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1067:3:1", + "type": "" + } + ], + "src": "1007:118:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1196:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1213:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1236:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1218:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1218:24:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1206:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1206:37:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1206:37:1" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1184:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1191:3:1", + "type": "" + } + ], + "src": "1131:118:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1381:206:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1391:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1403:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1414:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1399:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1399:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1391:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1471:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1484:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1495:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1480:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1480:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "1427:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "1427:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1427:71:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1552:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1565:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1576:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1561:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1561:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "1508:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "1508:72:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1508:72:1" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1345:9:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1357:6:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1365:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1376:4:1", + "type": "" + } + ], + "src": "1255:332:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1719:206:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1729:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1741:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1752:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1737:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1737:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1729:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1809:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1822:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1833:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1818:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1818:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "1765:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "1765:71:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1765:71:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1890:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1903:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1914:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1899:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1899:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "1846:43:1" + }, + "nodeType": "YulFunctionCall", + "src": "1846:72:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1846:72:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1683:9:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1695:6:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1703:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1714:4:1", + "type": "" + } + ], + "src": "1593:332:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1971:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1981:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1997:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1991:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1991:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1981:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1964:6:1", + "type": "" + } + ], + "src": "1931:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2056:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2066:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2089:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2071:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2071:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2066:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2100:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2123:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2105:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2105:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2100:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2263:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "2265:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "2265:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2265:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2184:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2191:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2259:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2187:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2187:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2181:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2181:81:1" + }, + "nodeType": "YulIf", + "src": "2178:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "2295:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2306:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2309:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2302:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2302:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "2295:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "2043:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "2046:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "2052:3:1", + "type": "" + } + ], + "src": "2012:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2368:146:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2378:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2401:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2383:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2383:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2378:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2412:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2435:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2417:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2417:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2412:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2459:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "2461:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "2461:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2461:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2453:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2456:1:1" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2450:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2450:8:1" + }, + "nodeType": "YulIf", + "src": "2447:34:1" + }, + { + "nodeType": "YulAssignment", + "src": "2491:17:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2503:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2506:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2499:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2499:9:1" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "2491:4:1" + } + ] + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "2354:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "2357:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "2363:4:1", + "type": "" + } + ], + "src": "2323:191:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2565:51:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2575:35:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2604:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "2586:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2586:24:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2575:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2547:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2557:7:1", + "type": "" + } + ], + "src": "2520:96:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2667:81:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2677:65:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2692:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2699:42:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2688:54:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2677:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2649:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2659:7:1", + "type": "" + } + ], + "src": "2622:126:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2799:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2809:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2820:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2809:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2781:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2791:7:1", + "type": "" + } + ], + "src": "2754:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2865:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2882:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2885:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2875:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2875:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2875:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2979:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2982:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2972:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2972:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2972:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3003:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3006:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2996:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2996:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2996:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2837:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3051:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3068:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3071:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3061:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3061:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3061:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3165:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3168:4:1", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3158:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3158:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3158:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3189:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3192:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3182:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3182:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3182:15:1" + } + ] + }, + "name": "panic_error_0x21", + "nodeType": "YulFunctionDefinition", + "src": "3023:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3298:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3315:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3318:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3308:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3308:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3308:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "3209:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3421:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3438:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3441:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3431:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3431:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3431:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "3332:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3508:56:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3542:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3551:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3554:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3544:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3544:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3544:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3531:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3538:1:1", + "type": "", + "value": "3" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3528:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "3528:12:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3521:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3521:20:1" + }, + "nodeType": "YulIf", + "src": "3518:40:1" + } + ] + }, + "name": "validator_revert_t_enum$_Status_$103", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3501:5:1", + "type": "" + } + ], + "src": "3455:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3613:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3670:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3679:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3682:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3672:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3672:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3672:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3636:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3661:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3643:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "3643:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "3633:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "3633:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3626:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3626:43:1" + }, + "nodeType": "YulIf", + "src": "3623:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3606:5:1", + "type": "" + } + ], + "src": "3570:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_enum$_Status_$103(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_Status_$103(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_enum$_Status_$103(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_enum$_Status_$103(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_enum$_Status_$103(value) {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806324b8ba5f146100465780632e1a7d4d14610062578063b6b55f251461007e575b600080fd5b610060600480360381019061005b919061025f565b61009a565b005b61007c6004803603810190610077919061028c565b6100c7565b005b6100986004803603810190610093919061028c565b610187565b005b80600460006101000a81548160ff021916908360028111156100bf576100be61041e565b5b021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461012157600080fd5b60005481111561016c57806000546040517f8c905368000000000000000000000000000000000000000000000000000000008152600401610163929190610300565b60405180910390fd5b8060008082825461017d919061037f565b9250508190555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146101e157600080fd5b806000808282546101f29190610329565b925050819055507f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4338260405161022a9291906102d7565b60405180910390a150565b60008135905061024481610452565b92915050565b60008135905061025981610462565b92915050565b6000602082840312156102755761027461044d565b5b600061028384828501610235565b91505092915050565b6000602082840312156102a2576102a161044d565b5b60006102b08482850161024a565b91505092915050565b6102c2816103b3565b82525050565b6102d1816103e5565b82525050565b60006040820190506102ec60008301856102b9565b6102f960208301846102c8565b9392505050565b600060408201905061031560008301856102c8565b61032260208301846102c8565b9392505050565b6000610334826103e5565b915061033f836103e5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610374576103736103ef565b5b828201905092915050565b600061038a826103e5565b9150610395836103e5565b9250828210156103a8576103a76103ef565b5b828203905092915050565b60006103be826103c5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600080fd5b6003811061045f57600080fd5b50565b61046b816103e5565b811461047657600080fd5b5056fea2646970667358221220da1a5fc40ade22cdc923b1f8682facc441dc9e7c42f833e07b99f3fcd07cfea964736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x24B8BA5F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x25F JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x77 SWAP2 SWAP1 PUSH2 0x28C JUMP JUMPDEST PUSH2 0xC7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x98 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x28C JUMP JUMPDEST PUSH2 0x187 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBF JUMPI PUSH2 0xBE PUSH2 0x41E JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD DUP2 GT ISZERO PUSH2 0x16C JUMPI DUP1 PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x8C90536800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x163 SWAP3 SWAP2 SWAP1 PUSH2 0x300 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x17D SWAP2 SWAP1 PUSH2 0x37F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0x329 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x2DA466A7B24304F47E87FA2E1E5A81B9831CE54FEC19055CE277CA2F39BA42C4 CALLER DUP3 PUSH1 0x40 MLOAD PUSH2 0x22A SWAP3 SWAP2 SWAP1 PUSH2 0x2D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x244 DUP2 PUSH2 0x452 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x259 DUP2 PUSH2 0x462 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x275 JUMPI PUSH2 0x274 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x283 DUP5 DUP3 DUP6 ADD PUSH2 0x235 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A2 JUMPI PUSH2 0x2A1 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B0 DUP5 DUP3 DUP6 ADD PUSH2 0x24A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2C2 DUP2 PUSH2 0x3B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2D1 DUP2 PUSH2 0x3E5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2EC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2B9 JUMP JUMPDEST PUSH2 0x2F9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2C8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x315 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2C8 JUMP JUMPDEST PUSH2 0x322 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2C8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334 DUP3 PUSH2 0x3E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x33F DUP4 PUSH2 0x3E5 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x374 JUMPI PUSH2 0x373 PUSH2 0x3EF JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38A DUP3 PUSH2 0x3E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x395 DUP4 PUSH2 0x3E5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x3A8 JUMPI PUSH2 0x3A7 PUSH2 0x3EF JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BE DUP3 PUSH2 0x3C5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x46B DUP2 PUSH2 0x3E5 JUMP JUMPDEST DUP2 EQ PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDA BYTE 0x5F 0xC4 EXP 0xDE 0x22 0xCD 0xC9 0x23 0xB1 0xF8 PUSH9 0x2FACC441DC9E7C42F8 CALLER 0xE0 PUSH28 0x99F3FCD07CFEA964736F6C6343000807003300000000000000000000 ", + "sourceMap": "86:2388:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2400:71;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1687:179;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1077:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2400:71;2456:7;2447:6;;:16;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2400:71;:::o;1687:179::-;769:10;760:19;;:5;;;;;;;;;;;:19;;;752:28;;;;;;1774:5:::1;;1765:6;:14;1761:69;;;1816:6;1824:5;;1801:29;;;;;;;;;;;;:::i;:::-;;;;;;;;1761:69;1852:6;1843:5;::::0;:15:::1;;;;;;;:::i;:::-;;;;;;;;1687:179:::0;:::o;1077:166::-;769:10;760:19;;:5;;;;;;;;;;;:19;;;752:28;;;;;;1144:6:::1;1135:5;::::0;:15:::1;;;;;;;:::i;:::-;;;;;;;;1205:29;1215:10;1227:6;1205:29;;;;;;;:::i;:::-;;;;;;;;1077:166:::0;:::o;7:159:1:-;63:5;101:6;88:20;79:29;;117:43;154:5;117:43;:::i;:::-;7:159;;;;:::o;172:139::-;218:5;256:6;243:20;234:29;;272:33;299:5;272:33;:::i;:::-;172:139;;;;:::o;317:349::-;386:6;435:2;423:9;414:7;410:23;406:32;403:119;;;441:79;;:::i;:::-;403:119;561:1;586:63;641:7;632:6;621:9;617:22;586:63;:::i;:::-;576:73;;532:127;317:349;;;;:::o;672:329::-;731:6;780:2;768:9;759:7;755:23;751:32;748:119;;;786:79;;:::i;:::-;748:119;906:1;931:53;976:7;967:6;956:9;952:22;931:53;:::i;:::-;921:63;;877:117;672:329;;;;:::o;1007:118::-;1094:24;1112:5;1094:24;:::i;:::-;1089:3;1082:37;1007:118;;:::o;1131:::-;1218:24;1236:5;1218:24;:::i;:::-;1213:3;1206:37;1131:118;;:::o;1255:332::-;1376:4;1414:2;1403:9;1399:18;1391:26;;1427:71;1495:1;1484:9;1480:17;1471:6;1427:71;:::i;:::-;1508:72;1576:2;1565:9;1561:18;1552:6;1508:72;:::i;:::-;1255:332;;;;;:::o;1593:::-;1714:4;1752:2;1741:9;1737:18;1729:26;;1765:71;1833:1;1822:9;1818:17;1809:6;1765:71;:::i;:::-;1846:72;1914:2;1903:9;1899:18;1890:6;1846:72;:::i;:::-;1593:332;;;;;:::o;2012:305::-;2052:3;2071:20;2089:1;2071:20;:::i;:::-;2066:25;;2105:20;2123:1;2105:20;:::i;:::-;2100:25;;2259:1;2191:66;2187:74;2184:1;2181:81;2178:107;;;2265:18;;:::i;:::-;2178:107;2309:1;2306;2302:9;2295:16;;2012:305;;;;:::o;2323:191::-;2363:4;2383:20;2401:1;2383:20;:::i;:::-;2378:25;;2417:20;2435:1;2417:20;:::i;:::-;2412:25;;2456:1;2453;2450:8;2447:34;;;2461:18;;:::i;:::-;2447:34;2506:1;2503;2499:9;2491:17;;2323:191;;;;:::o;2520:96::-;2557:7;2586:24;2604:5;2586:24;:::i;:::-;2575:35;;2520:96;;;:::o;2622:126::-;2659:7;2699:42;2692:5;2688:54;2677:65;;2622:126;;;:::o;2754:77::-;2791:7;2820:5;2809:16;;2754:77;;;:::o;2837:180::-;2885:77;2882:1;2875:88;2982:4;2979:1;2972:15;3006:4;3003:1;2996:15;3023:180;3071:77;3068:1;3061:88;3168:4;3165:1;3158:15;3192:4;3189:1;3182:15;3332:117;3441:1;3438;3431:12;3455:109;3538:1;3531:5;3528:12;3518:40;;3554:1;3551;3544:12;3518:40;3455:109;:::o;3570:122::-;3643:24;3661:5;3643:24;:::i;:::-;3636:5;3633:35;3623:63;;3682:1;3679;3672:12;3623:63;3570:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "239800", + "executionCost": "infinite", + "totalCost": "infinite" + }, + "external": { + "deposit(uint256)": "infinite", + "set(uint8)": "24628", + "withdraw(uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 86, + "end": 2474, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 86, + "end": 2474, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "DUP1", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 466, + "end": 553, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 466, + "end": 553, + "name": "DUP1", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "REVERT", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 466, + "end": 553, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "POP", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 466, + "end": 553, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "PUSHSIZE", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "CODESIZE", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "SUB", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "DUP1", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "PUSHSIZE", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "DUP4", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "DUP2", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "DUP2", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "ADD", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 466, + "end": 553, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "DUP2", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "ADD", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 466, + "end": 553, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 466, + "end": 553, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 466, + "end": 553, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 466, + "end": 553, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 510, + "end": 516, + "name": "DUP1", + "source": 0 + }, + { + "begin": 502, + "end": 507, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 502, + "end": 516, + "name": "DUP2", + "source": 0 + }, + { + "begin": 502, + "end": 516, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 502, + "end": 516, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 502, + "end": 516, + "name": "POP", + "source": 0 + }, + { + "begin": 535, + "end": 545, + "name": "CALLER", + "source": 0 + }, + { + "begin": 527, + "end": 532, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 527, + "end": 532, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 527, + "end": 545, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 527, + "end": 545, + "name": "EXP", + "source": 0 + }, + { + "begin": 527, + "end": 545, + "name": "DUP2", + "source": 0 + }, + { + "begin": 527, + "end": 545, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 527, + "end": 545, + "name": "DUP2", + "source": 0 + }, + { + "begin": 527, + "end": 545, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 527, + "end": 545, + "name": "MUL", + "source": 0 + }, + { + "begin": 527, + "end": 545, + "name": "NOT", + "source": 0 + }, + { + "begin": 527, + "end": 545, + "name": "AND", + "source": 0 + }, + { + "begin": 527, + "end": 545, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 527, + "end": 545, + "name": "DUP4", + "source": 0 + }, + { + "begin": 527, + "end": 545, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 527, + "end": 545, + "name": "AND", + "source": 0 + }, + { + "begin": 527, + "end": 545, + "name": "MUL", + "source": 0 + }, + { + "begin": 527, + "end": 545, + "name": "OR", + "source": 0 + }, + { + "begin": 527, + "end": 545, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 527, + "end": 545, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 527, + "end": 545, + "name": "POP", + "source": 0 + }, + { + "begin": 466, + "end": 553, + "name": "POP", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 86, + "end": 2474, + "name": "JUMP", + "source": 0 + }, + { + "begin": 7, + "end": 150, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 7, + "end": 150, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 64, + "end": 69, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 95, + "end": 101, + "name": "DUP2", + "source": 1 + }, + { + "begin": 89, + "end": 102, + "name": "MLOAD", + "source": 1 + }, + { + "begin": 80, + "end": 102, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 80, + "end": 102, + "name": "POP", + "source": 1 + }, + { + "begin": 111, + "end": 144, + "name": "PUSH [tag]", + "source": 1, + "value": "10" + }, + { + "begin": 138, + "end": 143, + "name": "DUP2", + "source": 1 + }, + { + "begin": 111, + "end": 144, + "name": "PUSH [tag]", + "source": 1, + "value": "11" + }, + { + "begin": 111, + "end": 144, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 111, + "end": 144, + "name": "tag", + "source": 1, + "value": "10" + }, + { + "begin": 111, + "end": 144, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 150, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 150, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 150, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 150, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 150, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 156, + "end": 507, + "name": "tag", + "source": 1, + "value": "3" + }, + { + "begin": 156, + "end": 507, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 226, + "end": 232, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 275, + "end": 277, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 263, + "end": 272, + "name": "DUP3", + "source": 1 + }, + { + "begin": 254, + "end": 261, + "name": "DUP5", + "source": 1 + }, + { + "begin": 250, + "end": 273, + "name": "SUB", + "source": 1 + }, + { + "begin": 246, + "end": 278, + "name": "SLT", + "source": 1 + }, + { + "begin": 243, + "end": 362, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 243, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "13" + }, + { + "begin": 243, + "end": 362, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 281, + "end": 360, + "name": "PUSH [tag]", + "source": 1, + "value": "14" + }, + { + "begin": 281, + "end": 360, + "name": "PUSH [tag]", + "source": 1, + "value": "15" + }, + { + "begin": 281, + "end": 360, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 281, + "end": 360, + "name": "tag", + "source": 1, + "value": "14" + }, + { + "begin": 281, + "end": 360, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 243, + "end": 362, + "name": "tag", + "source": 1, + "value": "13" + }, + { + "begin": 243, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 401, + "end": 402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 426, + "end": 490, + "name": "PUSH [tag]", + "source": 1, + "value": "16" + }, + { + "begin": 482, + "end": 489, + "name": "DUP5", + "source": 1 + }, + { + "begin": 473, + "end": 479, + "name": "DUP3", + "source": 1 + }, + { + "begin": 462, + "end": 471, + "name": "DUP6", + "source": 1 + }, + { + "begin": 458, + "end": 480, + "name": "ADD", + "source": 1 + }, + { + "begin": 426, + "end": 490, + "name": "PUSH [tag]", + "source": 1, + "value": "8" + }, + { + "begin": 426, + "end": 490, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 426, + "end": 490, + "name": "tag", + "source": 1, + "value": "16" + }, + { + "begin": 426, + "end": 490, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 416, + "end": 490, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 416, + "end": 490, + "name": "POP", + "source": 1 + }, + { + "begin": 372, + "end": 500, + "name": "POP", + "source": 1 + }, + { + "begin": 156, + "end": 507, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 156, + "end": 507, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 156, + "end": 507, + "name": "POP", + "source": 1 + }, + { + "begin": 156, + "end": 507, + "name": "POP", + "source": 1 + }, + { + "begin": 156, + "end": 507, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 594, + "end": 671, + "name": "tag", + "source": 1, + "value": "19" + }, + { + "begin": 594, + "end": 671, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 631, + "end": 638, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 660, + "end": 665, + "name": "DUP2", + "source": 1 + }, + { + "begin": 649, + "end": 665, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 649, + "end": 665, + "name": "POP", + "source": 1 + }, + { + "begin": 594, + "end": 671, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 594, + "end": 671, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 594, + "end": 671, + "name": "POP", + "source": 1 + }, + { + "begin": 594, + "end": 671, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 800, + "end": 917, + "name": "tag", + "source": 1, + "value": "15" + }, + { + "begin": 800, + "end": 917, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 909, + "end": 910, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 906, + "end": 907, + "name": "DUP1", + "source": 1 + }, + { + "begin": 899, + "end": 911, + "name": "REVERT", + "source": 1 + }, + { + "begin": 923, + "end": 1045, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 923, + "end": 1045, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 996, + "end": 1020, + "name": "PUSH [tag]", + "source": 1, + "value": "25" + }, + { + "begin": 1014, + "end": 1019, + "name": "DUP2", + "source": 1 + }, + { + "begin": 996, + "end": 1020, + "name": "PUSH [tag]", + "source": 1, + "value": "19" + }, + { + "begin": 996, + "end": 1020, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 996, + "end": 1020, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 996, + "end": 1020, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 989, + "end": 994, + "name": "DUP2", + "source": 1 + }, + { + "begin": 986, + "end": 1021, + "name": "EQ", + "source": 1 + }, + { + "begin": 976, + "end": 1039, + "name": "PUSH [tag]", + "source": 1, + "value": "26" + }, + { + "begin": 976, + "end": 1039, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1035, + "end": 1036, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1032, + "end": 1033, + "name": "DUP1", + "source": 1 + }, + { + "begin": 1025, + "end": 1037, + "name": "REVERT", + "source": 1 + }, + { + "begin": 976, + "end": 1039, + "name": "tag", + "source": 1, + "value": "26" + }, + { + "begin": 976, + "end": 1039, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 923, + "end": 1045, + "name": "POP", + "source": 1 + }, + { + "begin": 923, + "end": 1045, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 86, + "end": 2474, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 86, + "end": 2474, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 86, + "end": 2474, + "name": "DUP1", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 86, + "end": 2474, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 86, + "end": 2474, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220da1a5fc40ade22cdc923b1f8682facc441dc9e7c42f833e07b99f3fcd07cfea964736f6c63430008070033", + ".code": [ + { + "begin": 86, + "end": 2474, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 86, + "end": 2474, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "DUP1", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 86, + "end": 2474, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 86, + "end": 2474, + "name": "DUP1", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "REVERT", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 86, + "end": 2474, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "POP", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 86, + "end": 2474, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "LT", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 86, + "end": 2474, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 86, + "end": 2474, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 86, + "end": 2474, + "name": "SHR", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "DUP1", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH", + "source": 0, + "value": "24B8BA5F" + }, + { + "begin": 86, + "end": 2474, + "name": "EQ", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 86, + "end": 2474, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "DUP1", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH", + "source": 0, + "value": "2E1A7D4D" + }, + { + "begin": 86, + "end": 2474, + "name": "EQ", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 86, + "end": 2474, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "DUP1", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH", + "source": 0, + "value": "B6B55F25" + }, + { + "begin": 86, + "end": 2474, + "name": "EQ", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 86, + "end": 2474, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 86, + "end": 2474, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 86, + "end": 2474, + "name": "DUP1", + "source": 0 + }, + { + "begin": 86, + "end": 2474, + "name": "REVERT", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 2400, + "end": 2471, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 2400, + "end": 2471, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 2400, + "end": 2471, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "SUB", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "ADD", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 2400, + "end": 2471, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 2400, + "end": 2471, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 2400, + "end": 2471, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 2400, + "end": 2471, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 2400, + "end": 2471, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 2400, + "end": 2471, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 2400, + "end": 2471, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "STOP", + "source": 0 + }, + { + "begin": 1687, + "end": 1866, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 1687, + "end": 1866, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1687, + "end": 1866, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 1687, + "end": 1866, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 1687, + "end": 1866, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1687, + "end": 1866, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 1687, + "end": 1866, + "name": "SUB", + "source": 0 + }, + { + "begin": 1687, + "end": 1866, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1687, + "end": 1866, + "name": "ADD", + "source": 0 + }, + { + "begin": 1687, + "end": 1866, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1687, + "end": 1866, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 1687, + "end": 1866, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1687, + "end": 1866, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1687, + "end": 1866, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 1687, + "end": 1866, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1687, + "end": 1866, + "name": "tag", + "source": 0, + "value": "11" + }, + { + "begin": 1687, + "end": 1866, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1687, + "end": 1866, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 1687, + "end": 1866, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1687, + "end": 1866, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 1687, + "end": 1866, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1687, + "end": 1866, + "name": "STOP", + "source": 0 + }, + { + "begin": 1077, + "end": 1243, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 1077, + "end": 1243, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1077, + "end": 1243, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 1077, + "end": 1243, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 1077, + "end": 1243, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1077, + "end": 1243, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 1077, + "end": 1243, + "name": "SUB", + "source": 0 + }, + { + "begin": 1077, + "end": 1243, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1077, + "end": 1243, + "name": "ADD", + "source": 0 + }, + { + "begin": 1077, + "end": 1243, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1077, + "end": 1243, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 1077, + "end": 1243, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1077, + "end": 1243, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1077, + "end": 1243, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 1077, + "end": 1243, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1077, + "end": 1243, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 1077, + "end": 1243, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1077, + "end": 1243, + "name": "PUSH [tag]", + "source": 0, + "value": "16" + }, + { + "begin": 1077, + "end": 1243, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1077, + "end": 1243, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 1077, + "end": 1243, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1077, + "end": 1243, + "name": "STOP", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 2400, + "end": 2471, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2456, + "end": 2463, + "name": "DUP1", + "source": 0 + }, + { + "begin": 2447, + "end": 2453, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 2447, + "end": 2453, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 2447, + "end": 2463, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 2447, + "end": 2463, + "name": "EXP", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 2447, + "end": 2463, + "name": "MUL", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "NOT", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "AND", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "DUP4", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "PUSH", + "source": 0, + "value": "2" + }, + { + "begin": 2447, + "end": 2463, + "name": "DUP2", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "GT", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 2447, + "end": 2463, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 2447, + "end": 2463, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 2447, + "end": 2463, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 2447, + "end": 2463, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 2447, + "end": 2463, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "tag", + "source": 0, + "value": "18" + }, + { + "begin": 2447, + "end": 2463, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "MUL", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "OR", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 2447, + "end": 2463, + "name": "POP", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "POP", + "source": 0 + }, + { + "begin": 2400, + "end": 2471, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 1687, + "end": 1866, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 1687, + "end": 1866, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 769, + "end": 779, + "name": "CALLER", + "source": 0 + }, + { + "begin": 760, + "end": 779, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 760, + "end": 779, + "name": "AND", + "source": 0 + }, + { + "begin": 760, + "end": 765, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 760, + "end": 765, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 760, + "end": 765, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 760, + "end": 765, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 760, + "end": 765, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 760, + "end": 765, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 760, + "end": 765, + "name": "EXP", + "source": 0 + }, + { + "begin": 760, + "end": 765, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 760, + "end": 765, + "name": "DIV", + "source": 0 + }, + { + "begin": 760, + "end": 765, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 760, + "end": 765, + "name": "AND", + "source": 0 + }, + { + "begin": 760, + "end": 779, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 760, + "end": 779, + "name": "AND", + "source": 0 + }, + { + "begin": 760, + "end": 779, + "name": "EQ", + "source": 0 + }, + { + "begin": 752, + "end": 780, + "name": "PUSH [tag]", + "source": 0, + "value": "22" + }, + { + "begin": 752, + "end": 780, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 752, + "end": 780, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 752, + "end": 780, + "name": "DUP1", + "source": 0 + }, + { + "begin": 752, + "end": 780, + "name": "REVERT", + "source": 0 + }, + { + "begin": 752, + "end": 780, + "name": "tag", + "source": 0, + "value": "22" + }, + { + "begin": 752, + "end": 780, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1774, + "end": 1779, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1774, + "end": 1779, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 1765, + "end": 1771, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1765, + "end": 1779, + "name": "GT", + "source": 0 + }, + { + "begin": 1761, + "end": 1830, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 1761, + "end": 1830, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 1761, + "end": 1830, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1816, + "end": 1822, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1824, + "end": 1829, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1824, + "end": 1829, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 1801, + "end": 1830, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1801, + "end": 1830, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1801, + "end": 1830, + "name": "PUSH", + "source": 0, + "value": "8C90536800000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1801, + "end": 1830, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1801, + "end": 1830, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1801, + "end": 1830, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 1801, + "end": 1830, + "name": "ADD", + "source": 0 + }, + { + "begin": 1801, + "end": 1830, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 1801, + "end": 1830, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 1801, + "end": 1830, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1801, + "end": 1830, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1801, + "end": 1830, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 1801, + "end": 1830, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1801, + "end": 1830, + "name": "tag", + "source": 0, + "value": "25" + }, + { + "begin": 1801, + "end": 1830, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1801, + "end": 1830, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1801, + "end": 1830, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1801, + "end": 1830, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1801, + "end": 1830, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1801, + "end": 1830, + "name": "SUB", + "source": 0 + }, + { + "begin": 1801, + "end": 1830, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1801, + "end": 1830, + "name": "REVERT", + "source": 0 + }, + { + "begin": 1761, + "end": 1830, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 1761, + "end": 1830, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1852, + "end": 1858, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1843, + "end": 1848, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1843, + "end": 1848, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1843, + "end": 1858, + "name": "DUP3", + "source": 0 + }, + { + "begin": 1843, + "end": 1858, + "name": "DUP3", + "source": 0 + }, + { + "begin": 1843, + "end": 1858, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 1843, + "end": 1858, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 1843, + "end": 1858, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1843, + "end": 1858, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1843, + "end": 1858, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 1843, + "end": 1858, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1843, + "end": 1858, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 1843, + "end": 1858, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1843, + "end": 1858, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 1843, + "end": 1858, + "name": "POP", + "source": 0 + }, + { + "begin": 1843, + "end": 1858, + "name": "POP", + "source": 0 + }, + { + "begin": 1843, + "end": 1858, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1843, + "end": 1858, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1843, + "end": 1858, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 1843, + "end": 1858, + "name": "POP", + "source": 0 + }, + { + "begin": 1687, + "end": 1866, + "name": "POP", + "source": 0 + }, + { + "begin": 1687, + "end": 1866, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 1077, + "end": 1243, + "name": "tag", + "source": 0, + "value": "16" + }, + { + "begin": 1077, + "end": 1243, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 769, + "end": 779, + "name": "CALLER", + "source": 0 + }, + { + "begin": 760, + "end": 779, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 760, + "end": 779, + "name": "AND", + "source": 0 + }, + { + "begin": 760, + "end": 765, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 760, + "end": 765, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 760, + "end": 765, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 760, + "end": 765, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 760, + "end": 765, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 760, + "end": 765, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 760, + "end": 765, + "name": "EXP", + "source": 0 + }, + { + "begin": 760, + "end": 765, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 760, + "end": 765, + "name": "DIV", + "source": 0 + }, + { + "begin": 760, + "end": 765, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 760, + "end": 765, + "name": "AND", + "source": 0 + }, + { + "begin": 760, + "end": 779, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 760, + "end": 779, + "name": "AND", + "source": 0 + }, + { + "begin": 760, + "end": 779, + "name": "EQ", + "source": 0 + }, + { + "begin": 752, + "end": 780, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 752, + "end": 780, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 752, + "end": 780, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 752, + "end": 780, + "name": "DUP1", + "source": 0 + }, + { + "begin": 752, + "end": 780, + "name": "REVERT", + "source": 0 + }, + { + "begin": 752, + "end": 780, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 752, + "end": 780, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1144, + "end": 1150, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1135, + "end": 1140, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1135, + "end": 1140, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1135, + "end": 1150, + "name": "DUP3", + "source": 0 + }, + { + "begin": 1135, + "end": 1150, + "name": "DUP3", + "source": 0 + }, + { + "begin": 1135, + "end": 1150, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 1135, + "end": 1150, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 1135, + "end": 1150, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1135, + "end": 1150, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1135, + "end": 1150, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 1135, + "end": 1150, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1135, + "end": 1150, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 1135, + "end": 1150, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1135, + "end": 1150, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 1135, + "end": 1150, + "name": "POP", + "source": 0 + }, + { + "begin": 1135, + "end": 1150, + "name": "POP", + "source": 0 + }, + { + "begin": 1135, + "end": 1150, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1135, + "end": 1150, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1135, + "end": 1150, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 1135, + "end": 1150, + "name": "POP", + "source": 0 + }, + { + "begin": 1205, + "end": 1234, + "name": "PUSH", + "source": 0, + "value": "2DA466A7B24304F47E87FA2E1E5A81B9831CE54FEC19055CE277CA2F39BA42C4" + }, + { + "begin": 1215, + "end": 1225, + "name": "CALLER", + "source": 0 + }, + { + "begin": 1227, + "end": 1233, + "name": "DUP3", + "source": 0 + }, + { + "begin": 1205, + "end": 1234, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1205, + "end": 1234, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1205, + "end": 1234, + "name": "PUSH [tag]", + "source": 0, + "value": "34" + }, + { + "begin": 1205, + "end": 1234, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 1205, + "end": 1234, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1205, + "end": 1234, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1205, + "end": 1234, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 1205, + "end": 1234, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1205, + "end": 1234, + "name": "tag", + "source": 0, + "value": "34" + }, + { + "begin": 1205, + "end": 1234, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1205, + "end": 1234, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1205, + "end": 1234, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1205, + "end": 1234, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1205, + "end": 1234, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1205, + "end": 1234, + "name": "SUB", + "source": 0 + }, + { + "begin": 1205, + "end": 1234, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1205, + "end": 1234, + "name": "LOG1", + "source": 0 + }, + { + "begin": 1077, + "end": 1243, + "name": "POP", + "source": 0 + }, + { + "begin": 1077, + "end": 1243, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 166, + "name": "tag", + "source": 1, + "value": "37" + }, + { + "begin": 7, + "end": 166, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 63, + "end": 68, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 101, + "end": 107, + "name": "DUP2", + "source": 1 + }, + { + "begin": 88, + "end": 108, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 79, + "end": 108, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 79, + "end": 108, + "name": "POP", + "source": 1 + }, + { + "begin": 117, + "end": 160, + "name": "PUSH [tag]", + "source": 1, + "value": "39" + }, + { + "begin": 154, + "end": 159, + "name": "DUP2", + "source": 1 + }, + { + "begin": 117, + "end": 160, + "name": "PUSH [tag]", + "source": 1, + "value": "40" + }, + { + "begin": 117, + "end": 160, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 117, + "end": 160, + "name": "tag", + "source": 1, + "value": "39" + }, + { + "begin": 117, + "end": 160, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 166, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 166, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 166, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 166, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 166, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 172, + "end": 311, + "name": "tag", + "source": 1, + "value": "41" + }, + { + "begin": 172, + "end": 311, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 218, + "end": 223, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 256, + "end": 262, + "name": "DUP2", + "source": 1 + }, + { + "begin": 243, + "end": 263, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 234, + "end": 263, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 234, + "end": 263, + "name": "POP", + "source": 1 + }, + { + "begin": 272, + "end": 305, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 299, + "end": 304, + "name": "DUP2", + "source": 1 + }, + { + "begin": 272, + "end": 305, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 272, + "end": 305, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 272, + "end": 305, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 272, + "end": 305, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 172, + "end": 311, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 172, + "end": 311, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 172, + "end": 311, + "name": "POP", + "source": 1 + }, + { + "begin": 172, + "end": 311, + "name": "POP", + "source": 1 + }, + { + "begin": 172, + "end": 311, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 317, + "end": 666, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 317, + "end": 666, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 386, + "end": 392, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 435, + "end": 437, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 423, + "end": 432, + "name": "DUP3", + "source": 1 + }, + { + "begin": 414, + "end": 421, + "name": "DUP5", + "source": 1 + }, + { + "begin": 410, + "end": 433, + "name": "SUB", + "source": 1 + }, + { + "begin": 406, + "end": 438, + "name": "SLT", + "source": 1 + }, + { + "begin": 403, + "end": 522, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 403, + "end": 522, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 403, + "end": 522, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 441, + "end": 520, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 441, + "end": 520, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 441, + "end": 520, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 441, + "end": 520, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 441, + "end": 520, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 522, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 403, + "end": 522, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 561, + "end": 562, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 586, + "end": 649, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 641, + "end": 648, + "name": "DUP5", + "source": 1 + }, + { + "begin": 632, + "end": 638, + "name": "DUP3", + "source": 1 + }, + { + "begin": 621, + "end": 630, + "name": "DUP6", + "source": 1 + }, + { + "begin": 617, + "end": 639, + "name": "ADD", + "source": 1 + }, + { + "begin": 586, + "end": 649, + "name": "PUSH [tag]", + "source": 1, + "value": "37" + }, + { + "begin": 586, + "end": 649, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 586, + "end": 649, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 586, + "end": 649, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 576, + "end": 649, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 576, + "end": 649, + "name": "POP", + "source": 1 + }, + { + "begin": 532, + "end": 659, + "name": "POP", + "source": 1 + }, + { + "begin": 317, + "end": 666, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 317, + "end": 666, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 317, + "end": 666, + "name": "POP", + "source": 1 + }, + { + "begin": 317, + "end": 666, + "name": "POP", + "source": 1 + }, + { + "begin": 317, + "end": 666, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 672, + "end": 1001, + "name": "tag", + "source": 1, + "value": "12" + }, + { + "begin": 672, + "end": 1001, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 731, + "end": 737, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 780, + "end": 782, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 768, + "end": 777, + "name": "DUP3", + "source": 1 + }, + { + "begin": 759, + "end": 766, + "name": "DUP5", + "source": 1 + }, + { + "begin": 755, + "end": 778, + "name": "SUB", + "source": 1 + }, + { + "begin": 751, + "end": 783, + "name": "SLT", + "source": 1 + }, + { + "begin": 748, + "end": 867, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 748, + "end": 867, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 748, + "end": 867, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 786, + "end": 865, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 786, + "end": 865, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 786, + "end": 865, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 786, + "end": 865, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 786, + "end": 865, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 748, + "end": 867, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 748, + "end": 867, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 906, + "end": 907, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 931, + "end": 984, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 976, + "end": 983, + "name": "DUP5", + "source": 1 + }, + { + "begin": 967, + "end": 973, + "name": "DUP3", + "source": 1 + }, + { + "begin": 956, + "end": 965, + "name": "DUP6", + "source": 1 + }, + { + "begin": 952, + "end": 974, + "name": "ADD", + "source": 1 + }, + { + "begin": 931, + "end": 984, + "name": "PUSH [tag]", + "source": 1, + "value": "41" + }, + { + "begin": 931, + "end": 984, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 931, + "end": 984, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 931, + "end": 984, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 921, + "end": 984, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 921, + "end": 984, + "name": "POP", + "source": 1 + }, + { + "begin": 877, + "end": 994, + "name": "POP", + "source": 1 + }, + { + "begin": 672, + "end": 1001, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 672, + "end": 1001, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 672, + "end": 1001, + "name": "POP", + "source": 1 + }, + { + "begin": 672, + "end": 1001, + "name": "POP", + "source": 1 + }, + { + "begin": 672, + "end": 1001, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1007, + "end": 1125, + "name": "tag", + "source": 1, + "value": "54" + }, + { + "begin": 1007, + "end": 1125, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1094, + "end": 1118, + "name": "PUSH [tag]", + "source": 1, + "value": "56" + }, + { + "begin": 1112, + "end": 1117, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1094, + "end": 1118, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 1094, + "end": 1118, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1094, + "end": 1118, + "name": "tag", + "source": 1, + "value": "56" + }, + { + "begin": 1094, + "end": 1118, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1089, + "end": 1092, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1082, + "end": 1119, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 1007, + "end": 1125, + "name": "POP", + "source": 1 + }, + { + "begin": 1007, + "end": 1125, + "name": "POP", + "source": 1 + }, + { + "begin": 1007, + "end": 1125, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1131, + "end": 1249, + "name": "tag", + "source": 1, + "value": "58" + }, + { + "begin": 1131, + "end": 1249, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1218, + "end": 1242, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 1236, + "end": 1241, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1218, + "end": 1242, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1218, + "end": 1242, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1218, + "end": 1242, + "name": "tag", + "source": 1, + "value": "60" + }, + { + "begin": 1218, + "end": 1242, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1213, + "end": 1216, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1206, + "end": 1243, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 1131, + "end": 1249, + "name": "POP", + "source": 1 + }, + { + "begin": 1131, + "end": 1249, + "name": "POP", + "source": 1 + }, + { + "begin": 1131, + "end": 1249, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1255, + "end": 1587, + "name": "tag", + "source": 1, + "value": "35" + }, + { + "begin": 1255, + "end": 1587, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1376, + "end": 1380, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1414, + "end": 1416, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 1403, + "end": 1412, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1399, + "end": 1417, + "name": "ADD", + "source": 1 + }, + { + "begin": 1391, + "end": 1417, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1391, + "end": 1417, + "name": "POP", + "source": 1 + }, + { + "begin": 1427, + "end": 1498, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1495, + "end": 1496, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1484, + "end": 1493, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1480, + "end": 1497, + "name": "ADD", + "source": 1 + }, + { + "begin": 1471, + "end": 1477, + "name": "DUP6", + "source": 1 + }, + { + "begin": 1427, + "end": 1498, + "name": "PUSH [tag]", + "source": 1, + "value": "54" + }, + { + "begin": 1427, + "end": 1498, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1427, + "end": 1498, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1427, + "end": 1498, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1508, + "end": 1580, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1576, + "end": 1578, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1565, + "end": 1574, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1561, + "end": 1579, + "name": "ADD", + "source": 1 + }, + { + "begin": 1552, + "end": 1558, + "name": "DUP5", + "source": 1 + }, + { + "begin": 1508, + "end": 1580, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1508, + "end": 1580, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1508, + "end": 1580, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1508, + "end": 1580, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1255, + "end": 1587, + "name": "SWAP4", + "source": 1 + }, + { + "begin": 1255, + "end": 1587, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1255, + "end": 1587, + "name": "POP", + "source": 1 + }, + { + "begin": 1255, + "end": 1587, + "name": "POP", + "source": 1 + }, + { + "begin": 1255, + "end": 1587, + "name": "POP", + "source": 1 + }, + { + "begin": 1255, + "end": 1587, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1593, + "end": 1925, + "name": "tag", + "source": 1, + "value": "26" + }, + { + "begin": 1593, + "end": 1925, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1714, + "end": 1718, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1752, + "end": 1754, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 1741, + "end": 1750, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1737, + "end": 1755, + "name": "ADD", + "source": 1 + }, + { + "begin": 1729, + "end": 1755, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1729, + "end": 1755, + "name": "POP", + "source": 1 + }, + { + "begin": 1765, + "end": 1836, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1833, + "end": 1834, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1822, + "end": 1831, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1818, + "end": 1835, + "name": "ADD", + "source": 1 + }, + { + "begin": 1809, + "end": 1815, + "name": "DUP6", + "source": 1 + }, + { + "begin": 1765, + "end": 1836, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1765, + "end": 1836, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1765, + "end": 1836, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1765, + "end": 1836, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1846, + "end": 1918, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1914, + "end": 1916, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1903, + "end": 1912, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1899, + "end": 1917, + "name": "ADD", + "source": 1 + }, + { + "begin": 1890, + "end": 1896, + "name": "DUP5", + "source": 1 + }, + { + "begin": 1846, + "end": 1918, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1846, + "end": 1918, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1846, + "end": 1918, + "name": "tag", + "source": 1, + "value": "67" + }, + { + "begin": 1846, + "end": 1918, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1593, + "end": 1925, + "name": "SWAP4", + "source": 1 + }, + { + "begin": 1593, + "end": 1925, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1593, + "end": 1925, + "name": "POP", + "source": 1 + }, + { + "begin": 1593, + "end": 1925, + "name": "POP", + "source": 1 + }, + { + "begin": 1593, + "end": 1925, + "name": "POP", + "source": 1 + }, + { + "begin": 1593, + "end": 1925, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2012, + "end": 2317, + "name": "tag", + "source": 1, + "value": "33" + }, + { + "begin": 2012, + "end": 2317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2052, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2071, + "end": 2091, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 2089, + "end": 2090, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2071, + "end": 2091, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 2071, + "end": 2091, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2071, + "end": 2091, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 2071, + "end": 2091, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2066, + "end": 2091, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2066, + "end": 2091, + "name": "POP", + "source": 1 + }, + { + "begin": 2105, + "end": 2125, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2123, + "end": 2124, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2105, + "end": 2125, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 2105, + "end": 2125, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2105, + "end": 2125, + "name": "tag", + "source": 1, + "value": "72" + }, + { + "begin": 2105, + "end": 2125, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2100, + "end": 2125, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2100, + "end": 2125, + "name": "POP", + "source": 1 + }, + { + "begin": 2259, + "end": 2260, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2191, + "end": 2257, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2187, + "end": 2261, + "name": "SUB", + "source": 1 + }, + { + "begin": 2184, + "end": 2185, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2181, + "end": 2262, + "name": "GT", + "source": 1 + }, + { + "begin": 2178, + "end": 2285, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2178, + "end": 2285, + "name": "PUSH [tag]", + "source": 1, + "value": "73" + }, + { + "begin": 2178, + "end": 2285, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2265, + "end": 2283, + "name": "PUSH [tag]", + "source": 1, + "value": "74" + }, + { + "begin": 2265, + "end": 2283, + "name": "PUSH [tag]", + "source": 1, + "value": "75" + }, + { + "begin": 2265, + "end": 2283, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2265, + "end": 2283, + "name": "tag", + "source": 1, + "value": "74" + }, + { + "begin": 2265, + "end": 2283, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2178, + "end": 2285, + "name": "tag", + "source": 1, + "value": "73" + }, + { + "begin": 2178, + "end": 2285, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2309, + "end": 2310, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2306, + "end": 2307, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2302, + "end": 2311, + "name": "ADD", + "source": 1 + }, + { + "begin": 2295, + "end": 2311, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2295, + "end": 2311, + "name": "POP", + "source": 1 + }, + { + "begin": 2012, + "end": 2317, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2012, + "end": 2317, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2012, + "end": 2317, + "name": "POP", + "source": 1 + }, + { + "begin": 2012, + "end": 2317, + "name": "POP", + "source": 1 + }, + { + "begin": 2012, + "end": 2317, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2323, + "end": 2514, + "name": "tag", + "source": 1, + "value": "28" + }, + { + "begin": 2323, + "end": 2514, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2363, + "end": 2367, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2383, + "end": 2403, + "name": "PUSH [tag]", + "source": 1, + "value": "77" + }, + { + "begin": 2401, + "end": 2402, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2383, + "end": 2403, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 2383, + "end": 2403, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2383, + "end": 2403, + "name": "tag", + "source": 1, + "value": "77" + }, + { + "begin": 2383, + "end": 2403, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2378, + "end": 2403, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2378, + "end": 2403, + "name": "POP", + "source": 1 + }, + { + "begin": 2417, + "end": 2437, + "name": "PUSH [tag]", + "source": 1, + "value": "78" + }, + { + "begin": 2435, + "end": 2436, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2417, + "end": 2437, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 2417, + "end": 2437, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2417, + "end": 2437, + "name": "tag", + "source": 1, + "value": "78" + }, + { + "begin": 2417, + "end": 2437, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2412, + "end": 2437, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2412, + "end": 2437, + "name": "POP", + "source": 1 + }, + { + "begin": 2456, + "end": 2457, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2453, + "end": 2454, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2450, + "end": 2458, + "name": "LT", + "source": 1 + }, + { + "begin": 2447, + "end": 2481, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2447, + "end": 2481, + "name": "PUSH [tag]", + "source": 1, + "value": "79" + }, + { + "begin": 2447, + "end": 2481, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2461, + "end": 2479, + "name": "PUSH [tag]", + "source": 1, + "value": "80" + }, + { + "begin": 2461, + "end": 2479, + "name": "PUSH [tag]", + "source": 1, + "value": "75" + }, + { + "begin": 2461, + "end": 2479, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2461, + "end": 2479, + "name": "tag", + "source": 1, + "value": "80" + }, + { + "begin": 2461, + "end": 2479, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2447, + "end": 2481, + "name": "tag", + "source": 1, + "value": "79" + }, + { + "begin": 2447, + "end": 2481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2507, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2503, + "end": 2504, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2499, + "end": 2508, + "name": "SUB", + "source": 1 + }, + { + "begin": 2491, + "end": 2508, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2491, + "end": 2508, + "name": "POP", + "source": 1 + }, + { + "begin": 2323, + "end": 2514, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2323, + "end": 2514, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2323, + "end": 2514, + "name": "POP", + "source": 1 + }, + { + "begin": 2323, + "end": 2514, + "name": "POP", + "source": 1 + }, + { + "begin": 2323, + "end": 2514, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2520, + "end": 2616, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 2520, + "end": 2616, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2557, + "end": 2564, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2586, + "end": 2610, + "name": "PUSH [tag]", + "source": 1, + "value": "82" + }, + { + "begin": 2604, + "end": 2609, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2586, + "end": 2610, + "name": "PUSH [tag]", + "source": 1, + "value": "83" + }, + { + "begin": 2586, + "end": 2610, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2586, + "end": 2610, + "name": "tag", + "source": 1, + "value": "82" + }, + { + "begin": 2586, + "end": 2610, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2575, + "end": 2610, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2575, + "end": 2610, + "name": "POP", + "source": 1 + }, + { + "begin": 2520, + "end": 2616, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2520, + "end": 2616, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2520, + "end": 2616, + "name": "POP", + "source": 1 + }, + { + "begin": 2520, + "end": 2616, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2622, + "end": 2748, + "name": "tag", + "source": 1, + "value": "83" + }, + { + "begin": 2622, + "end": 2748, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2659, + "end": 2666, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2699, + "end": 2741, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2692, + "end": 2697, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2688, + "end": 2742, + "name": "AND", + "source": 1 + }, + { + "begin": 2677, + "end": 2742, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2677, + "end": 2742, + "name": "POP", + "source": 1 + }, + { + "begin": 2622, + "end": 2748, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2622, + "end": 2748, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2622, + "end": 2748, + "name": "POP", + "source": 1 + }, + { + "begin": 2622, + "end": 2748, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2754, + "end": 2831, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 2754, + "end": 2831, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2791, + "end": 2798, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2820, + "end": 2825, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2809, + "end": 2825, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2809, + "end": 2825, + "name": "POP", + "source": 1 + }, + { + "begin": 2754, + "end": 2831, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2754, + "end": 2831, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2754, + "end": 2831, + "name": "POP", + "source": 1 + }, + { + "begin": 2754, + "end": 2831, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2837, + "end": 3017, + "name": "tag", + "source": 1, + "value": "75" + }, + { + "begin": 2837, + "end": 3017, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2885, + "end": 2962, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2882, + "end": 2883, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2875, + "end": 2963, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2982, + "end": 2986, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2979, + "end": 2980, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2972, + "end": 2987, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3006, + "end": 3010, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 3003, + "end": 3004, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2996, + "end": 3011, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3023, + "end": 3203, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 3023, + "end": 3203, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3071, + "end": 3148, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 3068, + "end": 3069, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3061, + "end": 3149, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3168, + "end": 3172, + "name": "PUSH", + "source": 1, + "value": "21" + }, + { + "begin": 3165, + "end": 3166, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 3158, + "end": 3173, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3192, + "end": 3196, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 3189, + "end": 3190, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3182, + "end": 3197, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3332, + "end": 3449, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 3332, + "end": 3449, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3441, + "end": 3442, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3438, + "end": 3439, + "name": "DUP1", + "source": 1 + }, + { + "begin": 3431, + "end": 3443, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3455, + "end": 3564, + "name": "tag", + "source": 1, + "value": "40" + }, + { + "begin": 3455, + "end": 3564, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3538, + "end": 3539, + "name": "PUSH", + "source": 1, + "value": "3" + }, + { + "begin": 3531, + "end": 3536, + "name": "DUP2", + "source": 1 + }, + { + "begin": 3528, + "end": 3540, + "name": "LT", + "source": 1 + }, + { + "begin": 3518, + "end": 3558, + "name": "PUSH [tag]", + "source": 1, + "value": "92" + }, + { + "begin": 3518, + "end": 3558, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 3554, + "end": 3555, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3551, + "end": 3552, + "name": "DUP1", + "source": 1 + }, + { + "begin": 3544, + "end": 3556, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3518, + "end": 3558, + "name": "tag", + "source": 1, + "value": "92" + }, + { + "begin": 3518, + "end": 3558, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3455, + "end": 3564, + "name": "POP", + "source": 1 + }, + { + "begin": 3455, + "end": 3564, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 3570, + "end": 3692, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 3570, + "end": 3692, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3643, + "end": 3667, + "name": "PUSH [tag]", + "source": 1, + "value": "94" + }, + { + "begin": 3661, + "end": 3666, + "name": "DUP2", + "source": 1 + }, + { + "begin": 3643, + "end": 3667, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 3643, + "end": 3667, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 3643, + "end": 3667, + "name": "tag", + "source": 1, + "value": "94" + }, + { + "begin": 3643, + "end": 3667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3636, + "end": 3641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 3633, + "end": 3668, + "name": "EQ", + "source": 1 + }, + { + "begin": 3623, + "end": 3686, + "name": "PUSH [tag]", + "source": 1, + "value": "95" + }, + { + "begin": 3623, + "end": 3686, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 3682, + "end": 3683, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3679, + "end": 3680, + "name": "DUP1", + "source": 1 + }, + { + "begin": 3672, + "end": 3684, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3623, + "end": 3686, + "name": "tag", + "source": 1, + "value": "95" + }, + { + "begin": 3623, + "end": 3686, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3570, + "end": 3692, + "name": "POP", + "source": 1 + }, + { + "begin": 3570, + "end": 3692, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "deposit(uint256)": "b6b55f25", + "set(uint8)": "24b8ba5f", + "withdraw(uint256)": "2e1a7d4d" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Bank.Status\",\"name\":\"_status\",\"type\":\"uint8\"}],\"name\":\"set\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"NotEnoughFunds(uint256,uint256)\":[{\"details\":\"\\u81ea\\u8a02\\u932f\\u8aa4\\u985e\\u578b: \\u8cc7\\u91d1\\u4e0d\\u8db3\",\"params\":{\"available\":\"\\u53ef\\u7528\\u7684\\u8cc7\\u91d1\",\"requested\":\"\\u8981\\u6c42\\u7684\\u8cc7\\u91d1\"}}]},\"events\":{\"Deposited(address,uint256)\":{\"details\":\"\\u5df2\\u5b58\\u6b3e\\u7684\\u4e8b\\u4ef6\",\"params\":{\"addr\":\"\\u5b58\\u6b3e\\u8005\\u7684\\u5730\\u5740\",\"amount\":\"\\u5b58\\u591a\\u5c11\\u91d1\\u984d\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"The constructor sets the original `amount` of the contract to the bank.\",\"params\":{\"amount\":\"\\u5b58\\u6b3e\\u958b\\u6236\\u7684\\u91d1\\u984d\\u6578\\u91cf\"}},\"deposit(uint256)\":{\"details\":\"Functions(\\u529f\\u80fd): \\u5b58\\u6b3e\\u4e26\\u589e\\u52a0\\u7e3d\\u8cc7\\u7522\",\"params\":{\"amount\":\"\\u6b32\\u5b58\\u6b3e\\u7684\\u91d1\\u984d\\u6578\\u91cf\"}},\"set(uint8)\":{\"details\":\"\\u5c07\\u5167\\u90e8\\u7684\\u72c0\\u614b\\u66f4\\u65b0\\u70ba\\u5916\\u90e8\\u6307\\u5b9a\\u7684\\u72c0\\u614b\",\"params\":{\"_status\":\"\\u6b32\\u66f4\\u65b0\\u7684\\u72c0\\u614b\"}},\"withdraw(uint256)\":{\"details\":\"Errors(\\u932f\\u8aa4\\u8655\\u7406): \\u63d0\\u6b3e\\u4e26\\u6e1b\\u5c11\\u7e3d\\u8cc7\\u7522\",\"params\":{\"amount\":\"\\u63d0\\u6b3e\\u7684\\u91d1\\u984d\\u6578\\u91cf\"}}},\"stateVariables\":{\"account\":{\"details\":\"\\u5e33\\u865f\\u7684\\u8b8a\\u6578\\u5ba3\\u544a\"},\"owner\":{\"details\":\"State Variables(\\u72c0\\u614b\\u8b8a\\u6578)\"},\"status\":{\"details\":\"\\u72c0\\u614b\\u7684\\u8b8a\\u6578\\u5ba3\\u544a\"},\"value\":{\"details\":\"State Variables(\\u72c0\\u614b\\u8b8a\\u6578)\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"withdraw(uint256)\":{\"notice\":\"revert\\u53ef\\u4ee5\\u76f4\\u63a5\\u586b\\u4e0a\\u932f\\u8aa4\\u8a0a\\u606f\\u6216\\u8005\\u81ea\\u8a02\\u932f\\u8aa4\\u985e\\u578b\\uff0c\\u7a31\\u4e4brevert\\u4e3b\\u8981\\u662f\\u5728\\u9084\\u6c92\\u6539\\u8b8a\\u72c0\\u614b\\u4e4b\\u524d\\u64a4\\u92b7\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep2/bank.sol\":\"Bank\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep2/bank.sol\":{\"keccak256\":\"0x7ba82065267c1a1dc7347d97f942bc7f65e4cc8f38846a619c34bbbbf829a414\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3f2df0d44cfdd95fc1523e52180d484a8a1ed276cf096270261744bc29b10d3\",\"dweb:/ipfs/QmRB9ExpgCKhA36C8Tc8VCe5XpP6aCAAchYcbXGq3qpkoT\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 4, + "contract": "Ep2/bank.sol:Bank", + "label": "value", + "offset": 0, + "slot": "0", + "type": "t_uint256" + }, + { + "astId": 7, + "contract": "Ep2/bank.sol:Bank", + "label": "owner", + "offset": 0, + "slot": "1", + "type": "t_address" + }, + { + "astId": 99, + "contract": "Ep2/bank.sol:Bank", + "label": "account", + "offset": 0, + "slot": "2", + "type": "t_struct(Account)95_storage" + }, + { + "astId": 107, + "contract": "Ep2/bank.sol:Bank", + "label": "status", + "offset": 0, + "slot": "4", + "type": "t_enum(Status)103" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_enum(Status)103": { + "encoding": "inplace", + "label": "enum Bank.Status", + "numberOfBytes": "1" + }, + "t_string_storage": { + "encoding": "bytes", + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(Account)95_storage": { + "encoding": "inplace", + "label": "struct Bank.Account", + "members": [ + { + "astId": 92, + "contract": "Ep2/bank.sol:Bank", + "label": "username", + "offset": 0, + "slot": "0", + "type": "t_string_storage" + }, + { + "astId": 94, + "contract": "Ep2/bank.sol:Bank", + "label": "id", + "offset": 0, + "slot": "1", + "type": "t_string_storage" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + }, + "userdoc": { + "kind": "user", + "methods": { + "withdraw(uint256)": { + "notice": "revert可以直接填上錯誤訊息或者自訂錯誤類型,稱之revert主要是在還沒改變狀態之前撤銷。" + } + }, + "version": 1 + } + } + } + }, + "sources": { + "Ep2/bank.sol": { + "ast": { + "absolutePath": "Ep2/bank.sol", + "exportedSymbols": { + "Bank": [ + 120 + ] + }, + "id": 121, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 120, + "linearizedBaseContracts": [ + 120 + ], + "name": "Bank", + "nameLocation": "95:4:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 2, + "nodeType": "StructuredDocumentation", + "src": "109:74:0", + "text": "@notice 記載存款數字\n @dev State Variables(狀態變數)" + }, + "id": 4, + "mutability": "mutable", + "name": "value", + "nameLocation": "202:5:0", + "nodeType": "VariableDeclaration", + "scope": 120, + "src": "189:18:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "189:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 5, + "nodeType": "StructuredDocumentation", + "src": "216:77:0", + "text": "@notice 記載存款擁有者\n @dev State Variables(狀態變數)" + }, + "id": 7, + "mutability": "mutable", + "name": "owner", + "nameLocation": "315:5:0", + "nodeType": "VariableDeclaration", + "scope": 120, + "src": "299:21:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "299:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 22, + "nodeType": "Block", + "src": "491:62:0", + "statements": [ + { + "expression": { + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4, + "src": "502:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 14, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10, + "src": "510:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "502:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16, + "nodeType": "ExpressionStatement", + "src": "502:14:0" + }, + { + "expression": { + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 17, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "527:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 18, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "535:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "535:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "527:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 21, + "nodeType": "ExpressionStatement", + "src": "527:18:0" + } + ] + }, + "documentation": { + "id": 8, + "nodeType": "StructuredDocumentation", + "src": "329:131:0", + "text": "@dev The constructor sets the original `amount` of the contract to the bank.\n @param amount 存款開戶的金額數量" + }, + "id": 23, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10, + "mutability": "mutable", + "name": "amount", + "nameLocation": "483:6:0", + "nodeType": "VariableDeclaration", + "scope": 23, + "src": "478:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "478:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "477:13:0" + }, + "returnParameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [], + "src": "491:0:0" + }, + "scope": 120, + "src": "466:87:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 34, + "nodeType": "Block", + "src": "741:59:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 27, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "760:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 28, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "769:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "769:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "760:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "752:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 31, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "752:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32, + "nodeType": "ExpressionStatement", + "src": "752:28:0" + }, + { + "id": 33, + "nodeType": "PlaceholderStatement", + "src": "791:1:0" + } + ] + }, + "documentation": { + "id": 24, + "nodeType": "StructuredDocumentation", + "src": "561:155:0", + "text": "@dev Function Modifiers(修飾函式): 務必只能存款擁有者...\n msg.sender: 訊息的發送者(或這說是發出這個呼叫的人)" + }, + "id": 35, + "name": "onlyOwner", + "nameLocation": "731:9:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "741:0:0" + }, + "src": "722:78:0", + "virtual": false, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": { + "id": 36, + "nodeType": "StructuredDocumentation", + "src": "808:106:0", + "text": "@dev 已存款的事件\n @param addr 存款者的地址\n @param amount 存多少金額" + }, + "id": 42, + "name": "Deposited", + "nameLocation": "926:9:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 41, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "indexed": false, + "mutability": "mutable", + "name": "addr", + "nameLocation": "944:4:0", + "nodeType": "VariableDeclaration", + "scope": 42, + "src": "936:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "936:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 40, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "955:6:0", + "nodeType": "VariableDeclaration", + "scope": 42, + "src": "950:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "950:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "935:27:0" + }, + "src": "920:43:0" + }, + { + "body": { + "id": 60, + "nodeType": "Block", + "src": "1124:119:0", + "statements": [ + { + "expression": { + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 50, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4, + "src": "1135:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 51, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45, + "src": "1144:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1135:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 53, + "nodeType": "ExpressionStatement", + "src": "1135:15:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 55, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1215:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1215:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 57, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45, + "src": "1227:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 54, + "name": "Deposited", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "1205:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 58, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1205:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 59, + "nodeType": "EmitStatement", + "src": "1200:34:0" + } + ] + }, + "documentation": { + "id": 43, + "nodeType": "StructuredDocumentation", + "src": "971:100:0", + "text": "@dev Functions(功能): 存款並增加總資產\n @param amount 欲存款的金額數量" + }, + "functionSelector": "b6b55f25", + "id": 61, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 48, + "kind": "modifierInvocation", + "modifierName": { + "id": 47, + "name": "onlyOwner", + "nodeType": "IdentifierPath", + "referencedDeclaration": 35, + "src": "1114:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "1114:9:0" + } + ], + "name": "deposit", + "nameLocation": "1086:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1099:6:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "1094:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1094:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1093:13:0" + }, + "returnParameters": { + "id": 49, + "nodeType": "ParameterList", + "parameters": [], + "src": "1124:0:0" + }, + "scope": 120, + "src": "1077:166:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "documentation": { + "id": 62, + "nodeType": "StructuredDocumentation", + "src": "1251:125:0", + "text": "@dev 自訂錯誤類型: 資金不足\n @param requested 要求的資金\n @param available 可用的資金" + }, + "id": 68, + "name": "NotEnoughFunds", + "nameLocation": "1388:14:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 67, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "requested", + "nameLocation": "1408:9:0", + "nodeType": "VariableDeclaration", + "scope": 68, + "src": "1403:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1403:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 66, + "mutability": "mutable", + "name": "available", + "nameLocation": "1424:9:0", + "nodeType": "VariableDeclaration", + "scope": 68, + "src": "1419:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 65, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1419:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1402:32:0" + }, + "src": "1382:53:0" + }, + { + "body": { + "id": 89, + "nodeType": "Block", + "src": "1750:116:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 76, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "1765:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 77, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4, + "src": "1774:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1765:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 84, + "nodeType": "IfStatement", + "src": "1761:69:0", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 80, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "1816:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 81, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4, + "src": "1824:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 79, + "name": "NotEnoughFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1801:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1801:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 83, + "nodeType": "RevertStatement", + "src": "1794:36:0" + } + }, + { + "expression": { + "id": 87, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 85, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4, + "src": "1843:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 86, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "1852:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1843:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 88, + "nodeType": "ExpressionStatement", + "src": "1843:15:0" + } + ] + }, + "documentation": { + "id": 69, + "nodeType": "StructuredDocumentation", + "src": "1443:238:0", + "text": "@dev Errors(錯誤處理): 提款並減少總資產\n @param amount 提款的金額數量\n @notice revert可以直接填上錯誤訊息或者自訂錯誤類型,稱之revert主要是在還沒改變狀態之前撤銷。" + }, + "functionSelector": "2e1a7d4d", + "id": 90, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 74, + "kind": "modifierInvocation", + "modifierName": { + "id": 73, + "name": "onlyOwner", + "nodeType": "IdentifierPath", + "referencedDeclaration": 35, + "src": "1735:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "1735:9:0" + } + ], + "name": "withdraw", + "nameLocation": "1696:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 72, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 71, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1710:6:0", + "nodeType": "VariableDeclaration", + "scope": 90, + "src": "1705:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 70, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1705:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1704:13:0" + }, + "returnParameters": { + "id": 75, + "nodeType": "ParameterList", + "parameters": [], + "src": "1750:0:0" + }, + "scope": 120, + "src": "1687:179:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "canonicalName": "Bank.Account", + "id": 95, + "members": [ + { + "constant": false, + "id": 92, + "mutability": "mutable", + "name": "username", + "nameLocation": "1981:8:0", + "nodeType": "VariableDeclaration", + "scope": 95, + "src": "1974:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 91, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1974:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 94, + "mutability": "mutable", + "name": "id", + "nameLocation": "2045:2:0", + "nodeType": "VariableDeclaration", + "scope": 95, + "src": "2038:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 93, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2038:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "Account", + "nameLocation": "1917:7:0", + "nodeType": "StructDefinition", + "scope": 120, + "src": "1910:145:0", + "visibility": "public" + }, + { + "constant": false, + "documentation": { + "id": 96, + "nodeType": "StructuredDocumentation", + "src": "2063:30:0", + "text": "@dev 帳號的變數宣告" + }, + "id": 99, + "mutability": "mutable", + "name": "account", + "nameLocation": "2115:7:0", + "nodeType": "VariableDeclaration", + "scope": 120, + "src": "2099:23:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$95_storage", + "typeString": "struct Bank.Account" + }, + "typeName": { + "id": 98, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 97, + "name": "Account", + "nodeType": "IdentifierPath", + "referencedDeclaration": 95, + "src": "2099:7:0" + }, + "referencedDeclaration": 95, + "src": "2099:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$95_storage_ptr", + "typeString": "struct Bank.Account" + } + }, + "visibility": "private" + }, + { + "canonicalName": "Bank.Status", + "id": 103, + "members": [ + { + "id": 100, + "name": "Start", + "nameLocation": "2199:5:0", + "nodeType": "EnumValue", + "src": "2199:5:0" + }, + { + "id": 101, + "name": "Doing", + "nameLocation": "2206:5:0", + "nodeType": "EnumValue", + "src": "2206:5:0" + }, + { + "id": 102, + "name": "Done", + "nameLocation": "2213:4:0", + "nodeType": "EnumValue", + "src": "2213:4:0" + } + ], + "name": "Status", + "nameLocation": "2189:6:0", + "nodeType": "EnumDefinition", + "src": "2184:35:0" + }, + { + "constant": false, + "documentation": { + "id": 104, + "nodeType": "StructuredDocumentation", + "src": "2228:30:0", + "text": "@dev 狀態的變數宣告" + }, + "id": 107, + "mutability": "mutable", + "name": "status", + "nameLocation": "2279:6:0", + "nodeType": "VariableDeclaration", + "scope": 120, + "src": "2264:21:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$103", + "typeString": "enum Bank.Status" + }, + "typeName": { + "id": 106, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 105, + "name": "Status", + "nodeType": "IdentifierPath", + "referencedDeclaration": 103, + "src": "2264:6:0" + }, + "referencedDeclaration": 103, + "src": "2264:6:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$103", + "typeString": "enum Bank.Status" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 118, + "nodeType": "Block", + "src": "2436:35:0", + "statements": [ + { + "expression": { + "id": 116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 114, + "name": "status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "2447:6:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$103", + "typeString": "enum Bank.Status" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 115, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "2456:7:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$103", + "typeString": "enum Bank.Status" + } + }, + "src": "2447:16:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$103", + "typeString": "enum Bank.Status" + } + }, + "id": 117, + "nodeType": "ExpressionStatement", + "src": "2447:16:0" + } + ] + }, + "documentation": { + "id": 108, + "nodeType": "StructuredDocumentation", + "src": "2294:100:0", + "text": "@dev 將內部的狀態更新為外部指定的狀態\n @param _status 欲更新的狀態" + }, + "functionSelector": "24b8ba5f", + "id": 119, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nameLocation": "2409:3:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 111, + "mutability": "mutable", + "name": "_status", + "nameLocation": "2420:7:0", + "nodeType": "VariableDeclaration", + "scope": 119, + "src": "2413:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$103", + "typeString": "enum Bank.Status" + }, + "typeName": { + "id": 110, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 109, + "name": "Status", + "nodeType": "IdentifierPath", + "referencedDeclaration": 103, + "src": "2413:6:0" + }, + "referencedDeclaration": 103, + "src": "2413:6:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$103", + "typeString": "enum Bank.Status" + } + }, + "visibility": "internal" + } + ], + "src": "2412:16:0" + }, + "returnParameters": { + "id": 113, + "nodeType": "ParameterList", + "parameters": [], + "src": "2436:0:0" + }, + "scope": 120, + "src": "2400:71:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 121, + "src": "86:2388:0", + "usedErrors": [ + 68 + ] + } + ], + "src": "33:2441:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep2/bank.sol b/Ep2/bank.sol index ea34b42..90733ae 100644 --- a/Ep2/bank.sol +++ b/Ep2/bank.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.7; +pragma solidity ^0.8.7.0; // @title 銀行合約 contract Bank { @@ -43,7 +43,7 @@ contract Bank { /// @dev 自訂錯誤類型: 資金不足 /// @param requested 要求的資金 /// @param available 可用的資金 - // error NotEnoughFunds(uint requested, uint available); + error NotEnoughFunds(uint requested, uint available); /// @dev Errors(錯誤處理): 提款並減少總資產 /// @param amount 提款的金額數量 @@ -52,7 +52,7 @@ contract Bank { public onlyOwner { if (amount > value) - // revert NotEnoughFunds(amount, value); + revert NotEnoughFunds(amount, value); value -= amount; } diff --git a/Ep3/artifacts/Example.json b/Ep3/artifacts/Example.json index 920dfc3..accf1f5 100644 --- a/Ep3/artifacts/Example.json +++ b/Ep3/artifacts/Example.json @@ -377,9 +377,9 @@ } ], "linkReferences": {}, - "object": "608060405260008060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c6001557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c6002556080600360006101000a81548160ff021916908360ff1602179055506040518060400160405280600781526020017f64796e616d696300000000000000000000000000000000000000000000000000815250600490805190602001906100cd929190610176565b5073dcad3a6d3569df655070ded06cb7a1b2ccd1d3af600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561017057600080fd5b5061027a565b82805461018290610219565b90600052602060002090601f0160209004810192826101a457600085556101eb565b82601f106101bd57805160ff19168380011785556101eb565b828001600101855582156101eb579182015b828111156101ea5782518255916020019190600101906101cf565b5b5090506101f891906101fc565b5090565b5b808211156102155760008160009055506001016101fd565b5090565b6000600282049050600182168061023157607f821691505b602082108114156102455761024461024b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6102bb806102896000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063826ea2271461003b578063cbd33d0514610045575b600080fd5b61004361004f565b005b61004d610133565b005b6000805b600a81101561007d57808261006891906101ad565b915080806100759061020d565b915050610053565b5060005b808061008c9061020d565b915050600a811061008157600060019050600060405180602001604052806000815250905081156100f4576040518060400160405280600981526020017f6163746976617465640000000000000000000000000000000000000000000000815250905061012d565b6040518060400160405280600681526020017f636c6f736564000000000000000000000000000000000000000000000000000081525090505b50505050565b600560009054906101000a905050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a9081150290604051600060405180830381858888f193505050501580156101aa573d6000803e3d6000fd5b50565b60006101b882610203565b91506101c383610203565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f8576101f7610256565b5b828201905092915050565b6000819050919050565b600061021882610203565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561024b5761024a610256565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122097449c47b5663e1fa88d4cc572b4e79e0e2892e03b39f193c52bec6a66a0ba5264736f6c63430008070033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C PUSH1 0x1 SSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C PUSH1 0x2 SSTORE PUSH1 0x80 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x64796E616D696300000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x4 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xCD SWAP3 SWAP2 SWAP1 PUSH2 0x176 JUMP JUMPDEST POP PUSH20 0xDCAD3A6D3569DF655070DED06CB7A1B2CCD1D3AF PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP ADDRESS PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x170 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x182 SWAP1 PUSH2 0x219 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1EB JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1BD JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1EB JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1EB JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1EA JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1CF JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x1FC JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x215 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1FD JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x231 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x245 JUMPI PUSH2 0x244 PUSH2 0x24B JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BB DUP1 PUSH2 0x289 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 0x826EA227 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xCBD33D05 EQ PUSH2 0x45 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x4F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D PUSH2 0x133 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0xA DUP2 LT ISZERO PUSH2 0x7D JUMPI DUP1 DUP3 PUSH2 0x68 SWAP2 SWAP1 PUSH2 0x1AD JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH2 0x75 SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x53 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP1 DUP1 PUSH2 0x8C SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA DUP2 LT PUSH2 0x81 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP DUP2 ISZERO PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6163746976617465640000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0x12D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x636C6F7365640000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0xA SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B8 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C3 DUP4 PUSH2 0x203 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x256 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x218 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x24B JUMPI PUSH2 0x24A PUSH2 0x256 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP8 DIFFICULTY SWAP13 SELFBALANCE 0xB5 PUSH7 0x3E1FA88D4CC572 0xB4 0xE7 SWAP15 0xE 0x28 SWAP3 0xE0 EXTCODESIZE CODECOPY CALL SWAP4 0xC5 0x2B 0xEC PUSH11 0x66A0BA5264736F6C634300 ADDMOD SMOD STOP CALLER ", - "sourceMap": "90:1275:0:-:0;;;170:5;144:31;;;;;;;;;;;;;;;;;;;;209:4;184:29;;262:4;243:23;;340:3;317:26;;;;;;;;;;;;;;;;;;;;352:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;429:42;391:81;;;;;;;;;;;;;;;;;;;;502:4;479:28;;;;;;;;;;;;;;;;;;;;90:1275;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:320:1:-;51:6;88:1;82:4;78:12;68:22;;135:1;129:4;125:12;156:18;146:81;;212:4;204:6;200:17;190:27;;146:81;274:2;266:6;263:14;243:18;240:38;237:84;;;293:18;;:::i;:::-;237:84;58:269;7:320;;;:::o;333:180::-;381:77;378:1;371:88;478:4;475:1;468:15;502:4;499:1;492:15;90:1275:0;;;;;;;" + "object": "608060405260008060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c6001557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c6002556080600360006101000a81548160ff021916908360ff1602179055506040518060400160405280600781526020017f64796e616d696300000000000000000000000000000000000000000000000000815250600490805190602001906100cd929190610176565b5073dcad3a6d3569df655070ded06cb7a1b2ccd1d3af600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561017057600080fd5b5061027a565b82805461018290610219565b90600052602060002090601f0160209004810192826101a457600085556101eb565b82601f106101bd57805160ff19168380011785556101eb565b828001600101855582156101eb579182015b828111156101ea5782518255916020019190600101906101cf565b5b5090506101f891906101fc565b5090565b5b808211156102155760008160009055506001016101fd565b5090565b6000600282049050600182168061023157607f821691505b602082108114156102455761024461024b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6102bb806102896000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063826ea2271461003b578063cbd33d0514610045575b600080fd5b61004361004f565b005b61004d610133565b005b6000805b600a81101561007d57808261006891906101ad565b915080806100759061020d565b915050610053565b5060005b808061008c9061020d565b915050600a811061008157600060019050600060405180602001604052806000815250905081156100f4576040518060400160405280600981526020017f6163746976617465640000000000000000000000000000000000000000000000815250905061012d565b6040518060400160405280600681526020017f636c6f736564000000000000000000000000000000000000000000000000000081525090505b50505050565b600560009054906101000a905050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a9081150290604051600060405180830381858888f193505050501580156101aa573d6000803e3d6000fd5b50565b60006101b882610203565b91506101c383610203565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f8576101f7610256565b5b828201905092915050565b6000819050919050565b600061021882610203565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561024b5761024a610256565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220385da05e12b4ed1b1c08b65b4c563dd9aaef76e2b6cb5026be357b62bf9e142564736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C PUSH1 0x1 SSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C PUSH1 0x2 SSTORE PUSH1 0x80 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x64796E616D696300000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x4 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xCD SWAP3 SWAP2 SWAP1 PUSH2 0x176 JUMP JUMPDEST POP PUSH20 0xDCAD3A6D3569DF655070DED06CB7A1B2CCD1D3AF PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP ADDRESS PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x170 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x182 SWAP1 PUSH2 0x219 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1EB JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1BD JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1EB JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1EB JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1EA JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1CF JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x1FC JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x215 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1FD JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x231 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x245 JUMPI PUSH2 0x244 PUSH2 0x24B JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BB DUP1 PUSH2 0x289 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 0x826EA227 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xCBD33D05 EQ PUSH2 0x45 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x4F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D PUSH2 0x133 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0xA DUP2 LT ISZERO PUSH2 0x7D JUMPI DUP1 DUP3 PUSH2 0x68 SWAP2 SWAP1 PUSH2 0x1AD JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH2 0x75 SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x53 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP1 DUP1 PUSH2 0x8C SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA DUP2 LT PUSH2 0x81 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP DUP2 ISZERO PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6163746976617465640000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0x12D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x636C6F7365640000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0xA SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B8 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C3 DUP4 PUSH2 0x203 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x256 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x218 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x24B JUMPI PUSH2 0x24A PUSH2 0x256 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODESIZE 0x5D LOG0 0x5E SLT 0xB4 0xED SHL SHR ADDMOD 0xB6 JUMPDEST 0x4C JUMP RETURNDATASIZE 0xD9 0xAA 0xEF PUSH23 0xE2B6CB5026BE357B62BF9E142564736F6C634300080700 CALLER ", + "sourceMap": "92:1291:0:-:0;;;172:5;146:31;;;;;;;;;;;;;;;;;;;;211:4;186:29;;264:4;245:23;;342:3;319:26;;;;;;;;;;;;;;;;;;;;354:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;439:42;393:89;;;;;;;;;;;;;;;;;;;;520:4;489:36;;;;;;;;;;;;;;;;;;;;92:1291;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:320:1:-;51:6;88:1;82:4;78:12;68:22;;135:1;129:4;125:12;156:18;146:81;;212:4;204:6;200:17;190:27;;146:81;274:2;266:6;263:14;243:18;240:38;237:84;;;293:18;;:::i;:::-;237:84;58:269;7:320;;;:::o;333:180::-;381:77;378:1;371:88;478:4;475:1;468:15;502:4;499:1;492:15;92:1291:0;;;;;;;" }, "deployedBytecode": { "functionDebugData": { @@ -894,9 +894,9 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063826ea2271461003b578063cbd33d0514610045575b600080fd5b61004361004f565b005b61004d610133565b005b6000805b600a81101561007d57808261006891906101ad565b915080806100759061020d565b915050610053565b5060005b808061008c9061020d565b915050600a811061008157600060019050600060405180602001604052806000815250905081156100f4576040518060400160405280600981526020017f6163746976617465640000000000000000000000000000000000000000000000815250905061012d565b6040518060400160405280600681526020017f636c6f736564000000000000000000000000000000000000000000000000000081525090505b50505050565b600560009054906101000a905050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a9081150290604051600060405180830381858888f193505050501580156101aa573d6000803e3d6000fd5b50565b60006101b882610203565b91506101c383610203565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f8576101f7610256565b5b828201905092915050565b6000819050919050565b600061021882610203565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561024b5761024a610256565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122097449c47b5663e1fa88d4cc572b4e79e0e2892e03b39f193c52bec6a66a0ba5264736f6c63430008070033", - "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 0x826EA227 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xCBD33D05 EQ PUSH2 0x45 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x4F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D PUSH2 0x133 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0xA DUP2 LT ISZERO PUSH2 0x7D JUMPI DUP1 DUP3 PUSH2 0x68 SWAP2 SWAP1 PUSH2 0x1AD JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH2 0x75 SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x53 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP1 DUP1 PUSH2 0x8C SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA DUP2 LT PUSH2 0x81 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP DUP2 ISZERO PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6163746976617465640000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0x12D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x636C6F7365640000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0xA SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B8 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C3 DUP4 PUSH2 0x203 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x256 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x218 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x24B JUMPI PUSH2 0x24A PUSH2 0x256 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP8 DIFFICULTY SWAP13 SELFBALANCE 0xB5 PUSH7 0x3E1FA88D4CC572 0xB4 0xE7 SWAP15 0xE 0x28 SWAP3 0xE0 EXTCODESIZE CODECOPY CALL SWAP4 0xC5 0x2B 0xEC PUSH11 0x66A0BA5264736F6C634300 ADDMOD SMOD STOP CALLER ", - "sourceMap": "90:1275:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;781:581;;;:::i;:::-;;516:224;;;:::i;:::-;;781:581;901:11;932:6;927:68;948:2;944:1;:6;927:68;;;982:1;972:11;;;;;:::i;:::-;;;952:3;;;;;:::i;:::-;;;;927:68;;;;1051:11;1077:58;1095:8;;;;;:::i;:::-;;;;1131:2;1122:6;:11;1077:58;;1181:11;1195:4;1181:18;;1210:20;:25;;;;;;;;;;;;;;1250:6;1246:109;;;1273:20;;;;;;;;;;;;;;;;;;;1246:109;;;1326:17;;;;;;;;;;;;;;;;;;;1246:109;823:539;;;;781:581::o;516:224::-;617:11;;;;;;;;;;708;;;;;;;;;;;:20;;:24;729:2;708:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;516:224::o;7:305:1:-;47:3;66:20;84:1;66:20;:::i;:::-;61:25;;100:20;118:1;100:20;:::i;:::-;95:25;;254:1;186:66;182:74;179:1;176:81;173:107;;;260:18;;:::i;:::-;173:107;304:1;301;297:9;290:16;;7:305;;;;:::o;318:77::-;355:7;384:5;373:16;;318:77;;;:::o;401:233::-;440:3;463:24;481:5;463:24;:::i;:::-;454:33;;509:66;502:5;499:77;496:103;;;579:18;;:::i;:::-;496:103;626:1;619:5;615:13;608:20;;401:233;;;:::o;640:180::-;688:77;685:1;678:88;785:4;782:1;775:15;809:4;806:1;799:15" + "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063826ea2271461003b578063cbd33d0514610045575b600080fd5b61004361004f565b005b61004d610133565b005b6000805b600a81101561007d57808261006891906101ad565b915080806100759061020d565b915050610053565b5060005b808061008c9061020d565b915050600a811061008157600060019050600060405180602001604052806000815250905081156100f4576040518060400160405280600981526020017f6163746976617465640000000000000000000000000000000000000000000000815250905061012d565b6040518060400160405280600681526020017f636c6f736564000000000000000000000000000000000000000000000000000081525090505b50505050565b600560009054906101000a905050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a9081150290604051600060405180830381858888f193505050501580156101aa573d6000803e3d6000fd5b50565b60006101b882610203565b91506101c383610203565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f8576101f7610256565b5b828201905092915050565b6000819050919050565b600061021882610203565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561024b5761024a610256565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220385da05e12b4ed1b1c08b65b4c563dd9aaef76e2b6cb5026be357b62bf9e142564736f6c63430008070033", + "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 0x826EA227 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xCBD33D05 EQ PUSH2 0x45 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x4F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D PUSH2 0x133 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0xA DUP2 LT ISZERO PUSH2 0x7D JUMPI DUP1 DUP3 PUSH2 0x68 SWAP2 SWAP1 PUSH2 0x1AD JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH2 0x75 SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x53 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP1 DUP1 PUSH2 0x8C SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA DUP2 LT PUSH2 0x81 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP DUP2 ISZERO PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6163746976617465640000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0x12D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x636C6F7365640000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0xA SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B8 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C3 DUP4 PUSH2 0x203 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x256 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x218 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x24B JUMPI PUSH2 0x24A PUSH2 0x256 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODESIZE 0x5D LOG0 0x5E SLT 0xB4 0xED SHL SHR ADDMOD 0xB6 JUMPDEST 0x4C JUMP RETURNDATASIZE 0xD9 0xAA 0xEF PUSH23 0xE2B6CB5026BE357B62BF9E142564736F6C634300080700 CALLER ", + "sourceMap": "92:1291:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;799:581;;;:::i;:::-;;534:224;;;:::i;:::-;;799:581;919:11;950:6;945:68;966:2;962:1;:6;945:68;;;1000:1;990:11;;;;;:::i;:::-;;;970:3;;;;;:::i;:::-;;;;945:68;;;;1069:11;1095:58;1113:8;;;;;:::i;:::-;;;;1149:2;1140:6;:11;1095:58;;1199:11;1213:4;1199:18;;1228:20;:25;;;;;;;;;;;;;;1268:6;1264:109;;;1291:20;;;;;;;;;;;;;;;;;;;1264:109;;;1344:17;;;;;;;;;;;;;;;;;;;1264:109;841:539;;;;799:581::o;534:224::-;635:11;;;;;;;;;;726;;;;;;;;;;;:20;;:24;747:2;726:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;534:224::o;7:305:1:-;47:3;66:20;84:1;66:20;:::i;:::-;61:25;;100:20;118:1;100:20;:::i;:::-;95:25;;254:1;186:66;182:74;179:1;176:81;173:107;;;260:18;;:::i;:::-;173:107;304:1;301;297:9;290:16;;7:305;;;;:::o;318:77::-;355:7;384:5;373:16;;318:77;;;:::o;401:233::-;440:3;463:24;481:5;463:24;:::i;:::-;454:33;;509:66;502:5;499:77;496:103;;;579:18;;:::i;:::-;496:103;626:1;619:5;615:13;608:20;;401:233;;;:::o;640:180::-;688:77;685:1;678:88;785:4;782:1;775:15;809:4;806:1;799:15" }, "gasEstimates": { "creation": { diff --git a/Ep3/artifacts/Example_metadata.json b/Ep3/artifacts/Example_metadata.json index 2682e03..9119ab1 100644 --- a/Ep3/artifacts/Example_metadata.json +++ b/Ep3/artifacts/Example_metadata.json @@ -57,11 +57,11 @@ }, "sources": { "Ep3/example.sol": { - "keccak256": "0xd1b35e4ae01c90e1fd44441819e4e35e8dad565fd6ce2792b520f2237f5192c8", + "keccak256": "0xe4912c2e295f1c94ae3c2b8de06cfc9824c87b67d510b55075449007a40e7ef9", "license": "MIT", "urls": [ - "bzz-raw://22a83c9f159c8724264f3851b42d71683ded21a0b3c474ea29a263285a47d5e9", - "dweb:/ipfs/Qmc9rDs5xGjkH3qPf4LTgqCqDsNpsT2E6QtUuiXF1Z1v9H" + "bzz-raw://e5d6f2c5b8768eb4a25c2e1f8b83bb9162ef726770c65774b1c2a230cd463ce0", + "dweb:/ipfs/QmRWV4jJCojKQuWWYcyKjghDbeFnXGcgt8vei9qPSNZm8i" ] } }, diff --git a/Ep3/artifacts/build-info/1f49ab1d5fe7a5b2d722d4fcf6424b2f.json b/Ep3/artifacts/build-info/1f49ab1d5fe7a5b2d722d4fcf6424b2f.json new file mode 100644 index 0000000..682b2ee --- /dev/null +++ b/Ep3/artifacts/build-info/1f49ab1d5fe7a5b2d722d4fcf6424b2f.json @@ -0,0 +1,6683 @@ +{ + "id": "1f49ab1d5fe7a5b2d722d4fcf6424b2f", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep3/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\n// @title 智能合約範例\r\ncontract Example {\r\n /// @dev 尚未檢查過\r\n bool private hasChecked = false;\r\n\r\n int256 private xInt256 = -100;\r\n // int256's alias\r\n int private xInt = -100;\r\n\r\n // @dev uint無符號的整數型態\r\n uint8 private xUint8 = 128;\r\n\r\n string private str = \"dynamic\";\r\n\r\n address payable private payableAddr = payable(0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF);\r\n address addr = address(this);\r\n\r\n function assignAddress() public {\r\n // the balance of an address using the property \r\n payableAddr.balance;\r\n // end Ether (in units of wei) to a payable address\r\n payableAddr.transfer(10);\r\n }\r\n\r\n /// @dev 流程控制範例\r\n function flowControlExample() public pure {\r\n /// @notice for...\r\n /// @dev 累加10次的流程\r\n uint count0 = 0;\r\n for (uint i = 0; i < 10; i++) {\r\n count0 += i;\r\n }\r\n\r\n /// @dev 相當於上述的for ...\r\n uint count1 = 0;\r\n do {\r\n count1++;\r\n } while(count1 < 10);\r\n\r\n /// @dev if ... else ...\r\n bool isOpen = true;\r\n string memory status = \"\";\r\n if (isOpen) {\r\n status = \"activated\";\r\n } else {\r\n status = \"closed\";\r\n }\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep3/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "assignAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "flowControlExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "flowControlExample()": { + "details": "流程控制範例" + } + }, + "stateVariables": { + "hasChecked": { + "details": "尚未檢查過" + } + }, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep3/example.sol\":92:1375 contract Example {\r... */\n mstore(0x40, 0x80)\n /* \"Ep3/example.sol\":172:177 false */\n 0x00\n /* \"Ep3/example.sol\":146:177 bool private hasChecked = false */\n dup1\n exp(0x0100, 0x00)\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"Ep3/example.sol\":211:215 -100 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c\n /* \"Ep3/example.sol\":186:215 int256 private xInt256 = -100 */\n 0x01\n sstore\n /* \"Ep3/example.sol\":264:268 -100 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c\n /* \"Ep3/example.sol\":245:268 int private xInt = -100 */\n 0x02\n sstore\n /* \"Ep3/example.sol\":342:345 128 */\n 0x80\n /* \"Ep3/example.sol\":319:345 uint8 private xUint8 = 128 */\n 0x03\n exp(0x0100, 0x00)\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0xff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"Ep3/example.sol\":354:384 string private str = \"dynamic\" */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x07\n dup2\n mstore\n 0x20\n add\n 0x64796e616d696300000000000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n 0x04\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n tag_1\n swap3\n swap2\n swap1\n tag_2\n jump\t// in\ntag_1:\n pop\n /* \"Ep3/example.sol\":439:481 0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF */\n 0xdcad3a6d3569df655070ded06cb7a1b2ccd1d3af\n /* \"Ep3/example.sol\":393:482 address payable private payableAddr = payable(0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF) */\n 0x05\n exp(0x0100, 0x00)\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 /* \"Ep3/example.sol\":512:516 this */\n address\n /* \"Ep3/example.sol\":489:517 address addr = address(this) */\n 0x06\n exp(0x0100, 0x00)\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 /* \"Ep3/example.sol\":92:1375 contract Example {\r... */\n callvalue\n dup1\n iszero\n tag_3\n jumpi\n 0x00\n dup1\n revert\ntag_3:\n pop\n jump(tag_4)\ntag_2:\n dup3\n dup1\n sload\n tag_5\n swap1\n tag_6\n jump\t// in\ntag_5:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n 0x1f\n add\n 0x20\n swap1\n div\n dup2\n add\n swap3\n dup3\n tag_8\n jumpi\n 0x00\n dup6\n sstore\n jump(tag_7)\ntag_8:\n dup3\n 0x1f\n lt\n tag_9\n jumpi\n dup1\n mload\n not(0xff)\n and\n dup4\n dup1\n add\n or\n dup6\n sstore\n jump(tag_7)\ntag_9:\n dup3\n dup1\n add\n 0x01\n add\n dup6\n sstore\n dup3\n iszero\n tag_7\n jumpi\n swap2\n dup3\n add\ntag_10:\n dup3\n dup2\n gt\n iszero\n tag_11\n jumpi\n dup3\n mload\n dup3\n sstore\n swap2\n 0x20\n add\n swap2\n swap1\n 0x01\n add\n swap1\n jump(tag_10)\ntag_11:\ntag_7:\n pop\n swap1\n pop\n tag_12\n swap2\n swap1\n tag_13\n jump\t// in\ntag_12:\n pop\n swap1\n jump\t// out\ntag_13:\ntag_14:\n dup1\n dup3\n gt\n iszero\n tag_15\n jumpi\n 0x00\n dup2\n 0x00\n swap1\n sstore\n pop\n 0x01\n add\n jump(tag_14)\ntag_15:\n pop\n swap1\n jump\t// out\n /* \"#utility.yul\":7:327 */\ntag_6:\n /* \"#utility.yul\":51:57 */\n 0x00\n /* \"#utility.yul\":88:89 */\n 0x02\n /* \"#utility.yul\":82:86 */\n dup3\n /* \"#utility.yul\":78:90 */\n div\n /* \"#utility.yul\":68:90 */\n swap1\n pop\n /* \"#utility.yul\":135:136 */\n 0x01\n /* \"#utility.yul\":129:133 */\n dup3\n /* \"#utility.yul\":125:137 */\n and\n /* \"#utility.yul\":156:174 */\n dup1\n /* \"#utility.yul\":146:227 */\n tag_18\n jumpi\n /* \"#utility.yul\":212:216 */\n 0x7f\n /* \"#utility.yul\":204:210 */\n dup3\n /* \"#utility.yul\":200:217 */\n and\n /* \"#utility.yul\":190:217 */\n swap2\n pop\n /* \"#utility.yul\":146:227 */\ntag_18:\n /* \"#utility.yul\":274:276 */\n 0x20\n /* \"#utility.yul\":266:272 */\n dup3\n /* \"#utility.yul\":263:277 */\n lt\n /* \"#utility.yul\":243:261 */\n dup2\n /* \"#utility.yul\":240:278 */\n eq\n /* \"#utility.yul\":237:321 */\n iszero\n tag_19\n jumpi\n /* \"#utility.yul\":293:311 */\n tag_20\n tag_21\n jump\t// in\ntag_20:\n /* \"#utility.yul\":237:321 */\ntag_19:\n /* \"#utility.yul\":58:327 */\n pop\n /* \"#utility.yul\":7:327 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":333:513 */\ntag_21:\n /* \"#utility.yul\":381:458 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":378:379 */\n 0x00\n /* \"#utility.yul\":371:459 */\n mstore\n /* \"#utility.yul\":478:482 */\n 0x22\n /* \"#utility.yul\":475:476 */\n 0x04\n /* \"#utility.yul\":468:483 */\n mstore\n /* \"#utility.yul\":502:506 */\n 0x24\n /* \"#utility.yul\":499:500 */\n 0x00\n /* \"#utility.yul\":492:507 */\n revert\n /* \"Ep3/example.sol\":92:1375 contract Example {\r... */\ntag_4:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep3/example.sol\":92:1375 contract Example {\r... */\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 0x826ea227\n eq\n tag_3\n jumpi\n dup1\n 0xcbd33d05\n eq\n tag_4\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep3/example.sol\":791:1372 function flowControlExample() public pure {\r... */\n tag_3:\n tag_5\n tag_6\n jump\t// in\n tag_5:\n stop\n /* \"Ep3/example.sol\":526:750 function assignAddress() public {\r... */\n tag_4:\n tag_7\n tag_8\n jump\t// in\n tag_7:\n stop\n /* \"Ep3/example.sol\":791:1372 function flowControlExample() public pure {\r... */\n tag_6:\n /* \"Ep3/example.sol\":911:922 uint count0 */\n 0x00\n /* \"Ep3/example.sol\":942:948 uint i */\n dup1\n /* \"Ep3/example.sol\":937:1005 for (uint i = 0; i < 10; i++) {\r... */\n tag_10:\n /* \"Ep3/example.sol\":958:960 10 */\n 0x0a\n /* \"Ep3/example.sol\":954:955 i */\n dup2\n /* \"Ep3/example.sol\":954:960 i < 10 */\n lt\n /* \"Ep3/example.sol\":937:1005 for (uint i = 0; i < 10; i++) {\r... */\n iszero\n tag_11\n jumpi\n /* \"Ep3/example.sol\":992:993 i */\n dup1\n /* \"Ep3/example.sol\":982:993 count0 += i */\n dup3\n tag_13\n swap2\n swap1\n tag_14\n jump\t// in\n tag_13:\n swap2\n pop\n /* \"Ep3/example.sol\":962:965 i++ */\n dup1\n dup1\n tag_15\n swap1\n tag_16\n jump\t// in\n tag_15:\n swap2\n pop\n pop\n /* \"Ep3/example.sol\":937:1005 for (uint i = 0; i < 10; i++) {\r... */\n jump(tag_10)\n tag_11:\n pop\n /* \"Ep3/example.sol\":1061:1072 uint count1 */\n 0x00\n /* \"Ep3/example.sol\":1087:1145 do {\r... */\n tag_17:\n /* \"Ep3/example.sol\":1105:1113 count1++ */\n dup1\n dup1\n tag_20\n swap1\n tag_16\n jump\t// in\n tag_20:\n swap2\n pop\n pop\n /* \"Ep3/example.sol\":1141:1143 10 */\n 0x0a\n /* \"Ep3/example.sol\":1132:1138 count1 */\n dup2\n /* \"Ep3/example.sol\":1132:1143 count1 < 10 */\n lt\n /* \"Ep3/example.sol\":1087:1145 do {\r... */\n tag_17\n jumpi\n /* \"Ep3/example.sol\":1191:1202 bool isOpen */\n 0x00\n /* \"Ep3/example.sol\":1205:1209 true */\n 0x01\n /* \"Ep3/example.sol\":1191:1209 bool isOpen = true */\n swap1\n pop\n /* \"Ep3/example.sol\":1220:1240 string memory status */\n 0x00\n /* \"Ep3/example.sol\":1220:1245 string memory status = \"\" */\n mload(0x40)\n dup1\n 0x20\n add\n 0x40\n mstore\n dup1\n 0x00\n dup2\n mstore\n pop\n swap1\n pop\n /* \"Ep3/example.sol\":1260:1266 isOpen */\n dup2\n /* \"Ep3/example.sol\":1256:1365 if (isOpen) {\r... */\n iszero\n tag_21\n jumpi\n /* \"Ep3/example.sol\":1283:1303 status = \"activated\" */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x09\n dup2\n mstore\n 0x20\n add\n 0x6163746976617465640000000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n swap1\n pop\n /* \"Ep3/example.sol\":1256:1365 if (isOpen) {\r... */\n jump(tag_22)\n tag_21:\n /* \"Ep3/example.sol\":1336:1353 status = \"closed\" */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x06\n dup2\n mstore\n 0x20\n add\n 0x636c6f7365640000000000000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n swap1\n pop\n /* \"Ep3/example.sol\":1256:1365 if (isOpen) {\r... */\n tag_22:\n /* \"Ep3/example.sol\":833:1372 {\r... */\n pop\n pop\n pop\n pop\n /* \"Ep3/example.sol\":791:1372 function flowControlExample() public pure {\r... */\n jump\t// out\n /* \"Ep3/example.sol\":526:750 function assignAddress() public {\r... */\n tag_8:\n /* \"Ep3/example.sol\":627:638 payableAddr */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n pop\n pop\n /* \"Ep3/example.sol\":718:729 payableAddr */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"Ep3/example.sol\":718:738 payableAddr.transfer */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"Ep3/example.sol\":718:742 payableAddr.transfer(10) */\n 0x08fc\n /* \"Ep3/example.sol\":739:741 10 */\n 0x0a\n /* \"Ep3/example.sol\":718:742 payableAddr.transfer(10) */\n swap1\n dup2\n iszero\n mul\n swap1\n mload(0x40)\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n dup9\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n dup1\n iszero\n tag_25\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_25:\n pop\n /* \"Ep3/example.sol\":526:750 function assignAddress() public {\r... */\n jump\t// out\n /* \"#utility.yul\":7:312 */\n tag_14:\n /* \"#utility.yul\":47:50 */\n 0x00\n /* \"#utility.yul\":66:86 */\n tag_28\n /* \"#utility.yul\":84:85 */\n dup3\n /* \"#utility.yul\":66:86 */\n tag_29\n jump\t// in\n tag_28:\n /* \"#utility.yul\":61:86 */\n swap2\n pop\n /* \"#utility.yul\":100:120 */\n tag_30\n /* \"#utility.yul\":118:119 */\n dup4\n /* \"#utility.yul\":100:120 */\n tag_29\n jump\t// in\n tag_30:\n /* \"#utility.yul\":95:120 */\n swap3\n pop\n /* \"#utility.yul\":254:255 */\n dup3\n /* \"#utility.yul\":186:252 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":182:256 */\n sub\n /* \"#utility.yul\":179:180 */\n dup3\n /* \"#utility.yul\":176:257 */\n gt\n /* \"#utility.yul\":173:280 */\n iszero\n tag_31\n jumpi\n /* \"#utility.yul\":260:278 */\n tag_32\n tag_33\n jump\t// in\n tag_32:\n /* \"#utility.yul\":173:280 */\n tag_31:\n /* \"#utility.yul\":304:305 */\n dup3\n /* \"#utility.yul\":301:302 */\n dup3\n /* \"#utility.yul\":297:306 */\n add\n /* \"#utility.yul\":290:306 */\n swap1\n pop\n /* \"#utility.yul\":7:312 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":318:395 */\n tag_29:\n /* \"#utility.yul\":355:362 */\n 0x00\n /* \"#utility.yul\":384:389 */\n dup2\n /* \"#utility.yul\":373:389 */\n swap1\n pop\n /* \"#utility.yul\":318:395 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":401:634 */\n tag_16:\n /* \"#utility.yul\":440:443 */\n 0x00\n /* \"#utility.yul\":463:487 */\n tag_36\n /* \"#utility.yul\":481:486 */\n dup3\n /* \"#utility.yul\":463:487 */\n tag_29\n jump\t// in\n tag_36:\n /* \"#utility.yul\":454:487 */\n swap2\n pop\n /* \"#utility.yul\":509:575 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":502:507 */\n dup3\n /* \"#utility.yul\":499:576 */\n eq\n /* \"#utility.yul\":496:599 */\n iszero\n tag_37\n jumpi\n /* \"#utility.yul\":579:597 */\n tag_38\n tag_33\n jump\t// in\n tag_38:\n /* \"#utility.yul\":496:599 */\n tag_37:\n /* \"#utility.yul\":626:627 */\n 0x01\n /* \"#utility.yul\":619:624 */\n dup3\n /* \"#utility.yul\":615:628 */\n add\n /* \"#utility.yul\":608:628 */\n swap1\n pop\n /* \"#utility.yul\":401:634 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":640:820 */\n tag_33:\n /* \"#utility.yul\":688:765 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":685:686 */\n 0x00\n /* \"#utility.yul\":678:766 */\n mstore\n /* \"#utility.yul\":785:789 */\n 0x11\n /* \"#utility.yul\":782:783 */\n 0x04\n /* \"#utility.yul\":775:790 */\n mstore\n /* \"#utility.yul\":809:813 */\n 0x24\n /* \"#utility.yul\":806:807 */\n 0x00\n /* \"#utility.yul\":799:814 */\n revert\n\n auxdata: 0xa2646970667358221220574f53eb5fe7fcbd21dbc43cf48c64e9e3b88526822116cfd97eb2c7d966ce9064736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": { + "extract_byte_array_length": { + "entryPoint": 537, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 587, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:516:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "58:269:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68:22:1", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "82:4:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "88:1:1", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "78:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:12:1" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "68:6:1" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "99:38:1", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "129:4:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "135:1:1", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "125:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "125:12:1" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "103:18:1", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "176:51:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "190:27:1", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "204:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "212:4:1", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "200:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "200:17:1" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "190:6:1" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "156:18:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "149:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "149:26:1" + }, + "nodeType": "YulIf", + "src": "146:81:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "279:42:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "293:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "293:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "293:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "243:18:1" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "266:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "274:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "263:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "263:14:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "240:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "240:38:1" + }, + "nodeType": "YulIf", + "src": "237:84:1" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "42:4:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "51:6:1", + "type": "" + } + ], + "src": "7:320:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "361:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "378:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "381:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "371:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "371:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "371:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "475:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "478:4:1", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "468:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "468:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "468:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "499:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "502:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "492:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "492:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "492:15:1" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "333:180:1" + } + ] + }, + "contents": "{\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405260008060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c6001557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c6002556080600360006101000a81548160ff021916908360ff1602179055506040518060400160405280600781526020017f64796e616d696300000000000000000000000000000000000000000000000000815250600490805190602001906100cd929190610176565b5073dcad3a6d3569df655070ded06cb7a1b2ccd1d3af600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561017057600080fd5b5061027a565b82805461018290610219565b90600052602060002090601f0160209004810192826101a457600085556101eb565b82601f106101bd57805160ff19168380011785556101eb565b828001600101855582156101eb579182015b828111156101ea5782518255916020019190600101906101cf565b5b5090506101f891906101fc565b5090565b5b808211156102155760008160009055506001016101fd565b5090565b6000600282049050600182168061023157607f821691505b602082108114156102455761024461024b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6102bb806102896000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063826ea2271461003b578063cbd33d0514610045575b600080fd5b61004361004f565b005b61004d610133565b005b6000805b600a81101561007d57808261006891906101ad565b915080806100759061020d565b915050610053565b5060005b808061008c9061020d565b915050600a811061008157600060019050600060405180602001604052806000815250905081156100f4576040518060400160405280600981526020017f6163746976617465640000000000000000000000000000000000000000000000815250905061012d565b6040518060400160405280600681526020017f636c6f736564000000000000000000000000000000000000000000000000000081525090505b50505050565b600560009054906101000a905050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a9081150290604051600060405180830381858888f193505050501580156101aa573d6000803e3d6000fd5b50565b60006101b882610203565b91506101c383610203565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f8576101f7610256565b5b828201905092915050565b6000819050919050565b600061021882610203565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561024b5761024a610256565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220574f53eb5fe7fcbd21dbc43cf48c64e9e3b88526822116cfd97eb2c7d966ce9064736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C PUSH1 0x1 SSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C PUSH1 0x2 SSTORE PUSH1 0x80 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x64796E616D696300000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x4 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xCD SWAP3 SWAP2 SWAP1 PUSH2 0x176 JUMP JUMPDEST POP PUSH20 0xDCAD3A6D3569DF655070DED06CB7A1B2CCD1D3AF PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP ADDRESS PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x170 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x182 SWAP1 PUSH2 0x219 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1EB JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1BD JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1EB JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1EB JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1EA JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1CF JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x1FC JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x215 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1FD JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x231 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x245 JUMPI PUSH2 0x244 PUSH2 0x24B JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BB DUP1 PUSH2 0x289 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 0x826EA227 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xCBD33D05 EQ PUSH2 0x45 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x4F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D PUSH2 0x133 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0xA DUP2 LT ISZERO PUSH2 0x7D JUMPI DUP1 DUP3 PUSH2 0x68 SWAP2 SWAP1 PUSH2 0x1AD JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH2 0x75 SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x53 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP1 DUP1 PUSH2 0x8C SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA DUP2 LT PUSH2 0x81 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP DUP2 ISZERO PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6163746976617465640000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0x12D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x636C6F7365640000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0xA SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B8 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C3 DUP4 PUSH2 0x203 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x256 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x218 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x24B JUMPI PUSH2 0x24A PUSH2 0x256 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPI 0x4F MSTORE8 0xEB 0x5F 0xE7 0xFC 0xBD 0x21 0xDB 0xC4 EXTCODECOPY DELEGATECALL DUP13 PUSH5 0xE9E3B88526 DUP3 0x21 AND 0xCF 0xD9 PUSH31 0xB2C7D966CE9064736F6C634300080700330000000000000000000000000000 ", + "sourceMap": "92:1283:0:-:0;;;172:5;146:31;;;;;;;;;;;;;;;;;;;;211:4;186:29;;264:4;245:23;;342:3;319:26;;;;;;;;;;;;;;;;;;;;354:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;439:42;393:89;;;;;;;;;;;;;;;;;;;;512:4;489:28;;;;;;;;;;;;;;;;;;;;92:1283;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:320:1:-;51:6;88:1;82:4;78:12;68:22;;135:1;129:4;125:12;156:18;146:81;;212:4;204:6;200:17;190:27;;146:81;274:2;266:6;263:14;243:18;240:38;237:84;;;293:18;;:::i;:::-;237:84;58:269;7:320;;;:::o;333:180::-;381:77;378:1;371:88;478:4;475:1;468:15;502:4;499:1;492:15;92:1283:0;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@assignAddress_45": { + "entryPoint": 307, + "id": 45, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@flowControlExample_105": { + "entryPoint": 79, + "id": 105, + "parameterSlots": 0, + "returnSlots": 0 + }, + "checked_add_t_uint256": { + "entryPoint": 429, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 515, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 525, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 598, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:823:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "51:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "61:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "84:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "66:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "66:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "61:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "95:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "118:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "100:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "100:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "95:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "258:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "260:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "260:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "260:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "179:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "186:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "254:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "182:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "182:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "176:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "176:81:1" + }, + "nodeType": "YulIf", + "src": "173:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "290:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "301:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "304:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "297:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "297:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "290:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "38:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "41:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "47:3:1", + "type": "" + } + ], + "src": "7:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "363:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "373:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "384:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "373:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "345:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "355:7:1", + "type": "" + } + ], + "src": "318:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "444:190:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "454:33:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "481:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "463:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "463:24:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "454:5:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "577:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "579:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "579:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "579:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "502:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "509:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "499:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "499:77:1" + }, + "nodeType": "YulIf", + "src": "496:103:1" + }, + { + "nodeType": "YulAssignment", + "src": "608:20:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "619:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "626:1:1", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "615:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "615:13:1" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "608:3:1" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "430:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "440:3:1", + "type": "" + } + ], + "src": "401:233:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "668:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "685:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "688:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "678:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "678:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "678:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "782:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "785:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "775:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "775:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "775:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "806:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "809:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "799:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "799:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "799:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "640:180:1" + } + ] + }, + "contents": "{\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063826ea2271461003b578063cbd33d0514610045575b600080fd5b61004361004f565b005b61004d610133565b005b6000805b600a81101561007d57808261006891906101ad565b915080806100759061020d565b915050610053565b5060005b808061008c9061020d565b915050600a811061008157600060019050600060405180602001604052806000815250905081156100f4576040518060400160405280600981526020017f6163746976617465640000000000000000000000000000000000000000000000815250905061012d565b6040518060400160405280600681526020017f636c6f736564000000000000000000000000000000000000000000000000000081525090505b50505050565b600560009054906101000a905050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a9081150290604051600060405180830381858888f193505050501580156101aa573d6000803e3d6000fd5b50565b60006101b882610203565b91506101c383610203565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f8576101f7610256565b5b828201905092915050565b6000819050919050565b600061021882610203565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561024b5761024a610256565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220574f53eb5fe7fcbd21dbc43cf48c64e9e3b88526822116cfd97eb2c7d966ce9064736f6c63430008070033", + "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 0x826EA227 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xCBD33D05 EQ PUSH2 0x45 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x4F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D PUSH2 0x133 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0xA DUP2 LT ISZERO PUSH2 0x7D JUMPI DUP1 DUP3 PUSH2 0x68 SWAP2 SWAP1 PUSH2 0x1AD JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH2 0x75 SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x53 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP1 DUP1 PUSH2 0x8C SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA DUP2 LT PUSH2 0x81 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP DUP2 ISZERO PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6163746976617465640000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0x12D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x636C6F7365640000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0xA SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B8 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C3 DUP4 PUSH2 0x203 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x256 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x218 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x24B JUMPI PUSH2 0x24A PUSH2 0x256 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPI 0x4F MSTORE8 0xEB 0x5F 0xE7 0xFC 0xBD 0x21 0xDB 0xC4 EXTCODECOPY DELEGATECALL DUP13 PUSH5 0xE9E3B88526 DUP3 0x21 AND 0xCF 0xD9 PUSH31 0xB2C7D966CE9064736F6C634300080700330000000000000000000000000000 ", + "sourceMap": "92:1283:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:581;;;:::i;:::-;;526:224;;;:::i;:::-;;791:581;911:11;942:6;937:68;958:2;954:1;:6;937:68;;;992:1;982:11;;;;;:::i;:::-;;;962:3;;;;;:::i;:::-;;;;937:68;;;;1061:11;1087:58;1105:8;;;;;:::i;:::-;;;;1141:2;1132:6;:11;1087:58;;1191:11;1205:4;1191:18;;1220:20;:25;;;;;;;;;;;;;;1260:6;1256:109;;;1283:20;;;;;;;;;;;;;;;;;;;1256:109;;;1336:17;;;;;;;;;;;;;;;;;;;1256:109;833:539;;;;791:581::o;526:224::-;627:11;;;;;;;;;;718;;;;;;;;;;;:20;;:24;739:2;718:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;526:224::o;7:305:1:-;47:3;66:20;84:1;66:20;:::i;:::-;61:25;;100:20;118:1;100:20;:::i;:::-;95:25;;254:1;186:66;182:74;179:1;176:81;173:107;;;260:18;;:::i;:::-;173:107;304:1;301;297:9;290:16;;7:305;;;;:::o;318:77::-;355:7;384:5;373:16;;318:77;;;:::o;401:233::-;440:3;463:24;481:5;463:24;:::i;:::-;454:33;;509:66;502:5;499:77;496:103;;;579:18;;:::i;:::-;496:103;626:1;619:5;615:13;608:20;;401:233;;;:::o;640:180::-;688:77;685:1;678:88;785:4;782:1;775:15;809:4;806:1;799:15" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "139800", + "executionCost": "infinite", + "totalCost": "infinite" + }, + "external": { + "assignAddress()": "infinite", + "flowControlExample()": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 92, + "end": 1375, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 172, + "end": 177, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 146, + "end": 177, + "name": "DUP1", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 146, + "end": 177, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 146, + "end": 177, + "name": "EXP", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "DUP2", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "DUP2", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 146, + "end": 177, + "name": "MUL", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "NOT", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "AND", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "DUP4", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "MUL", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "OR", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "POP", + "source": 0 + }, + { + "begin": 211, + "end": 215, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C" + }, + { + "begin": 186, + "end": 215, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 186, + "end": 215, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 264, + "end": 268, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C" + }, + { + "begin": 245, + "end": 268, + "name": "PUSH", + "source": 0, + "value": "2" + }, + { + "begin": 245, + "end": 268, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 342, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 319, + "end": 345, + "name": "EXP", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "DUP2", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "DUP2", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 319, + "end": 345, + "name": "MUL", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "NOT", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "AND", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "DUP4", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 319, + "end": 345, + "name": "AND", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "MUL", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "OR", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "POP", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 354, + "end": 384, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "DUP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 354, + "end": 384, + "name": "ADD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 354, + "end": 384, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "DUP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "7" + }, + { + "begin": 354, + "end": 384, + "name": "DUP2", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 354, + "end": 384, + "name": "ADD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "64796E616D696300000000000000000000000000000000000000000000000000" + }, + { + "begin": 354, + "end": 384, + "name": "DUP2", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "POP", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 354, + "end": 384, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "DUP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 354, + "end": 384, + "name": "ADD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 354, + "end": 384, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 354, + "end": 384, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 354, + "end": 384, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 354, + "end": 384, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "POP", + "source": 0 + }, + { + "begin": 439, + "end": 481, + "name": "PUSH", + "source": 0, + "value": "DCAD3A6D3569DF655070DED06CB7A1B2CCD1D3AF" + }, + { + "begin": 393, + "end": 482, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 393, + "end": 482, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 393, + "end": 482, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 393, + "end": 482, + "name": "EXP", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "DUP2", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "DUP2", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 393, + "end": 482, + "name": "MUL", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "NOT", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "AND", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "DUP4", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 393, + "end": 482, + "name": "AND", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "MUL", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "OR", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "POP", + "source": 0 + }, + { + "begin": 512, + "end": 516, + "name": "ADDRESS", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "PUSH", + "source": 0, + "value": "6" + }, + { + "begin": 489, + "end": 517, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 489, + "end": 517, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 489, + "end": 517, + "name": "EXP", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "DUP2", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "DUP2", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 489, + "end": 517, + "name": "MUL", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "NOT", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "AND", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "DUP4", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 489, + "end": 517, + "name": "AND", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "MUL", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "OR", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 489, + "end": 517, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1375, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "REVERT", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1375, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1375, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "1F" + }, + { + "begin": 92, + "end": 1375, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DIV", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP2", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1375, + "name": "DUP6", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "8" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "1F" + }, + { + "begin": 92, + "end": 1375, + "name": "LT", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 92, + "end": 1375, + "name": "NOT", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "AND", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP4", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "OR", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP6", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1375, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP6", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP2", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "GT", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 92, + "end": 1375, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1375, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "11" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "GT", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1375, + "name": "DUP2", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1375, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 327, + "name": "tag", + "source": 1, + "value": "6" + }, + { + "begin": 7, + "end": 327, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 51, + "end": 57, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 88, + "end": 89, + "name": "PUSH", + "source": 1, + "value": "2" + }, + { + "begin": 82, + "end": 86, + "name": "DUP3", + "source": 1 + }, + { + "begin": 78, + "end": 90, + "name": "DIV", + "source": 1 + }, + { + "begin": 68, + "end": 90, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 68, + "end": 90, + "name": "POP", + "source": 1 + }, + { + "begin": 135, + "end": 136, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 129, + "end": 133, + "name": "DUP3", + "source": 1 + }, + { + "begin": 125, + "end": 137, + "name": "AND", + "source": 1 + }, + { + "begin": 156, + "end": 174, + "name": "DUP1", + "source": 1 + }, + { + "begin": 146, + "end": 227, + "name": "PUSH [tag]", + "source": 1, + "value": "18" + }, + { + "begin": 146, + "end": 227, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 212, + "end": 216, + "name": "PUSH", + "source": 1, + "value": "7F" + }, + { + "begin": 204, + "end": 210, + "name": "DUP3", + "source": 1 + }, + { + "begin": 200, + "end": 217, + "name": "AND", + "source": 1 + }, + { + "begin": 190, + "end": 217, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 190, + "end": 217, + "name": "POP", + "source": 1 + }, + { + "begin": 146, + "end": 227, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 146, + "end": 227, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 274, + "end": 276, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 266, + "end": 272, + "name": "DUP3", + "source": 1 + }, + { + "begin": 263, + "end": 277, + "name": "LT", + "source": 1 + }, + { + "begin": 243, + "end": 261, + "name": "DUP2", + "source": 1 + }, + { + "begin": 240, + "end": 278, + "name": "EQ", + "source": 1 + }, + { + "begin": 237, + "end": 321, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 237, + "end": 321, + "name": "PUSH [tag]", + "source": 1, + "value": "19" + }, + { + "begin": 237, + "end": 321, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 293, + "end": 311, + "name": "PUSH [tag]", + "source": 1, + "value": "20" + }, + { + "begin": 293, + "end": 311, + "name": "PUSH [tag]", + "source": 1, + "value": "21" + }, + { + "begin": 293, + "end": 311, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 293, + "end": 311, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 293, + "end": 311, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 237, + "end": 321, + "name": "tag", + "source": 1, + "value": "19" + }, + { + "begin": 237, + "end": 321, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 58, + "end": 327, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 327, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 327, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 7, + "end": 327, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 327, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 333, + "end": 513, + "name": "tag", + "source": 1, + "value": "21" + }, + { + "begin": 333, + "end": 513, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 381, + "end": 458, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 378, + "end": 379, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 371, + "end": 459, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 478, + "end": 482, + "name": "PUSH", + "source": 1, + "value": "22" + }, + { + "begin": 475, + "end": 476, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 468, + "end": 483, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 502, + "end": 506, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 499, + "end": 500, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 492, + "end": 507, + "name": "REVERT", + "source": 1 + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 92, + "end": 1375, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1375, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1375, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220574f53eb5fe7fcbd21dbc43cf48c64e9e3b88526822116cfd97eb2c7d966ce9064736f6c63430008070033", + ".code": [ + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 92, + "end": 1375, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1375, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "REVERT", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 92, + "end": 1375, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "LT", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1375, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 92, + "end": 1375, + "name": "SHR", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "826EA227" + }, + { + "begin": 92, + "end": 1375, + "name": "EQ", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "CBD33D05" + }, + { + "begin": 92, + "end": 1375, + "name": "EQ", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 92, + "end": 1375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1375, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1375, + "name": "REVERT", + "source": 0 + }, + { + "begin": 791, + "end": 1372, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 791, + "end": 1372, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 791, + "end": 1372, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 791, + "end": 1372, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 791, + "end": 1372, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 791, + "end": 1372, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 791, + "end": 1372, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 791, + "end": 1372, + "name": "STOP", + "source": 0 + }, + { + "begin": 526, + "end": 750, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 526, + "end": 750, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 526, + "end": 750, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 526, + "end": 750, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 526, + "end": 750, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 526, + "end": 750, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 526, + "end": 750, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 526, + "end": 750, + "name": "STOP", + "source": 0 + }, + { + "begin": 791, + "end": 1372, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 791, + "end": 1372, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 911, + "end": 922, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 942, + "end": 948, + "name": "DUP1", + "source": 0 + }, + { + "begin": 937, + "end": 1005, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 937, + "end": 1005, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 958, + "end": 960, + "name": "PUSH", + "source": 0, + "value": "A" + }, + { + "begin": 954, + "end": 955, + "name": "DUP2", + "source": 0 + }, + { + "begin": 954, + "end": 960, + "name": "LT", + "source": 0 + }, + { + "begin": 937, + "end": 1005, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 937, + "end": 1005, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 937, + "end": 1005, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 992, + "end": 993, + "name": "DUP1", + "source": 0 + }, + { + "begin": 982, + "end": 993, + "name": "DUP3", + "source": 0 + }, + { + "begin": 982, + "end": 993, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 982, + "end": 993, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 982, + "end": 993, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 982, + "end": 993, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 982, + "end": 993, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 982, + "end": 993, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 982, + "end": 993, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 982, + "end": 993, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 982, + "end": 993, + "name": "POP", + "source": 0 + }, + { + "begin": 962, + "end": 965, + "name": "DUP1", + "source": 0 + }, + { + "begin": 962, + "end": 965, + "name": "DUP1", + "source": 0 + }, + { + "begin": 962, + "end": 965, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 962, + "end": 965, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 962, + "end": 965, + "name": "PUSH [tag]", + "source": 0, + "value": "16" + }, + { + "begin": 962, + "end": 965, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 962, + "end": 965, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 962, + "end": 965, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 962, + "end": 965, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 962, + "end": 965, + "name": "POP", + "source": 0 + }, + { + "begin": 962, + "end": 965, + "name": "POP", + "source": 0 + }, + { + "begin": 937, + "end": 1005, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 937, + "end": 1005, + "name": "JUMP", + "source": 0 + }, + { + "begin": 937, + "end": 1005, + "name": "tag", + "source": 0, + "value": "11" + }, + { + "begin": 937, + "end": 1005, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 937, + "end": 1005, + "name": "POP", + "source": 0 + }, + { + "begin": 1061, + "end": 1072, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1087, + "end": 1145, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1087, + "end": 1145, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1105, + "end": 1113, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1105, + "end": 1113, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1105, + "end": 1113, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1105, + "end": 1113, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1105, + "end": 1113, + "name": "PUSH [tag]", + "source": 0, + "value": "16" + }, + { + "begin": 1105, + "end": 1113, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1105, + "end": 1113, + "name": "tag", + "source": 0, + "value": "20" + }, + { + "begin": 1105, + "end": 1113, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1105, + "end": 1113, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1105, + "end": 1113, + "name": "POP", + "source": 0 + }, + { + "begin": 1105, + "end": 1113, + "name": "POP", + "source": 0 + }, + { + "begin": 1141, + "end": 1143, + "name": "PUSH", + "source": 0, + "value": "A" + }, + { + "begin": 1132, + "end": 1138, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1132, + "end": 1143, + "name": "LT", + "source": 0 + }, + { + "begin": 1087, + "end": 1145, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1087, + "end": 1145, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1191, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1205, + "end": 1209, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1191, + "end": 1209, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1191, + "end": 1209, + "name": "POP", + "source": 0 + }, + { + "begin": 1220, + "end": 1240, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1220, + "end": 1245, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1220, + "end": 1245, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1220, + "end": 1245, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1220, + "end": 1245, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 1220, + "end": 1245, + "name": "ADD", + "source": 0 + }, + { + "begin": 1220, + "end": 1245, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1220, + "end": 1245, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1220, + "end": 1245, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1220, + "end": 1245, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1220, + "end": 1245, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1220, + "end": 1245, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1220, + "end": 1245, + "name": "POP", + "source": 0 + }, + { + "begin": 1220, + "end": 1245, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1220, + "end": 1245, + "name": "POP", + "source": 0 + }, + { + "begin": 1260, + "end": 1266, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1256, + "end": 1365, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 1256, + "end": 1365, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1256, + "end": 1365, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1283, + "end": 1303, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1283, + "end": 1303, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1283, + "end": 1303, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1283, + "end": 1303, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1283, + "end": 1303, + "name": "ADD", + "source": 0 + }, + { + "begin": 1283, + "end": 1303, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1283, + "end": 1303, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1283, + "end": 1303, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1283, + "end": 1303, + "name": "PUSH", + "source": 0, + "value": "9" + }, + { + "begin": 1283, + "end": 1303, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1283, + "end": 1303, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1283, + "end": 1303, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 1283, + "end": 1303, + "name": "ADD", + "source": 0 + }, + { + "begin": 1283, + "end": 1303, + "name": "PUSH", + "source": 0, + "value": "6163746976617465640000000000000000000000000000000000000000000000" + }, + { + "begin": 1283, + "end": 1303, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1283, + "end": 1303, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1283, + "end": 1303, + "name": "POP", + "source": 0 + }, + { + "begin": 1283, + "end": 1303, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1283, + "end": 1303, + "name": "POP", + "source": 0 + }, + { + "begin": 1256, + "end": 1365, + "name": "PUSH [tag]", + "source": 0, + "value": "22" + }, + { + "begin": 1256, + "end": 1365, + "name": "JUMP", + "source": 0 + }, + { + "begin": 1256, + "end": 1365, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1256, + "end": 1365, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1336, + "end": 1353, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1336, + "end": 1353, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1336, + "end": 1353, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1336, + "end": 1353, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1336, + "end": 1353, + "name": "ADD", + "source": 0 + }, + { + "begin": 1336, + "end": 1353, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1336, + "end": 1353, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1336, + "end": 1353, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1336, + "end": 1353, + "name": "PUSH", + "source": 0, + "value": "6" + }, + { + "begin": 1336, + "end": 1353, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1336, + "end": 1353, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1336, + "end": 1353, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 1336, + "end": 1353, + "name": "ADD", + "source": 0 + }, + { + "begin": 1336, + "end": 1353, + "name": "PUSH", + "source": 0, + "value": "636C6F7365640000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1336, + "end": 1353, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1336, + "end": 1353, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1336, + "end": 1353, + "name": "POP", + "source": 0 + }, + { + "begin": 1336, + "end": 1353, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1336, + "end": 1353, + "name": "POP", + "source": 0 + }, + { + "begin": 1256, + "end": 1365, + "name": "tag", + "source": 0, + "value": "22" + }, + { + "begin": 1256, + "end": 1365, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 833, + "end": 1372, + "name": "POP", + "source": 0 + }, + { + "begin": 833, + "end": 1372, + "name": "POP", + "source": 0 + }, + { + "begin": 833, + "end": 1372, + "name": "POP", + "source": 0 + }, + { + "begin": 833, + "end": 1372, + "name": "POP", + "source": 0 + }, + { + "begin": 791, + "end": 1372, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 526, + "end": 750, + "name": "tag", + "source": 0, + "value": "8" + }, + { + "begin": 526, + "end": 750, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 627, + "end": 638, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 627, + "end": 638, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 627, + "end": 638, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 627, + "end": 638, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 627, + "end": 638, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 627, + "end": 638, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 627, + "end": 638, + "name": "EXP", + "source": 0 + }, + { + "begin": 627, + "end": 638, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 627, + "end": 638, + "name": "POP", + "source": 0 + }, + { + "begin": 627, + "end": 638, + "name": "POP", + "source": 0 + }, + { + "begin": 718, + "end": 729, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 718, + "end": 729, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 718, + "end": 729, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 718, + "end": 729, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 718, + "end": 729, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 718, + "end": 729, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 718, + "end": 729, + "name": "EXP", + "source": 0 + }, + { + "begin": 718, + "end": 729, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 718, + "end": 729, + "name": "DIV", + "source": 0 + }, + { + "begin": 718, + "end": 729, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 718, + "end": 729, + "name": "AND", + "source": 0 + }, + { + "begin": 718, + "end": 738, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 718, + "end": 738, + "name": "AND", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "PUSH", + "source": 0, + "value": "8FC" + }, + { + "begin": 739, + "end": 741, + "name": "PUSH", + "source": 0, + "value": "A" + }, + { + "begin": 718, + "end": 742, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "DUP2", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "MUL", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 718, + "end": 742, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 718, + "end": 742, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 718, + "end": 742, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "DUP1", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "DUP4", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "SUB", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "DUP2", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "DUP6", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "DUP9", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "DUP9", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "CALL", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "SWAP4", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "POP", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "POP", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "POP", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "POP", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "DUP1", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 718, + "end": 742, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "RETURNDATASIZE", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 718, + "end": 742, + "name": "DUP1", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "RETURNDATACOPY", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "RETURNDATASIZE", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 718, + "end": 742, + "name": "REVERT", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "tag", + "source": 0, + "value": "25" + }, + { + "begin": 718, + "end": 742, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 718, + "end": 742, + "name": "POP", + "source": 0 + }, + { + "begin": 526, + "end": 750, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 312, + "name": "tag", + "source": 1, + "value": "14" + }, + { + "begin": 7, + "end": 312, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 47, + "end": 50, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 66, + "end": 86, + "name": "PUSH [tag]", + "source": 1, + "value": "28" + }, + { + "begin": 84, + "end": 85, + "name": "DUP3", + "source": 1 + }, + { + "begin": 66, + "end": 86, + "name": "PUSH [tag]", + "source": 1, + "value": "29" + }, + { + "begin": 66, + "end": 86, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 66, + "end": 86, + "name": "tag", + "source": 1, + "value": "28" + }, + { + "begin": 66, + "end": 86, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 61, + "end": 86, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 61, + "end": 86, + "name": "POP", + "source": 1 + }, + { + "begin": 100, + "end": 120, + "name": "PUSH [tag]", + "source": 1, + "value": "30" + }, + { + "begin": 118, + "end": 119, + "name": "DUP4", + "source": 1 + }, + { + "begin": 100, + "end": 120, + "name": "PUSH [tag]", + "source": 1, + "value": "29" + }, + { + "begin": 100, + "end": 120, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 100, + "end": 120, + "name": "tag", + "source": 1, + "value": "30" + }, + { + "begin": 100, + "end": 120, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 95, + "end": 120, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 95, + "end": 120, + "name": "POP", + "source": 1 + }, + { + "begin": 254, + "end": 255, + "name": "DUP3", + "source": 1 + }, + { + "begin": 186, + "end": 252, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 182, + "end": 256, + "name": "SUB", + "source": 1 + }, + { + "begin": 179, + "end": 180, + "name": "DUP3", + "source": 1 + }, + { + "begin": 176, + "end": 257, + "name": "GT", + "source": 1 + }, + { + "begin": 173, + "end": 280, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 173, + "end": 280, + "name": "PUSH [tag]", + "source": 1, + "value": "31" + }, + { + "begin": 173, + "end": 280, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 260, + "end": 278, + "name": "PUSH [tag]", + "source": 1, + "value": "32" + }, + { + "begin": 260, + "end": 278, + "name": "PUSH [tag]", + "source": 1, + "value": "33" + }, + { + "begin": 260, + "end": 278, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 260, + "end": 278, + "name": "tag", + "source": 1, + "value": "32" + }, + { + "begin": 260, + "end": 278, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 173, + "end": 280, + "name": "tag", + "source": 1, + "value": "31" + }, + { + "begin": 173, + "end": 280, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 304, + "end": 305, + "name": "DUP3", + "source": 1 + }, + { + "begin": 301, + "end": 302, + "name": "DUP3", + "source": 1 + }, + { + "begin": 297, + "end": 306, + "name": "ADD", + "source": 1 + }, + { + "begin": 290, + "end": 306, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 290, + "end": 306, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 318, + "end": 395, + "name": "tag", + "source": 1, + "value": "29" + }, + { + "begin": 318, + "end": 395, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 355, + "end": 362, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 384, + "end": 389, + "name": "DUP2", + "source": 1 + }, + { + "begin": 373, + "end": 389, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 373, + "end": 389, + "name": "POP", + "source": 1 + }, + { + "begin": 318, + "end": 395, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 318, + "end": 395, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 318, + "end": 395, + "name": "POP", + "source": 1 + }, + { + "begin": 318, + "end": 395, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 401, + "end": 634, + "name": "tag", + "source": 1, + "value": "16" + }, + { + "begin": 401, + "end": 634, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 440, + "end": 443, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 463, + "end": 487, + "name": "PUSH [tag]", + "source": 1, + "value": "36" + }, + { + "begin": 481, + "end": 486, + "name": "DUP3", + "source": 1 + }, + { + "begin": 463, + "end": 487, + "name": "PUSH [tag]", + "source": 1, + "value": "29" + }, + { + "begin": 463, + "end": 487, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 463, + "end": 487, + "name": "tag", + "source": 1, + "value": "36" + }, + { + "begin": 463, + "end": 487, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 454, + "end": 487, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 454, + "end": 487, + "name": "POP", + "source": 1 + }, + { + "begin": 509, + "end": 575, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 502, + "end": 507, + "name": "DUP3", + "source": 1 + }, + { + "begin": 499, + "end": 576, + "name": "EQ", + "source": 1 + }, + { + "begin": 496, + "end": 599, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 496, + "end": 599, + "name": "PUSH [tag]", + "source": 1, + "value": "37" + }, + { + "begin": 496, + "end": 599, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 579, + "end": 597, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 579, + "end": 597, + "name": "PUSH [tag]", + "source": 1, + "value": "33" + }, + { + "begin": 579, + "end": 597, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 579, + "end": 597, + "name": "tag", + "source": 1, + "value": "38" + }, + { + "begin": 579, + "end": 597, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 496, + "end": 599, + "name": "tag", + "source": 1, + "value": "37" + }, + { + "begin": 496, + "end": 599, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 626, + "end": 627, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 619, + "end": 624, + "name": "DUP3", + "source": 1 + }, + { + "begin": 615, + "end": 628, + "name": "ADD", + "source": 1 + }, + { + "begin": 608, + "end": 628, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 608, + "end": 628, + "name": "POP", + "source": 1 + }, + { + "begin": 401, + "end": 634, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 401, + "end": 634, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 401, + "end": 634, + "name": "POP", + "source": 1 + }, + { + "begin": 401, + "end": 634, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 640, + "end": 820, + "name": "tag", + "source": 1, + "value": "33" + }, + { + "begin": 640, + "end": 820, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 688, + "end": 765, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 685, + "end": 686, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 678, + "end": 766, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 785, + "end": 789, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 782, + "end": 783, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 775, + "end": 790, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 809, + "end": 813, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 806, + "end": 807, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 799, + "end": 814, + "name": "REVERT", + "source": 1 + } + ] + } + } + }, + "methodIdentifiers": { + "assignAddress()": "cbd33d05", + "flowControlExample()": "826ea227" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"assignAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"flowControlExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"flowControlExample()\":{\"details\":\"\\u6d41\\u7a0b\\u63a7\\u5236\\u7bc4\\u4f8b\"}},\"stateVariables\":{\"hasChecked\":{\"details\":\"\\u5c1a\\u672a\\u6aa2\\u67e5\\u904e\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep3/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep3/example.sol\":{\"keccak256\":\"0xf19e8dcc903cd35662eacb63a86b7d00a1c59e581c45ef19c76e377c6f5c02e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3049b34571c4eaac12ea1ca0f477c25b41e30802326598b6b74bd080f3f5163\",\"dweb:/ipfs/QmeuLL9KL5nDdiHiCzmqVipjboFdF2tKEFY2thrvXFEyTT\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 5, + "contract": "Ep3/example.sol:Example", + "label": "hasChecked", + "offset": 0, + "slot": "0", + "type": "t_bool" + }, + { + "astId": 9, + "contract": "Ep3/example.sol:Example", + "label": "xInt256", + "offset": 0, + "slot": "1", + "type": "t_int256" + }, + { + "astId": 13, + "contract": "Ep3/example.sol:Example", + "label": "xInt", + "offset": 0, + "slot": "2", + "type": "t_int256" + }, + { + "astId": 16, + "contract": "Ep3/example.sol:Example", + "label": "xUint8", + "offset": 0, + "slot": "3", + "type": "t_uint8" + }, + { + "astId": 19, + "contract": "Ep3/example.sol:Example", + "label": "str", + "offset": 0, + "slot": "4", + "type": "t_string_storage" + }, + { + "astId": 25, + "contract": "Ep3/example.sol:Example", + "label": "payableAddr", + "offset": 0, + "slot": "5", + "type": "t_address_payable" + }, + { + "astId": 31, + "contract": "Ep3/example.sol:Example", + "label": "addr", + "offset": 0, + "slot": "6", + "type": "t_address" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_address_payable": { + "encoding": "inplace", + "label": "address payable", + "numberOfBytes": "20" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_int256": { + "encoding": "inplace", + "label": "int256", + "numberOfBytes": "32" + }, + "t_string_storage": { + "encoding": "bytes", + "label": "string", + "numberOfBytes": "32" + }, + "t_uint8": { + "encoding": "inplace", + "label": "uint8", + "numberOfBytes": "1" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep3/example.sol": { + "ast": { + "absolutePath": "Ep3/example.sol", + "exportedSymbols": { + "Example": [ + 106 + ] + }, + "id": 107, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 106, + "linearizedBaseContracts": [ + 106 + ], + "name": "Example", + "nameLocation": "101:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 2, + "nodeType": "StructuredDocumentation", + "src": "116:24:0", + "text": "@dev 尚未檢查過" + }, + "id": 5, + "mutability": "mutable", + "name": "hasChecked", + "nameLocation": "159:10:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "146:31:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "146:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "hexValue": "66616c7365", + "id": 4, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "172:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "xInt256", + "nameLocation": "201:7:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "186:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "186:6:0", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": { + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "211:4:0", + "subExpression": { + "hexValue": "313030", + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "212:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_100_by_1", + "typeString": "int_const -100" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 13, + "mutability": "mutable", + "name": "xInt", + "nameLocation": "257:4:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "245:23:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 10, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "245:3:0", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": { + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "264:4:0", + "subExpression": { + "hexValue": "313030", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "265:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_100_by_1", + "typeString": "int_const -100" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "xUint8", + "nameLocation": "333:6:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "319:26:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 14, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "319:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "313238", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "342:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 19, + "mutability": "mutable", + "name": "str", + "nameLocation": "369:3:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "354:30:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 17, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "354:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "64796e616d6963", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "375:9:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47a6130681d8220ba3d4c0a50de139d22039c5629024c598d023ccca8470c25c", + "typeString": "literal_string \"dynamic\"" + }, + "value": "dynamic" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "payableAddr", + "nameLocation": "417:11:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "393:89:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "393:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": { + "arguments": [ + { + "hexValue": "307864436164336136643335363944463635353037304445643036636237413162324363643144334146", + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "439:42:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "431:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 21, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "431:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "431:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "addr", + "nameLocation": "497:4:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "489:28:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "489:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "arguments": [ + { + "id": 29, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "512:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Example_$106", + "typeString": "contract Example" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Example_$106", + "typeString": "contract Example" + } + ], + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "504:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 27, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "504:7:0", + "typeDescriptions": {} + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "504:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 44, + "nodeType": "Block", + "src": "558:192:0", + "statements": [ + { + "expression": { + "expression": { + "id": 34, + "name": "payableAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "627:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "627:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "627:19:0" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "3130", + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "739:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + ], + "expression": { + "id": 38, + "name": "payableAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "718:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "718:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "718:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "718:24:0" + } + ] + }, + "functionSelector": "cbd33d05", + "id": 45, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "assignAddress", + "nameLocation": "535:13:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [], + "src": "548:2:0" + }, + "returnParameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [], + "src": "558:0:0" + }, + "scope": 106, + "src": "526:224:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 104, + "nodeType": "Block", + "src": "833:539:0", + "statements": [ + { + "assignments": [ + 51 + ], + "declarations": [ + { + "constant": false, + "id": 51, + "mutability": "mutable", + "name": "count0", + "nameLocation": "916:6:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "911:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 50, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "911:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "documentation": "@notice for...\n @dev 累加10次的流程", + "id": 53, + "initialValue": { + "hexValue": "30", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "925:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "911:15:0" + }, + { + "body": { + "id": 68, + "nodeType": "Block", + "src": "967:38:0", + "statements": [ + { + "expression": { + "id": 66, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 64, + "name": "count0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 51, + "src": "982:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 65, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "992:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "982:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 67, + "nodeType": "ExpressionStatement", + "src": "982:11:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 58, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "954:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3130", + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "958:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "954:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 69, + "initializationExpression": { + "assignments": [ + 55 + ], + "declarations": [ + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "i", + "nameLocation": "947:1:0", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "942:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 54, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "942:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 57, + "initialValue": { + "hexValue": "30", + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "951:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "942:10:0" + }, + "loopExpression": { + "expression": { + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "962:3:0", + "subExpression": { + "id": 61, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "962:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 63, + "nodeType": "ExpressionStatement", + "src": "962:3:0" + }, + "nodeType": "ForStatement", + "src": "937:68:0" + }, + { + "assignments": [ + 72 + ], + "declarations": [ + { + "constant": false, + "id": 72, + "mutability": "mutable", + "name": "count1", + "nameLocation": "1066:6:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1061:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 71, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1061:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "documentation": "@dev 相當於上述的for ...", + "id": 74, + "initialValue": { + "hexValue": "30", + "id": 73, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1075:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1061:15:0" + }, + { + "body": { + "id": 78, + "nodeType": "Block", + "src": "1090:35:0", + "statements": [ + { + "expression": { + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1105:8:0", + "subExpression": { + "id": 75, + "name": "count1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "1105:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 77, + "nodeType": "ExpressionStatement", + "src": "1105:8:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 79, + "name": "count1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "1132:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3130", + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1141:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1132:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 82, + "nodeType": "DoWhileStatement", + "src": "1087:58:0" + }, + { + "assignments": [ + 85 + ], + "declarations": [ + { + "constant": false, + "id": 85, + "mutability": "mutable", + "name": "isOpen", + "nameLocation": "1196:6:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1191:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 84, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1191:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "documentation": "@dev if ... else ...", + "id": 87, + "initialValue": { + "hexValue": "74727565", + "id": 86, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1205:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1191:18:0" + }, + { + "assignments": [ + 89 + ], + "declarations": [ + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "status", + "nameLocation": "1234:6:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1220:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 88, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1220:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 91, + "initialValue": { + "hexValue": "", + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1243:2:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1220:25:0" + }, + { + "condition": { + "id": 92, + "name": "isOpen", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 85, + "src": "1260:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 102, + "nodeType": "Block", + "src": "1321:44:0", + "statements": [ + { + "expression": { + "id": 100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 98, + "name": "status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "1336:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "636c6f736564", + "id": 99, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1345:8:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5cdcafd80f762bdc98fd6ec295c784ef6e795af18d23dff7061c51f083ef9d2e", + "typeString": "literal_string \"closed\"" + }, + "value": "closed" + }, + "src": "1336:17:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 101, + "nodeType": "ExpressionStatement", + "src": "1336:17:0" + } + ] + }, + "id": 103, + "nodeType": "IfStatement", + "src": "1256:109:0", + "trueBody": { + "id": 97, + "nodeType": "Block", + "src": "1268:47:0", + "statements": [ + { + "expression": { + "id": 95, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 93, + "name": "status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "1283:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "616374697661746564", + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1292:11:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8e4560b1c76dcaab13085db49759e742cb80a5f12ca42c8f7f7913ade5355774", + "typeString": "literal_string \"activated\"" + }, + "value": "activated" + }, + "src": "1283:20:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 96, + "nodeType": "ExpressionStatement", + "src": "1283:20:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 46, + "nodeType": "StructuredDocumentation", + "src": "758:27:0", + "text": "@dev 流程控制範例" + }, + "functionSelector": "826ea227", + "id": 105, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "flowControlExample", + "nameLocation": "800:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 47, + "nodeType": "ParameterList", + "parameters": [], + "src": "818:2:0" + }, + "returnParameters": { + "id": 48, + "nodeType": "ParameterList", + "parameters": [], + "src": "833:0:0" + }, + "scope": 106, + "src": "791:581:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 107, + "src": "92:1283:0", + "usedErrors": [] + } + ], + "src": "33:1342:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep3/artifacts/build-info/cd1c8f03f5995fed1177e65f2d401fa6.json b/Ep3/artifacts/build-info/cd1c8f03f5995fed1177e65f2d401fa6.json new file mode 100644 index 0000000..95998d7 --- /dev/null +++ b/Ep3/artifacts/build-info/cd1c8f03f5995fed1177e65f2d401fa6.json @@ -0,0 +1,6683 @@ +{ + "id": "cd1c8f03f5995fed1177e65f2d401fa6", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep3/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\n// @title 智能合約範例\r\ncontract Example {\r\n /// @dev 尚未檢查過\r\n bool private hasChecked = false;\r\n\r\n int256 private xInt256 = -100;\r\n // int256's alias\r\n int private xInt = -100;\r\n\r\n // @dev uint無符號的整數型態\r\n uint8 private xUint8 = 128;\r\n\r\n string private str = \"dynamic\";\r\n\r\n address payable private payableAddr = payable(0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF);\r\n address private addr = address(this);\r\n\r\n function assignAddress() public {\r\n // the balance of an address using the property \r\n payableAddr.balance;\r\n // end Ether (in units of wei) to a payable address\r\n payableAddr.transfer(10);\r\n }\r\n\r\n /// @dev 流程控制範例\r\n function flowControlExample() public pure {\r\n /// @notice for...\r\n /// @dev 累加10次的流程\r\n uint count0 = 0;\r\n for (uint i = 0; i < 10; i++) {\r\n count0 += i;\r\n }\r\n\r\n /// @dev 相當於上述的for ...\r\n uint count1 = 0;\r\n do {\r\n count1++;\r\n } while(count1 < 10);\r\n\r\n /// @dev if ... else ...\r\n bool isOpen = true;\r\n string memory status = \"\";\r\n if (isOpen) {\r\n status = \"activated\";\r\n } else {\r\n status = \"closed\";\r\n }\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep3/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "assignAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "flowControlExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "flowControlExample()": { + "details": "流程控制範例" + } + }, + "stateVariables": { + "hasChecked": { + "details": "尚未檢查過" + } + }, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep3/example.sol\":92:1383 contract Example {\r... */\n mstore(0x40, 0x80)\n /* \"Ep3/example.sol\":172:177 false */\n 0x00\n /* \"Ep3/example.sol\":146:177 bool private hasChecked = false */\n dup1\n exp(0x0100, 0x00)\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"Ep3/example.sol\":211:215 -100 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c\n /* \"Ep3/example.sol\":186:215 int256 private xInt256 = -100 */\n 0x01\n sstore\n /* \"Ep3/example.sol\":264:268 -100 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c\n /* \"Ep3/example.sol\":245:268 int private xInt = -100 */\n 0x02\n sstore\n /* \"Ep3/example.sol\":342:345 128 */\n 0x80\n /* \"Ep3/example.sol\":319:345 uint8 private xUint8 = 128 */\n 0x03\n exp(0x0100, 0x00)\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0xff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"Ep3/example.sol\":354:384 string private str = \"dynamic\" */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x07\n dup2\n mstore\n 0x20\n add\n 0x64796e616d696300000000000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n 0x04\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n tag_1\n swap3\n swap2\n swap1\n tag_2\n jump\t// in\ntag_1:\n pop\n /* \"Ep3/example.sol\":439:481 0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF */\n 0xdcad3a6d3569df655070ded06cb7a1b2ccd1d3af\n /* \"Ep3/example.sol\":393:482 address payable private payableAddr = payable(0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF) */\n 0x05\n exp(0x0100, 0x00)\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 /* \"Ep3/example.sol\":520:524 this */\n address\n /* \"Ep3/example.sol\":489:525 address private addr = address(this) */\n 0x06\n exp(0x0100, 0x00)\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 /* \"Ep3/example.sol\":92:1383 contract Example {\r... */\n callvalue\n dup1\n iszero\n tag_3\n jumpi\n 0x00\n dup1\n revert\ntag_3:\n pop\n jump(tag_4)\ntag_2:\n dup3\n dup1\n sload\n tag_5\n swap1\n tag_6\n jump\t// in\ntag_5:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n 0x1f\n add\n 0x20\n swap1\n div\n dup2\n add\n swap3\n dup3\n tag_8\n jumpi\n 0x00\n dup6\n sstore\n jump(tag_7)\ntag_8:\n dup3\n 0x1f\n lt\n tag_9\n jumpi\n dup1\n mload\n not(0xff)\n and\n dup4\n dup1\n add\n or\n dup6\n sstore\n jump(tag_7)\ntag_9:\n dup3\n dup1\n add\n 0x01\n add\n dup6\n sstore\n dup3\n iszero\n tag_7\n jumpi\n swap2\n dup3\n add\ntag_10:\n dup3\n dup2\n gt\n iszero\n tag_11\n jumpi\n dup3\n mload\n dup3\n sstore\n swap2\n 0x20\n add\n swap2\n swap1\n 0x01\n add\n swap1\n jump(tag_10)\ntag_11:\ntag_7:\n pop\n swap1\n pop\n tag_12\n swap2\n swap1\n tag_13\n jump\t// in\ntag_12:\n pop\n swap1\n jump\t// out\ntag_13:\ntag_14:\n dup1\n dup3\n gt\n iszero\n tag_15\n jumpi\n 0x00\n dup2\n 0x00\n swap1\n sstore\n pop\n 0x01\n add\n jump(tag_14)\ntag_15:\n pop\n swap1\n jump\t// out\n /* \"#utility.yul\":7:327 */\ntag_6:\n /* \"#utility.yul\":51:57 */\n 0x00\n /* \"#utility.yul\":88:89 */\n 0x02\n /* \"#utility.yul\":82:86 */\n dup3\n /* \"#utility.yul\":78:90 */\n div\n /* \"#utility.yul\":68:90 */\n swap1\n pop\n /* \"#utility.yul\":135:136 */\n 0x01\n /* \"#utility.yul\":129:133 */\n dup3\n /* \"#utility.yul\":125:137 */\n and\n /* \"#utility.yul\":156:174 */\n dup1\n /* \"#utility.yul\":146:227 */\n tag_18\n jumpi\n /* \"#utility.yul\":212:216 */\n 0x7f\n /* \"#utility.yul\":204:210 */\n dup3\n /* \"#utility.yul\":200:217 */\n and\n /* \"#utility.yul\":190:217 */\n swap2\n pop\n /* \"#utility.yul\":146:227 */\ntag_18:\n /* \"#utility.yul\":274:276 */\n 0x20\n /* \"#utility.yul\":266:272 */\n dup3\n /* \"#utility.yul\":263:277 */\n lt\n /* \"#utility.yul\":243:261 */\n dup2\n /* \"#utility.yul\":240:278 */\n eq\n /* \"#utility.yul\":237:321 */\n iszero\n tag_19\n jumpi\n /* \"#utility.yul\":293:311 */\n tag_20\n tag_21\n jump\t// in\ntag_20:\n /* \"#utility.yul\":237:321 */\ntag_19:\n /* \"#utility.yul\":58:327 */\n pop\n /* \"#utility.yul\":7:327 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":333:513 */\ntag_21:\n /* \"#utility.yul\":381:458 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":378:379 */\n 0x00\n /* \"#utility.yul\":371:459 */\n mstore\n /* \"#utility.yul\":478:482 */\n 0x22\n /* \"#utility.yul\":475:476 */\n 0x04\n /* \"#utility.yul\":468:483 */\n mstore\n /* \"#utility.yul\":502:506 */\n 0x24\n /* \"#utility.yul\":499:500 */\n 0x00\n /* \"#utility.yul\":492:507 */\n revert\n /* \"Ep3/example.sol\":92:1383 contract Example {\r... */\ntag_4:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep3/example.sol\":92:1383 contract Example {\r... */\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 0x826ea227\n eq\n tag_3\n jumpi\n dup1\n 0xcbd33d05\n eq\n tag_4\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep3/example.sol\":799:1380 function flowControlExample() public pure {\r... */\n tag_3:\n tag_5\n tag_6\n jump\t// in\n tag_5:\n stop\n /* \"Ep3/example.sol\":534:758 function assignAddress() public {\r... */\n tag_4:\n tag_7\n tag_8\n jump\t// in\n tag_7:\n stop\n /* \"Ep3/example.sol\":799:1380 function flowControlExample() public pure {\r... */\n tag_6:\n /* \"Ep3/example.sol\":919:930 uint count0 */\n 0x00\n /* \"Ep3/example.sol\":950:956 uint i */\n dup1\n /* \"Ep3/example.sol\":945:1013 for (uint i = 0; i < 10; i++) {\r... */\n tag_10:\n /* \"Ep3/example.sol\":966:968 10 */\n 0x0a\n /* \"Ep3/example.sol\":962:963 i */\n dup2\n /* \"Ep3/example.sol\":962:968 i < 10 */\n lt\n /* \"Ep3/example.sol\":945:1013 for (uint i = 0; i < 10; i++) {\r... */\n iszero\n tag_11\n jumpi\n /* \"Ep3/example.sol\":1000:1001 i */\n dup1\n /* \"Ep3/example.sol\":990:1001 count0 += i */\n dup3\n tag_13\n swap2\n swap1\n tag_14\n jump\t// in\n tag_13:\n swap2\n pop\n /* \"Ep3/example.sol\":970:973 i++ */\n dup1\n dup1\n tag_15\n swap1\n tag_16\n jump\t// in\n tag_15:\n swap2\n pop\n pop\n /* \"Ep3/example.sol\":945:1013 for (uint i = 0; i < 10; i++) {\r... */\n jump(tag_10)\n tag_11:\n pop\n /* \"Ep3/example.sol\":1069:1080 uint count1 */\n 0x00\n /* \"Ep3/example.sol\":1095:1153 do {\r... */\n tag_17:\n /* \"Ep3/example.sol\":1113:1121 count1++ */\n dup1\n dup1\n tag_20\n swap1\n tag_16\n jump\t// in\n tag_20:\n swap2\n pop\n pop\n /* \"Ep3/example.sol\":1149:1151 10 */\n 0x0a\n /* \"Ep3/example.sol\":1140:1146 count1 */\n dup2\n /* \"Ep3/example.sol\":1140:1151 count1 < 10 */\n lt\n /* \"Ep3/example.sol\":1095:1153 do {\r... */\n tag_17\n jumpi\n /* \"Ep3/example.sol\":1199:1210 bool isOpen */\n 0x00\n /* \"Ep3/example.sol\":1213:1217 true */\n 0x01\n /* \"Ep3/example.sol\":1199:1217 bool isOpen = true */\n swap1\n pop\n /* \"Ep3/example.sol\":1228:1248 string memory status */\n 0x00\n /* \"Ep3/example.sol\":1228:1253 string memory status = \"\" */\n mload(0x40)\n dup1\n 0x20\n add\n 0x40\n mstore\n dup1\n 0x00\n dup2\n mstore\n pop\n swap1\n pop\n /* \"Ep3/example.sol\":1268:1274 isOpen */\n dup2\n /* \"Ep3/example.sol\":1264:1373 if (isOpen) {\r... */\n iszero\n tag_21\n jumpi\n /* \"Ep3/example.sol\":1291:1311 status = \"activated\" */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x09\n dup2\n mstore\n 0x20\n add\n 0x6163746976617465640000000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n swap1\n pop\n /* \"Ep3/example.sol\":1264:1373 if (isOpen) {\r... */\n jump(tag_22)\n tag_21:\n /* \"Ep3/example.sol\":1344:1361 status = \"closed\" */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x06\n dup2\n mstore\n 0x20\n add\n 0x636c6f7365640000000000000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n swap1\n pop\n /* \"Ep3/example.sol\":1264:1373 if (isOpen) {\r... */\n tag_22:\n /* \"Ep3/example.sol\":841:1380 {\r... */\n pop\n pop\n pop\n pop\n /* \"Ep3/example.sol\":799:1380 function flowControlExample() public pure {\r... */\n jump\t// out\n /* \"Ep3/example.sol\":534:758 function assignAddress() public {\r... */\n tag_8:\n /* \"Ep3/example.sol\":635:646 payableAddr */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n pop\n pop\n /* \"Ep3/example.sol\":726:737 payableAddr */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"Ep3/example.sol\":726:746 payableAddr.transfer */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"Ep3/example.sol\":726:750 payableAddr.transfer(10) */\n 0x08fc\n /* \"Ep3/example.sol\":747:749 10 */\n 0x0a\n /* \"Ep3/example.sol\":726:750 payableAddr.transfer(10) */\n swap1\n dup2\n iszero\n mul\n swap1\n mload(0x40)\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n dup9\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n dup1\n iszero\n tag_25\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_25:\n pop\n /* \"Ep3/example.sol\":534:758 function assignAddress() public {\r... */\n jump\t// out\n /* \"#utility.yul\":7:312 */\n tag_14:\n /* \"#utility.yul\":47:50 */\n 0x00\n /* \"#utility.yul\":66:86 */\n tag_28\n /* \"#utility.yul\":84:85 */\n dup3\n /* \"#utility.yul\":66:86 */\n tag_29\n jump\t// in\n tag_28:\n /* \"#utility.yul\":61:86 */\n swap2\n pop\n /* \"#utility.yul\":100:120 */\n tag_30\n /* \"#utility.yul\":118:119 */\n dup4\n /* \"#utility.yul\":100:120 */\n tag_29\n jump\t// in\n tag_30:\n /* \"#utility.yul\":95:120 */\n swap3\n pop\n /* \"#utility.yul\":254:255 */\n dup3\n /* \"#utility.yul\":186:252 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":182:256 */\n sub\n /* \"#utility.yul\":179:180 */\n dup3\n /* \"#utility.yul\":176:257 */\n gt\n /* \"#utility.yul\":173:280 */\n iszero\n tag_31\n jumpi\n /* \"#utility.yul\":260:278 */\n tag_32\n tag_33\n jump\t// in\n tag_32:\n /* \"#utility.yul\":173:280 */\n tag_31:\n /* \"#utility.yul\":304:305 */\n dup3\n /* \"#utility.yul\":301:302 */\n dup3\n /* \"#utility.yul\":297:306 */\n add\n /* \"#utility.yul\":290:306 */\n swap1\n pop\n /* \"#utility.yul\":7:312 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":318:395 */\n tag_29:\n /* \"#utility.yul\":355:362 */\n 0x00\n /* \"#utility.yul\":384:389 */\n dup2\n /* \"#utility.yul\":373:389 */\n swap1\n pop\n /* \"#utility.yul\":318:395 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":401:634 */\n tag_16:\n /* \"#utility.yul\":440:443 */\n 0x00\n /* \"#utility.yul\":463:487 */\n tag_36\n /* \"#utility.yul\":481:486 */\n dup3\n /* \"#utility.yul\":463:487 */\n tag_29\n jump\t// in\n tag_36:\n /* \"#utility.yul\":454:487 */\n swap2\n pop\n /* \"#utility.yul\":509:575 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":502:507 */\n dup3\n /* \"#utility.yul\":499:576 */\n eq\n /* \"#utility.yul\":496:599 */\n iszero\n tag_37\n jumpi\n /* \"#utility.yul\":579:597 */\n tag_38\n tag_33\n jump\t// in\n tag_38:\n /* \"#utility.yul\":496:599 */\n tag_37:\n /* \"#utility.yul\":626:627 */\n 0x01\n /* \"#utility.yul\":619:624 */\n dup3\n /* \"#utility.yul\":615:628 */\n add\n /* \"#utility.yul\":608:628 */\n swap1\n pop\n /* \"#utility.yul\":401:634 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":640:820 */\n tag_33:\n /* \"#utility.yul\":688:765 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":685:686 */\n 0x00\n /* \"#utility.yul\":678:766 */\n mstore\n /* \"#utility.yul\":785:789 */\n 0x11\n /* \"#utility.yul\":782:783 */\n 0x04\n /* \"#utility.yul\":775:790 */\n mstore\n /* \"#utility.yul\":809:813 */\n 0x24\n /* \"#utility.yul\":806:807 */\n 0x00\n /* \"#utility.yul\":799:814 */\n revert\n\n auxdata: 0xa2646970667358221220385da05e12b4ed1b1c08b65b4c563dd9aaef76e2b6cb5026be357b62bf9e142564736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": { + "extract_byte_array_length": { + "entryPoint": 537, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 587, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:516:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "58:269:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68:22:1", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "82:4:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "88:1:1", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "78:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:12:1" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "68:6:1" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "99:38:1", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "129:4:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "135:1:1", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "125:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "125:12:1" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "103:18:1", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "176:51:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "190:27:1", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "204:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "212:4:1", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "200:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "200:17:1" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "190:6:1" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "156:18:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "149:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "149:26:1" + }, + "nodeType": "YulIf", + "src": "146:81:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "279:42:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "293:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "293:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "293:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "243:18:1" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "266:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "274:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "263:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "263:14:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "240:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "240:38:1" + }, + "nodeType": "YulIf", + "src": "237:84:1" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "42:4:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "51:6:1", + "type": "" + } + ], + "src": "7:320:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "361:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "378:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "381:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "371:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "371:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "371:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "475:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "478:4:1", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "468:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "468:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "468:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "499:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "502:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "492:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "492:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "492:15:1" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "333:180:1" + } + ] + }, + "contents": "{\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405260008060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c6001557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c6002556080600360006101000a81548160ff021916908360ff1602179055506040518060400160405280600781526020017f64796e616d696300000000000000000000000000000000000000000000000000815250600490805190602001906100cd929190610176565b5073dcad3a6d3569df655070ded06cb7a1b2ccd1d3af600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561017057600080fd5b5061027a565b82805461018290610219565b90600052602060002090601f0160209004810192826101a457600085556101eb565b82601f106101bd57805160ff19168380011785556101eb565b828001600101855582156101eb579182015b828111156101ea5782518255916020019190600101906101cf565b5b5090506101f891906101fc565b5090565b5b808211156102155760008160009055506001016101fd565b5090565b6000600282049050600182168061023157607f821691505b602082108114156102455761024461024b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6102bb806102896000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063826ea2271461003b578063cbd33d0514610045575b600080fd5b61004361004f565b005b61004d610133565b005b6000805b600a81101561007d57808261006891906101ad565b915080806100759061020d565b915050610053565b5060005b808061008c9061020d565b915050600a811061008157600060019050600060405180602001604052806000815250905081156100f4576040518060400160405280600981526020017f6163746976617465640000000000000000000000000000000000000000000000815250905061012d565b6040518060400160405280600681526020017f636c6f736564000000000000000000000000000000000000000000000000000081525090505b50505050565b600560009054906101000a905050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a9081150290604051600060405180830381858888f193505050501580156101aa573d6000803e3d6000fd5b50565b60006101b882610203565b91506101c383610203565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f8576101f7610256565b5b828201905092915050565b6000819050919050565b600061021882610203565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561024b5761024a610256565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220385da05e12b4ed1b1c08b65b4c563dd9aaef76e2b6cb5026be357b62bf9e142564736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C PUSH1 0x1 SSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C PUSH1 0x2 SSTORE PUSH1 0x80 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x64796E616D696300000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x4 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xCD SWAP3 SWAP2 SWAP1 PUSH2 0x176 JUMP JUMPDEST POP PUSH20 0xDCAD3A6D3569DF655070DED06CB7A1B2CCD1D3AF PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP ADDRESS PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x170 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x182 SWAP1 PUSH2 0x219 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1EB JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1BD JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1EB JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1EB JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1EA JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1CF JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x1FC JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x215 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1FD JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x231 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x245 JUMPI PUSH2 0x244 PUSH2 0x24B JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BB DUP1 PUSH2 0x289 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 0x826EA227 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xCBD33D05 EQ PUSH2 0x45 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x4F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D PUSH2 0x133 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0xA DUP2 LT ISZERO PUSH2 0x7D JUMPI DUP1 DUP3 PUSH2 0x68 SWAP2 SWAP1 PUSH2 0x1AD JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH2 0x75 SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x53 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP1 DUP1 PUSH2 0x8C SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA DUP2 LT PUSH2 0x81 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP DUP2 ISZERO PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6163746976617465640000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0x12D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x636C6F7365640000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0xA SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B8 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C3 DUP4 PUSH2 0x203 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x256 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x218 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x24B JUMPI PUSH2 0x24A PUSH2 0x256 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODESIZE 0x5D LOG0 0x5E SLT 0xB4 0xED SHL SHR ADDMOD 0xB6 JUMPDEST 0x4C JUMP RETURNDATASIZE 0xD9 0xAA 0xEF PUSH23 0xE2B6CB5026BE357B62BF9E142564736F6C634300080700 CALLER ", + "sourceMap": "92:1291:0:-:0;;;172:5;146:31;;;;;;;;;;;;;;;;;;;;211:4;186:29;;264:4;245:23;;342:3;319:26;;;;;;;;;;;;;;;;;;;;354:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;439:42;393:89;;;;;;;;;;;;;;;;;;;;520:4;489:36;;;;;;;;;;;;;;;;;;;;92:1291;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:320:1:-;51:6;88:1;82:4;78:12;68:22;;135:1;129:4;125:12;156:18;146:81;;212:4;204:6;200:17;190:27;;146:81;274:2;266:6;263:14;243:18;240:38;237:84;;;293:18;;:::i;:::-;237:84;58:269;7:320;;;:::o;333:180::-;381:77;378:1;371:88;478:4;475:1;468:15;502:4;499:1;492:15;92:1291:0;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@assignAddress_45": { + "entryPoint": 307, + "id": 45, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@flowControlExample_105": { + "entryPoint": 79, + "id": 105, + "parameterSlots": 0, + "returnSlots": 0 + }, + "checked_add_t_uint256": { + "entryPoint": 429, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 515, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 525, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 598, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:823:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "51:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "61:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "84:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "66:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "66:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "61:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "95:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "118:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "100:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "100:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "95:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "258:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "260:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "260:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "260:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "179:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "186:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "254:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "182:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "182:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "176:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "176:81:1" + }, + "nodeType": "YulIf", + "src": "173:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "290:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "301:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "304:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "297:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "297:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "290:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "38:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "41:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "47:3:1", + "type": "" + } + ], + "src": "7:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "363:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "373:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "384:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "373:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "345:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "355:7:1", + "type": "" + } + ], + "src": "318:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "444:190:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "454:33:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "481:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "463:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "463:24:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "454:5:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "577:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "579:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "579:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "579:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "502:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "509:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "499:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "499:77:1" + }, + "nodeType": "YulIf", + "src": "496:103:1" + }, + { + "nodeType": "YulAssignment", + "src": "608:20:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "619:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "626:1:1", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "615:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "615:13:1" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "608:3:1" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "430:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "440:3:1", + "type": "" + } + ], + "src": "401:233:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "668:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "685:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "688:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "678:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "678:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "678:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "782:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "785:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "775:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "775:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "775:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "806:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "809:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "799:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "799:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "799:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "640:180:1" + } + ] + }, + "contents": "{\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063826ea2271461003b578063cbd33d0514610045575b600080fd5b61004361004f565b005b61004d610133565b005b6000805b600a81101561007d57808261006891906101ad565b915080806100759061020d565b915050610053565b5060005b808061008c9061020d565b915050600a811061008157600060019050600060405180602001604052806000815250905081156100f4576040518060400160405280600981526020017f6163746976617465640000000000000000000000000000000000000000000000815250905061012d565b6040518060400160405280600681526020017f636c6f736564000000000000000000000000000000000000000000000000000081525090505b50505050565b600560009054906101000a905050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a9081150290604051600060405180830381858888f193505050501580156101aa573d6000803e3d6000fd5b50565b60006101b882610203565b91506101c383610203565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f8576101f7610256565b5b828201905092915050565b6000819050919050565b600061021882610203565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561024b5761024a610256565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220385da05e12b4ed1b1c08b65b4c563dd9aaef76e2b6cb5026be357b62bf9e142564736f6c63430008070033", + "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 0x826EA227 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xCBD33D05 EQ PUSH2 0x45 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x4F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D PUSH2 0x133 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0xA DUP2 LT ISZERO PUSH2 0x7D JUMPI DUP1 DUP3 PUSH2 0x68 SWAP2 SWAP1 PUSH2 0x1AD JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH2 0x75 SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x53 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP1 DUP1 PUSH2 0x8C SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA DUP2 LT PUSH2 0x81 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP DUP2 ISZERO PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6163746976617465640000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0x12D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x636C6F7365640000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0xA SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B8 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C3 DUP4 PUSH2 0x203 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x256 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x218 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x24B JUMPI PUSH2 0x24A PUSH2 0x256 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODESIZE 0x5D LOG0 0x5E SLT 0xB4 0xED SHL SHR ADDMOD 0xB6 JUMPDEST 0x4C JUMP RETURNDATASIZE 0xD9 0xAA 0xEF PUSH23 0xE2B6CB5026BE357B62BF9E142564736F6C634300080700 CALLER ", + "sourceMap": "92:1291:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;799:581;;;:::i;:::-;;534:224;;;:::i;:::-;;799:581;919:11;950:6;945:68;966:2;962:1;:6;945:68;;;1000:1;990:11;;;;;:::i;:::-;;;970:3;;;;;:::i;:::-;;;;945:68;;;;1069:11;1095:58;1113:8;;;;;:::i;:::-;;;;1149:2;1140:6;:11;1095:58;;1199:11;1213:4;1199:18;;1228:20;:25;;;;;;;;;;;;;;1268:6;1264:109;;;1291:20;;;;;;;;;;;;;;;;;;;1264:109;;;1344:17;;;;;;;;;;;;;;;;;;;1264:109;841:539;;;;799:581::o;534:224::-;635:11;;;;;;;;;;726;;;;;;;;;;;:20;;:24;747:2;726:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;534:224::o;7:305:1:-;47:3;66:20;84:1;66:20;:::i;:::-;61:25;;100:20;118:1;100:20;:::i;:::-;95:25;;254:1;186:66;182:74;179:1;176:81;173:107;;;260:18;;:::i;:::-;173:107;304:1;301;297:9;290:16;;7:305;;;;:::o;318:77::-;355:7;384:5;373:16;;318:77;;;:::o;401:233::-;440:3;463:24;481:5;463:24;:::i;:::-;454:33;;509:66;502:5;499:77;496:103;;;579:18;;:::i;:::-;496:103;626:1;619:5;615:13;608:20;;401:233;;;:::o;640:180::-;688:77;685:1;678:88;785:4;782:1;775:15;809:4;806:1;799:15" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "139800", + "executionCost": "infinite", + "totalCost": "infinite" + }, + "external": { + "assignAddress()": "infinite", + "flowControlExample()": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 92, + "end": 1383, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 172, + "end": 177, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 146, + "end": 177, + "name": "DUP1", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 146, + "end": 177, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 146, + "end": 177, + "name": "EXP", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "DUP2", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "DUP2", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 146, + "end": 177, + "name": "MUL", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "NOT", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "AND", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "DUP4", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "MUL", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "OR", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "POP", + "source": 0 + }, + { + "begin": 211, + "end": 215, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C" + }, + { + "begin": 186, + "end": 215, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 186, + "end": 215, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 264, + "end": 268, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C" + }, + { + "begin": 245, + "end": 268, + "name": "PUSH", + "source": 0, + "value": "2" + }, + { + "begin": 245, + "end": 268, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 342, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 319, + "end": 345, + "name": "EXP", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "DUP2", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "DUP2", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 319, + "end": 345, + "name": "MUL", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "NOT", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "AND", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "DUP4", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 319, + "end": 345, + "name": "AND", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "MUL", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "OR", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "POP", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 354, + "end": 384, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "DUP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 354, + "end": 384, + "name": "ADD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 354, + "end": 384, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "DUP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "7" + }, + { + "begin": 354, + "end": 384, + "name": "DUP2", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 354, + "end": 384, + "name": "ADD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "64796E616D696300000000000000000000000000000000000000000000000000" + }, + { + "begin": 354, + "end": 384, + "name": "DUP2", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "POP", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 354, + "end": 384, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "DUP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 354, + "end": 384, + "name": "ADD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 354, + "end": 384, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 354, + "end": 384, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 354, + "end": 384, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 354, + "end": 384, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "POP", + "source": 0 + }, + { + "begin": 439, + "end": 481, + "name": "PUSH", + "source": 0, + "value": "DCAD3A6D3569DF655070DED06CB7A1B2CCD1D3AF" + }, + { + "begin": 393, + "end": 482, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 393, + "end": 482, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 393, + "end": 482, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 393, + "end": 482, + "name": "EXP", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "DUP2", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "DUP2", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 393, + "end": 482, + "name": "MUL", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "NOT", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "AND", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "DUP4", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 393, + "end": 482, + "name": "AND", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "MUL", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "OR", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 393, + "end": 482, + "name": "POP", + "source": 0 + }, + { + "begin": 520, + "end": 524, + "name": "ADDRESS", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "PUSH", + "source": 0, + "value": "6" + }, + { + "begin": 489, + "end": 525, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 489, + "end": 525, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 489, + "end": 525, + "name": "EXP", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "DUP2", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "DUP2", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 489, + "end": 525, + "name": "MUL", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "NOT", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "AND", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "DUP4", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 489, + "end": 525, + "name": "AND", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "MUL", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "OR", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 489, + "end": 525, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1383, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "REVERT", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1383, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1383, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "1F" + }, + { + "begin": 92, + "end": 1383, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DIV", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP2", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1383, + "name": "DUP6", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "8" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "1F" + }, + { + "begin": 92, + "end": 1383, + "name": "LT", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 92, + "end": 1383, + "name": "NOT", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "AND", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP4", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "OR", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP6", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1383, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP6", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP2", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "GT", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 92, + "end": 1383, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1383, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "11" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "GT", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1383, + "name": "DUP2", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1383, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 327, + "name": "tag", + "source": 1, + "value": "6" + }, + { + "begin": 7, + "end": 327, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 51, + "end": 57, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 88, + "end": 89, + "name": "PUSH", + "source": 1, + "value": "2" + }, + { + "begin": 82, + "end": 86, + "name": "DUP3", + "source": 1 + }, + { + "begin": 78, + "end": 90, + "name": "DIV", + "source": 1 + }, + { + "begin": 68, + "end": 90, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 68, + "end": 90, + "name": "POP", + "source": 1 + }, + { + "begin": 135, + "end": 136, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 129, + "end": 133, + "name": "DUP3", + "source": 1 + }, + { + "begin": 125, + "end": 137, + "name": "AND", + "source": 1 + }, + { + "begin": 156, + "end": 174, + "name": "DUP1", + "source": 1 + }, + { + "begin": 146, + "end": 227, + "name": "PUSH [tag]", + "source": 1, + "value": "18" + }, + { + "begin": 146, + "end": 227, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 212, + "end": 216, + "name": "PUSH", + "source": 1, + "value": "7F" + }, + { + "begin": 204, + "end": 210, + "name": "DUP3", + "source": 1 + }, + { + "begin": 200, + "end": 217, + "name": "AND", + "source": 1 + }, + { + "begin": 190, + "end": 217, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 190, + "end": 217, + "name": "POP", + "source": 1 + }, + { + "begin": 146, + "end": 227, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 146, + "end": 227, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 274, + "end": 276, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 266, + "end": 272, + "name": "DUP3", + "source": 1 + }, + { + "begin": 263, + "end": 277, + "name": "LT", + "source": 1 + }, + { + "begin": 243, + "end": 261, + "name": "DUP2", + "source": 1 + }, + { + "begin": 240, + "end": 278, + "name": "EQ", + "source": 1 + }, + { + "begin": 237, + "end": 321, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 237, + "end": 321, + "name": "PUSH [tag]", + "source": 1, + "value": "19" + }, + { + "begin": 237, + "end": 321, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 293, + "end": 311, + "name": "PUSH [tag]", + "source": 1, + "value": "20" + }, + { + "begin": 293, + "end": 311, + "name": "PUSH [tag]", + "source": 1, + "value": "21" + }, + { + "begin": 293, + "end": 311, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 293, + "end": 311, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 293, + "end": 311, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 237, + "end": 321, + "name": "tag", + "source": 1, + "value": "19" + }, + { + "begin": 237, + "end": 321, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 58, + "end": 327, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 327, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 327, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 7, + "end": 327, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 327, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 333, + "end": 513, + "name": "tag", + "source": 1, + "value": "21" + }, + { + "begin": 333, + "end": 513, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 381, + "end": 458, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 378, + "end": 379, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 371, + "end": 459, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 478, + "end": 482, + "name": "PUSH", + "source": 1, + "value": "22" + }, + { + "begin": 475, + "end": 476, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 468, + "end": 483, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 502, + "end": 506, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 499, + "end": 500, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 492, + "end": 507, + "name": "REVERT", + "source": 1 + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 92, + "end": 1383, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1383, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1383, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220385da05e12b4ed1b1c08b65b4c563dd9aaef76e2b6cb5026be357b62bf9e142564736f6c63430008070033", + ".code": [ + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 92, + "end": 1383, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1383, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "REVERT", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 92, + "end": 1383, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "LT", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1383, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 92, + "end": 1383, + "name": "SHR", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "826EA227" + }, + { + "begin": 92, + "end": 1383, + "name": "EQ", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "CBD33D05" + }, + { + "begin": 92, + "end": 1383, + "name": "EQ", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 92, + "end": 1383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1383, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1383, + "name": "REVERT", + "source": 0 + }, + { + "begin": 799, + "end": 1380, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 799, + "end": 1380, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 799, + "end": 1380, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 799, + "end": 1380, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 799, + "end": 1380, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 799, + "end": 1380, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 799, + "end": 1380, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 799, + "end": 1380, + "name": "STOP", + "source": 0 + }, + { + "begin": 534, + "end": 758, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 534, + "end": 758, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 534, + "end": 758, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 534, + "end": 758, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 534, + "end": 758, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 534, + "end": 758, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 534, + "end": 758, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 534, + "end": 758, + "name": "STOP", + "source": 0 + }, + { + "begin": 799, + "end": 1380, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 799, + "end": 1380, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 919, + "end": 930, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 950, + "end": 956, + "name": "DUP1", + "source": 0 + }, + { + "begin": 945, + "end": 1013, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 945, + "end": 1013, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 966, + "end": 968, + "name": "PUSH", + "source": 0, + "value": "A" + }, + { + "begin": 962, + "end": 963, + "name": "DUP2", + "source": 0 + }, + { + "begin": 962, + "end": 968, + "name": "LT", + "source": 0 + }, + { + "begin": 945, + "end": 1013, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 945, + "end": 1013, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 945, + "end": 1013, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1000, + "end": 1001, + "name": "DUP1", + "source": 0 + }, + { + "begin": 990, + "end": 1001, + "name": "DUP3", + "source": 0 + }, + { + "begin": 990, + "end": 1001, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 990, + "end": 1001, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 990, + "end": 1001, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 990, + "end": 1001, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 990, + "end": 1001, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 990, + "end": 1001, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 990, + "end": 1001, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 990, + "end": 1001, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 990, + "end": 1001, + "name": "POP", + "source": 0 + }, + { + "begin": 970, + "end": 973, + "name": "DUP1", + "source": 0 + }, + { + "begin": 970, + "end": 973, + "name": "DUP1", + "source": 0 + }, + { + "begin": 970, + "end": 973, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 970, + "end": 973, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 970, + "end": 973, + "name": "PUSH [tag]", + "source": 0, + "value": "16" + }, + { + "begin": 970, + "end": 973, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 970, + "end": 973, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 970, + "end": 973, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 970, + "end": 973, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 970, + "end": 973, + "name": "POP", + "source": 0 + }, + { + "begin": 970, + "end": 973, + "name": "POP", + "source": 0 + }, + { + "begin": 945, + "end": 1013, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 945, + "end": 1013, + "name": "JUMP", + "source": 0 + }, + { + "begin": 945, + "end": 1013, + "name": "tag", + "source": 0, + "value": "11" + }, + { + "begin": 945, + "end": 1013, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 945, + "end": 1013, + "name": "POP", + "source": 0 + }, + { + "begin": 1069, + "end": 1080, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1095, + "end": 1153, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1095, + "end": 1153, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1113, + "end": 1121, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1113, + "end": 1121, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1113, + "end": 1121, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1113, + "end": 1121, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1113, + "end": 1121, + "name": "PUSH [tag]", + "source": 0, + "value": "16" + }, + { + "begin": 1113, + "end": 1121, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1113, + "end": 1121, + "name": "tag", + "source": 0, + "value": "20" + }, + { + "begin": 1113, + "end": 1121, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1113, + "end": 1121, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1113, + "end": 1121, + "name": "POP", + "source": 0 + }, + { + "begin": 1113, + "end": 1121, + "name": "POP", + "source": 0 + }, + { + "begin": 1149, + "end": 1151, + "name": "PUSH", + "source": 0, + "value": "A" + }, + { + "begin": 1140, + "end": 1146, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1140, + "end": 1151, + "name": "LT", + "source": 0 + }, + { + "begin": 1095, + "end": 1153, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1095, + "end": 1153, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1199, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1213, + "end": 1217, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1199, + "end": 1217, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1199, + "end": 1217, + "name": "POP", + "source": 0 + }, + { + "begin": 1228, + "end": 1248, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1228, + "end": 1253, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1228, + "end": 1253, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1228, + "end": 1253, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1228, + "end": 1253, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 1228, + "end": 1253, + "name": "ADD", + "source": 0 + }, + { + "begin": 1228, + "end": 1253, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1228, + "end": 1253, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1228, + "end": 1253, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1228, + "end": 1253, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1228, + "end": 1253, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1228, + "end": 1253, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1228, + "end": 1253, + "name": "POP", + "source": 0 + }, + { + "begin": 1228, + "end": 1253, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1228, + "end": 1253, + "name": "POP", + "source": 0 + }, + { + "begin": 1268, + "end": 1274, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1264, + "end": 1373, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 1264, + "end": 1373, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1264, + "end": 1373, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1291, + "end": 1311, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1291, + "end": 1311, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1291, + "end": 1311, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1291, + "end": 1311, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1291, + "end": 1311, + "name": "ADD", + "source": 0 + }, + { + "begin": 1291, + "end": 1311, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1291, + "end": 1311, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1291, + "end": 1311, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1291, + "end": 1311, + "name": "PUSH", + "source": 0, + "value": "9" + }, + { + "begin": 1291, + "end": 1311, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1291, + "end": 1311, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1291, + "end": 1311, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 1291, + "end": 1311, + "name": "ADD", + "source": 0 + }, + { + "begin": 1291, + "end": 1311, + "name": "PUSH", + "source": 0, + "value": "6163746976617465640000000000000000000000000000000000000000000000" + }, + { + "begin": 1291, + "end": 1311, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1291, + "end": 1311, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1291, + "end": 1311, + "name": "POP", + "source": 0 + }, + { + "begin": 1291, + "end": 1311, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1291, + "end": 1311, + "name": "POP", + "source": 0 + }, + { + "begin": 1264, + "end": 1373, + "name": "PUSH [tag]", + "source": 0, + "value": "22" + }, + { + "begin": 1264, + "end": 1373, + "name": "JUMP", + "source": 0 + }, + { + "begin": 1264, + "end": 1373, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1264, + "end": 1373, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1344, + "end": 1361, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1344, + "end": 1361, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1344, + "end": 1361, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1344, + "end": 1361, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1344, + "end": 1361, + "name": "ADD", + "source": 0 + }, + { + "begin": 1344, + "end": 1361, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1344, + "end": 1361, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1344, + "end": 1361, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1344, + "end": 1361, + "name": "PUSH", + "source": 0, + "value": "6" + }, + { + "begin": 1344, + "end": 1361, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1344, + "end": 1361, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1344, + "end": 1361, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 1344, + "end": 1361, + "name": "ADD", + "source": 0 + }, + { + "begin": 1344, + "end": 1361, + "name": "PUSH", + "source": 0, + "value": "636C6F7365640000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1344, + "end": 1361, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1344, + "end": 1361, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1344, + "end": 1361, + "name": "POP", + "source": 0 + }, + { + "begin": 1344, + "end": 1361, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1344, + "end": 1361, + "name": "POP", + "source": 0 + }, + { + "begin": 1264, + "end": 1373, + "name": "tag", + "source": 0, + "value": "22" + }, + { + "begin": 1264, + "end": 1373, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 841, + "end": 1380, + "name": "POP", + "source": 0 + }, + { + "begin": 841, + "end": 1380, + "name": "POP", + "source": 0 + }, + { + "begin": 841, + "end": 1380, + "name": "POP", + "source": 0 + }, + { + "begin": 841, + "end": 1380, + "name": "POP", + "source": 0 + }, + { + "begin": 799, + "end": 1380, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 534, + "end": 758, + "name": "tag", + "source": 0, + "value": "8" + }, + { + "begin": 534, + "end": 758, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 635, + "end": 646, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 635, + "end": 646, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 635, + "end": 646, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 635, + "end": 646, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 635, + "end": 646, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 635, + "end": 646, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 635, + "end": 646, + "name": "EXP", + "source": 0 + }, + { + "begin": 635, + "end": 646, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 635, + "end": 646, + "name": "POP", + "source": 0 + }, + { + "begin": 635, + "end": 646, + "name": "POP", + "source": 0 + }, + { + "begin": 726, + "end": 737, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 726, + "end": 737, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 726, + "end": 737, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 726, + "end": 737, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 726, + "end": 737, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 726, + "end": 737, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 726, + "end": 737, + "name": "EXP", + "source": 0 + }, + { + "begin": 726, + "end": 737, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 726, + "end": 737, + "name": "DIV", + "source": 0 + }, + { + "begin": 726, + "end": 737, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 726, + "end": 737, + "name": "AND", + "source": 0 + }, + { + "begin": 726, + "end": 746, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 726, + "end": 746, + "name": "AND", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "PUSH", + "source": 0, + "value": "8FC" + }, + { + "begin": 747, + "end": 749, + "name": "PUSH", + "source": 0, + "value": "A" + }, + { + "begin": 726, + "end": 750, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "DUP2", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "MUL", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 726, + "end": 750, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 726, + "end": 750, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 726, + "end": 750, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "DUP1", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "DUP4", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "SUB", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "DUP2", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "DUP6", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "DUP9", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "DUP9", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "CALL", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "SWAP4", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "POP", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "POP", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "POP", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "POP", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "DUP1", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 726, + "end": 750, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "RETURNDATASIZE", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 726, + "end": 750, + "name": "DUP1", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "RETURNDATACOPY", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "RETURNDATASIZE", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 726, + "end": 750, + "name": "REVERT", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "tag", + "source": 0, + "value": "25" + }, + { + "begin": 726, + "end": 750, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 726, + "end": 750, + "name": "POP", + "source": 0 + }, + { + "begin": 534, + "end": 758, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 312, + "name": "tag", + "source": 1, + "value": "14" + }, + { + "begin": 7, + "end": 312, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 47, + "end": 50, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 66, + "end": 86, + "name": "PUSH [tag]", + "source": 1, + "value": "28" + }, + { + "begin": 84, + "end": 85, + "name": "DUP3", + "source": 1 + }, + { + "begin": 66, + "end": 86, + "name": "PUSH [tag]", + "source": 1, + "value": "29" + }, + { + "begin": 66, + "end": 86, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 66, + "end": 86, + "name": "tag", + "source": 1, + "value": "28" + }, + { + "begin": 66, + "end": 86, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 61, + "end": 86, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 61, + "end": 86, + "name": "POP", + "source": 1 + }, + { + "begin": 100, + "end": 120, + "name": "PUSH [tag]", + "source": 1, + "value": "30" + }, + { + "begin": 118, + "end": 119, + "name": "DUP4", + "source": 1 + }, + { + "begin": 100, + "end": 120, + "name": "PUSH [tag]", + "source": 1, + "value": "29" + }, + { + "begin": 100, + "end": 120, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 100, + "end": 120, + "name": "tag", + "source": 1, + "value": "30" + }, + { + "begin": 100, + "end": 120, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 95, + "end": 120, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 95, + "end": 120, + "name": "POP", + "source": 1 + }, + { + "begin": 254, + "end": 255, + "name": "DUP3", + "source": 1 + }, + { + "begin": 186, + "end": 252, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 182, + "end": 256, + "name": "SUB", + "source": 1 + }, + { + "begin": 179, + "end": 180, + "name": "DUP3", + "source": 1 + }, + { + "begin": 176, + "end": 257, + "name": "GT", + "source": 1 + }, + { + "begin": 173, + "end": 280, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 173, + "end": 280, + "name": "PUSH [tag]", + "source": 1, + "value": "31" + }, + { + "begin": 173, + "end": 280, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 260, + "end": 278, + "name": "PUSH [tag]", + "source": 1, + "value": "32" + }, + { + "begin": 260, + "end": 278, + "name": "PUSH [tag]", + "source": 1, + "value": "33" + }, + { + "begin": 260, + "end": 278, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 260, + "end": 278, + "name": "tag", + "source": 1, + "value": "32" + }, + { + "begin": 260, + "end": 278, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 173, + "end": 280, + "name": "tag", + "source": 1, + "value": "31" + }, + { + "begin": 173, + "end": 280, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 304, + "end": 305, + "name": "DUP3", + "source": 1 + }, + { + "begin": 301, + "end": 302, + "name": "DUP3", + "source": 1 + }, + { + "begin": 297, + "end": 306, + "name": "ADD", + "source": 1 + }, + { + "begin": 290, + "end": 306, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 290, + "end": 306, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 318, + "end": 395, + "name": "tag", + "source": 1, + "value": "29" + }, + { + "begin": 318, + "end": 395, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 355, + "end": 362, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 384, + "end": 389, + "name": "DUP2", + "source": 1 + }, + { + "begin": 373, + "end": 389, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 373, + "end": 389, + "name": "POP", + "source": 1 + }, + { + "begin": 318, + "end": 395, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 318, + "end": 395, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 318, + "end": 395, + "name": "POP", + "source": 1 + }, + { + "begin": 318, + "end": 395, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 401, + "end": 634, + "name": "tag", + "source": 1, + "value": "16" + }, + { + "begin": 401, + "end": 634, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 440, + "end": 443, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 463, + "end": 487, + "name": "PUSH [tag]", + "source": 1, + "value": "36" + }, + { + "begin": 481, + "end": 486, + "name": "DUP3", + "source": 1 + }, + { + "begin": 463, + "end": 487, + "name": "PUSH [tag]", + "source": 1, + "value": "29" + }, + { + "begin": 463, + "end": 487, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 463, + "end": 487, + "name": "tag", + "source": 1, + "value": "36" + }, + { + "begin": 463, + "end": 487, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 454, + "end": 487, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 454, + "end": 487, + "name": "POP", + "source": 1 + }, + { + "begin": 509, + "end": 575, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 502, + "end": 507, + "name": "DUP3", + "source": 1 + }, + { + "begin": 499, + "end": 576, + "name": "EQ", + "source": 1 + }, + { + "begin": 496, + "end": 599, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 496, + "end": 599, + "name": "PUSH [tag]", + "source": 1, + "value": "37" + }, + { + "begin": 496, + "end": 599, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 579, + "end": 597, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 579, + "end": 597, + "name": "PUSH [tag]", + "source": 1, + "value": "33" + }, + { + "begin": 579, + "end": 597, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 579, + "end": 597, + "name": "tag", + "source": 1, + "value": "38" + }, + { + "begin": 579, + "end": 597, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 496, + "end": 599, + "name": "tag", + "source": 1, + "value": "37" + }, + { + "begin": 496, + "end": 599, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 626, + "end": 627, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 619, + "end": 624, + "name": "DUP3", + "source": 1 + }, + { + "begin": 615, + "end": 628, + "name": "ADD", + "source": 1 + }, + { + "begin": 608, + "end": 628, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 608, + "end": 628, + "name": "POP", + "source": 1 + }, + { + "begin": 401, + "end": 634, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 401, + "end": 634, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 401, + "end": 634, + "name": "POP", + "source": 1 + }, + { + "begin": 401, + "end": 634, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 640, + "end": 820, + "name": "tag", + "source": 1, + "value": "33" + }, + { + "begin": 640, + "end": 820, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 688, + "end": 765, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 685, + "end": 686, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 678, + "end": 766, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 785, + "end": 789, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 782, + "end": 783, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 775, + "end": 790, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 809, + "end": 813, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 806, + "end": 807, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 799, + "end": 814, + "name": "REVERT", + "source": 1 + } + ] + } + } + }, + "methodIdentifiers": { + "assignAddress()": "cbd33d05", + "flowControlExample()": "826ea227" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"assignAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"flowControlExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"flowControlExample()\":{\"details\":\"\\u6d41\\u7a0b\\u63a7\\u5236\\u7bc4\\u4f8b\"}},\"stateVariables\":{\"hasChecked\":{\"details\":\"\\u5c1a\\u672a\\u6aa2\\u67e5\\u904e\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep3/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep3/example.sol\":{\"keccak256\":\"0xe4912c2e295f1c94ae3c2b8de06cfc9824c87b67d510b55075449007a40e7ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5d6f2c5b8768eb4a25c2e1f8b83bb9162ef726770c65774b1c2a230cd463ce0\",\"dweb:/ipfs/QmRWV4jJCojKQuWWYcyKjghDbeFnXGcgt8vei9qPSNZm8i\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 5, + "contract": "Ep3/example.sol:Example", + "label": "hasChecked", + "offset": 0, + "slot": "0", + "type": "t_bool" + }, + { + "astId": 9, + "contract": "Ep3/example.sol:Example", + "label": "xInt256", + "offset": 0, + "slot": "1", + "type": "t_int256" + }, + { + "astId": 13, + "contract": "Ep3/example.sol:Example", + "label": "xInt", + "offset": 0, + "slot": "2", + "type": "t_int256" + }, + { + "astId": 16, + "contract": "Ep3/example.sol:Example", + "label": "xUint8", + "offset": 0, + "slot": "3", + "type": "t_uint8" + }, + { + "astId": 19, + "contract": "Ep3/example.sol:Example", + "label": "str", + "offset": 0, + "slot": "4", + "type": "t_string_storage" + }, + { + "astId": 25, + "contract": "Ep3/example.sol:Example", + "label": "payableAddr", + "offset": 0, + "slot": "5", + "type": "t_address_payable" + }, + { + "astId": 31, + "contract": "Ep3/example.sol:Example", + "label": "addr", + "offset": 0, + "slot": "6", + "type": "t_address" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_address_payable": { + "encoding": "inplace", + "label": "address payable", + "numberOfBytes": "20" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_int256": { + "encoding": "inplace", + "label": "int256", + "numberOfBytes": "32" + }, + "t_string_storage": { + "encoding": "bytes", + "label": "string", + "numberOfBytes": "32" + }, + "t_uint8": { + "encoding": "inplace", + "label": "uint8", + "numberOfBytes": "1" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep3/example.sol": { + "ast": { + "absolutePath": "Ep3/example.sol", + "exportedSymbols": { + "Example": [ + 106 + ] + }, + "id": 107, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 106, + "linearizedBaseContracts": [ + 106 + ], + "name": "Example", + "nameLocation": "101:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 2, + "nodeType": "StructuredDocumentation", + "src": "116:24:0", + "text": "@dev 尚未檢查過" + }, + "id": 5, + "mutability": "mutable", + "name": "hasChecked", + "nameLocation": "159:10:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "146:31:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "146:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "hexValue": "66616c7365", + "id": 4, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "172:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "xInt256", + "nameLocation": "201:7:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "186:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "186:6:0", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": { + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "211:4:0", + "subExpression": { + "hexValue": "313030", + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "212:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_100_by_1", + "typeString": "int_const -100" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 13, + "mutability": "mutable", + "name": "xInt", + "nameLocation": "257:4:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "245:23:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 10, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "245:3:0", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": { + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "264:4:0", + "subExpression": { + "hexValue": "313030", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "265:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_100_by_1", + "typeString": "int_const -100" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "xUint8", + "nameLocation": "333:6:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "319:26:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 14, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "319:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "313238", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "342:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 19, + "mutability": "mutable", + "name": "str", + "nameLocation": "369:3:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "354:30:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 17, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "354:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "64796e616d6963", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "375:9:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47a6130681d8220ba3d4c0a50de139d22039c5629024c598d023ccca8470c25c", + "typeString": "literal_string \"dynamic\"" + }, + "value": "dynamic" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "payableAddr", + "nameLocation": "417:11:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "393:89:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "393:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": { + "arguments": [ + { + "hexValue": "307864436164336136643335363944463635353037304445643036636237413162324363643144334146", + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "439:42:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "431:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 21, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "431:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "431:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "addr", + "nameLocation": "505:4:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "489:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "489:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "arguments": [ + { + "id": 29, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "520:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Example_$106", + "typeString": "contract Example" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Example_$106", + "typeString": "contract Example" + } + ], + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "512:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 27, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "512:7:0", + "typeDescriptions": {} + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "512:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 44, + "nodeType": "Block", + "src": "566:192:0", + "statements": [ + { + "expression": { + "expression": { + "id": 34, + "name": "payableAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "635:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "635:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "635:19:0" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "3130", + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "747:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + ], + "expression": { + "id": 38, + "name": "payableAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "726:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "726:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "726:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "726:24:0" + } + ] + }, + "functionSelector": "cbd33d05", + "id": 45, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "assignAddress", + "nameLocation": "543:13:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [], + "src": "556:2:0" + }, + "returnParameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [], + "src": "566:0:0" + }, + "scope": 106, + "src": "534:224:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 104, + "nodeType": "Block", + "src": "841:539:0", + "statements": [ + { + "assignments": [ + 51 + ], + "declarations": [ + { + "constant": false, + "id": 51, + "mutability": "mutable", + "name": "count0", + "nameLocation": "924:6:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "919:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 50, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "919:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "documentation": "@notice for...\n @dev 累加10次的流程", + "id": 53, + "initialValue": { + "hexValue": "30", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "933:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "919:15:0" + }, + { + "body": { + "id": 68, + "nodeType": "Block", + "src": "975:38:0", + "statements": [ + { + "expression": { + "id": 66, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 64, + "name": "count0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 51, + "src": "990:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 65, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "1000:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "990:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 67, + "nodeType": "ExpressionStatement", + "src": "990:11:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 58, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "962:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3130", + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "966:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "962:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 69, + "initializationExpression": { + "assignments": [ + 55 + ], + "declarations": [ + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "i", + "nameLocation": "955:1:0", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "950:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 54, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "950:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 57, + "initialValue": { + "hexValue": "30", + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "959:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "950:10:0" + }, + "loopExpression": { + "expression": { + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "970:3:0", + "subExpression": { + "id": 61, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "970:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 63, + "nodeType": "ExpressionStatement", + "src": "970:3:0" + }, + "nodeType": "ForStatement", + "src": "945:68:0" + }, + { + "assignments": [ + 72 + ], + "declarations": [ + { + "constant": false, + "id": 72, + "mutability": "mutable", + "name": "count1", + "nameLocation": "1074:6:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1069:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 71, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1069:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "documentation": "@dev 相當於上述的for ...", + "id": 74, + "initialValue": { + "hexValue": "30", + "id": 73, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1083:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1069:15:0" + }, + { + "body": { + "id": 78, + "nodeType": "Block", + "src": "1098:35:0", + "statements": [ + { + "expression": { + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1113:8:0", + "subExpression": { + "id": 75, + "name": "count1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "1113:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 77, + "nodeType": "ExpressionStatement", + "src": "1113:8:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 79, + "name": "count1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "1140:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3130", + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1149:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1140:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 82, + "nodeType": "DoWhileStatement", + "src": "1095:58:0" + }, + { + "assignments": [ + 85 + ], + "declarations": [ + { + "constant": false, + "id": 85, + "mutability": "mutable", + "name": "isOpen", + "nameLocation": "1204:6:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1199:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 84, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1199:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "documentation": "@dev if ... else ...", + "id": 87, + "initialValue": { + "hexValue": "74727565", + "id": 86, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1213:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1199:18:0" + }, + { + "assignments": [ + 89 + ], + "declarations": [ + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "status", + "nameLocation": "1242:6:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1228:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 88, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1228:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 91, + "initialValue": { + "hexValue": "", + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1251:2:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1228:25:0" + }, + { + "condition": { + "id": 92, + "name": "isOpen", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 85, + "src": "1268:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 102, + "nodeType": "Block", + "src": "1329:44:0", + "statements": [ + { + "expression": { + "id": 100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 98, + "name": "status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "1344:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "636c6f736564", + "id": 99, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1353:8:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5cdcafd80f762bdc98fd6ec295c784ef6e795af18d23dff7061c51f083ef9d2e", + "typeString": "literal_string \"closed\"" + }, + "value": "closed" + }, + "src": "1344:17:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 101, + "nodeType": "ExpressionStatement", + "src": "1344:17:0" + } + ] + }, + "id": 103, + "nodeType": "IfStatement", + "src": "1264:109:0", + "trueBody": { + "id": 97, + "nodeType": "Block", + "src": "1276:47:0", + "statements": [ + { + "expression": { + "id": 95, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 93, + "name": "status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "1291:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "616374697661746564", + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1300:11:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8e4560b1c76dcaab13085db49759e742cb80a5f12ca42c8f7f7913ade5355774", + "typeString": "literal_string \"activated\"" + }, + "value": "activated" + }, + "src": "1291:20:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 96, + "nodeType": "ExpressionStatement", + "src": "1291:20:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 46, + "nodeType": "StructuredDocumentation", + "src": "766:27:0", + "text": "@dev 流程控制範例" + }, + "functionSelector": "826ea227", + "id": 105, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "flowControlExample", + "nameLocation": "808:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 47, + "nodeType": "ParameterList", + "parameters": [], + "src": "826:2:0" + }, + "returnParameters": { + "id": 48, + "nodeType": "ParameterList", + "parameters": [], + "src": "841:0:0" + }, + "scope": 106, + "src": "799:581:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 107, + "src": "92:1291:0", + "usedErrors": [] + } + ], + "src": "33:1350:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep3/artifacts/build-info/e940e2215d55737effd3095754e36697.json b/Ep3/artifacts/build-info/e940e2215d55737effd3095754e36697.json new file mode 100644 index 0000000..5f05b9f --- /dev/null +++ b/Ep3/artifacts/build-info/e940e2215d55737effd3095754e36697.json @@ -0,0 +1,6683 @@ +{ + "id": "e940e2215d55737effd3095754e36697", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep3/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\n// @title 智能合約範例\r\ncontract Example {\r\n /// @dev 尚未檢查過\r\n bool private hasChecked = false;\r\n\r\n int256 private xInt256 = -100;\r\n // int256's alias\r\n int private xInt = -100;\r\n\r\n // @dev uint無符號的整數型態\r\n uint8 private xUint8 = 128;\r\n\r\n string private str = \"dynamic\";\r\n\r\n address payable payableAddr = payable(0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF);\r\n address addr = address(this);\r\n\r\n function assignAddress() public {\r\n // the balance of an address using the property \r\n payableAddr.balance;\r\n // end Ether (in units of wei) to a payable address\r\n payableAddr.transfer(10);\r\n }\r\n\r\n /// @dev 流程控制範例\r\n function flowControlExample() public pure {\r\n /// @notice for...\r\n /// @dev 累加10次的流程\r\n uint count0 = 0;\r\n for (uint i = 0; i < 10; i++) {\r\n count0 += i;\r\n }\r\n\r\n /// @dev 相當於上述的for ...\r\n uint count1 = 0;\r\n do {\r\n count1++;\r\n } while(count1 < 10);\r\n\r\n /// @dev if ... else ...\r\n bool isOpen = true;\r\n string memory status = \"\";\r\n if (isOpen) {\r\n status = \"activated\";\r\n } else {\r\n status = \"closed\";\r\n }\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep3/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "assignAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "flowControlExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "flowControlExample()": { + "details": "流程控制範例" + } + }, + "stateVariables": { + "hasChecked": { + "details": "尚未檢查過" + } + }, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep3/example.sol\":92:1367 contract Example {\r... */\n mstore(0x40, 0x80)\n /* \"Ep3/example.sol\":172:177 false */\n 0x00\n /* \"Ep3/example.sol\":146:177 bool private hasChecked = false */\n dup1\n exp(0x0100, 0x00)\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n iszero\n iszero\n mul\n or\n swap1\n sstore\n pop\n /* \"Ep3/example.sol\":211:215 -100 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c\n /* \"Ep3/example.sol\":186:215 int256 private xInt256 = -100 */\n 0x01\n sstore\n /* \"Ep3/example.sol\":264:268 -100 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c\n /* \"Ep3/example.sol\":245:268 int private xInt = -100 */\n 0x02\n sstore\n /* \"Ep3/example.sol\":342:345 128 */\n 0x80\n /* \"Ep3/example.sol\":319:345 uint8 private xUint8 = 128 */\n 0x03\n exp(0x0100, 0x00)\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0xff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"Ep3/example.sol\":354:384 string private str = \"dynamic\" */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x07\n dup2\n mstore\n 0x20\n add\n 0x64796e616d696300000000000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n 0x04\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n tag_1\n swap3\n swap2\n swap1\n tag_2\n jump\t// in\ntag_1:\n pop\n /* \"Ep3/example.sol\":431:473 0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF */\n 0xdcad3a6d3569df655070ded06cb7a1b2ccd1d3af\n /* \"Ep3/example.sol\":393:474 address payable payableAddr = payable(0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF) */\n 0x05\n exp(0x0100, 0x00)\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 /* \"Ep3/example.sol\":504:508 this */\n address\n /* \"Ep3/example.sol\":481:509 address addr = address(this) */\n 0x06\n exp(0x0100, 0x00)\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 /* \"Ep3/example.sol\":92:1367 contract Example {\r... */\n callvalue\n dup1\n iszero\n tag_3\n jumpi\n 0x00\n dup1\n revert\ntag_3:\n pop\n jump(tag_4)\ntag_2:\n dup3\n dup1\n sload\n tag_5\n swap1\n tag_6\n jump\t// in\ntag_5:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n 0x1f\n add\n 0x20\n swap1\n div\n dup2\n add\n swap3\n dup3\n tag_8\n jumpi\n 0x00\n dup6\n sstore\n jump(tag_7)\ntag_8:\n dup3\n 0x1f\n lt\n tag_9\n jumpi\n dup1\n mload\n not(0xff)\n and\n dup4\n dup1\n add\n or\n dup6\n sstore\n jump(tag_7)\ntag_9:\n dup3\n dup1\n add\n 0x01\n add\n dup6\n sstore\n dup3\n iszero\n tag_7\n jumpi\n swap2\n dup3\n add\ntag_10:\n dup3\n dup2\n gt\n iszero\n tag_11\n jumpi\n dup3\n mload\n dup3\n sstore\n swap2\n 0x20\n add\n swap2\n swap1\n 0x01\n add\n swap1\n jump(tag_10)\ntag_11:\ntag_7:\n pop\n swap1\n pop\n tag_12\n swap2\n swap1\n tag_13\n jump\t// in\ntag_12:\n pop\n swap1\n jump\t// out\ntag_13:\ntag_14:\n dup1\n dup3\n gt\n iszero\n tag_15\n jumpi\n 0x00\n dup2\n 0x00\n swap1\n sstore\n pop\n 0x01\n add\n jump(tag_14)\ntag_15:\n pop\n swap1\n jump\t// out\n /* \"#utility.yul\":7:327 */\ntag_6:\n /* \"#utility.yul\":51:57 */\n 0x00\n /* \"#utility.yul\":88:89 */\n 0x02\n /* \"#utility.yul\":82:86 */\n dup3\n /* \"#utility.yul\":78:90 */\n div\n /* \"#utility.yul\":68:90 */\n swap1\n pop\n /* \"#utility.yul\":135:136 */\n 0x01\n /* \"#utility.yul\":129:133 */\n dup3\n /* \"#utility.yul\":125:137 */\n and\n /* \"#utility.yul\":156:174 */\n dup1\n /* \"#utility.yul\":146:227 */\n tag_18\n jumpi\n /* \"#utility.yul\":212:216 */\n 0x7f\n /* \"#utility.yul\":204:210 */\n dup3\n /* \"#utility.yul\":200:217 */\n and\n /* \"#utility.yul\":190:217 */\n swap2\n pop\n /* \"#utility.yul\":146:227 */\ntag_18:\n /* \"#utility.yul\":274:276 */\n 0x20\n /* \"#utility.yul\":266:272 */\n dup3\n /* \"#utility.yul\":263:277 */\n lt\n /* \"#utility.yul\":243:261 */\n dup2\n /* \"#utility.yul\":240:278 */\n eq\n /* \"#utility.yul\":237:321 */\n iszero\n tag_19\n jumpi\n /* \"#utility.yul\":293:311 */\n tag_20\n tag_21\n jump\t// in\ntag_20:\n /* \"#utility.yul\":237:321 */\ntag_19:\n /* \"#utility.yul\":58:327 */\n pop\n /* \"#utility.yul\":7:327 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":333:513 */\ntag_21:\n /* \"#utility.yul\":381:458 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":378:379 */\n 0x00\n /* \"#utility.yul\":371:459 */\n mstore\n /* \"#utility.yul\":478:482 */\n 0x22\n /* \"#utility.yul\":475:476 */\n 0x04\n /* \"#utility.yul\":468:483 */\n mstore\n /* \"#utility.yul\":502:506 */\n 0x24\n /* \"#utility.yul\":499:500 */\n 0x00\n /* \"#utility.yul\":492:507 */\n revert\n /* \"Ep3/example.sol\":92:1367 contract Example {\r... */\ntag_4:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep3/example.sol\":92:1367 contract Example {\r... */\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 0x826ea227\n eq\n tag_3\n jumpi\n dup1\n 0xcbd33d05\n eq\n tag_4\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep3/example.sol\":783:1364 function flowControlExample() public pure {\r... */\n tag_3:\n tag_5\n tag_6\n jump\t// in\n tag_5:\n stop\n /* \"Ep3/example.sol\":518:742 function assignAddress() public {\r... */\n tag_4:\n tag_7\n tag_8\n jump\t// in\n tag_7:\n stop\n /* \"Ep3/example.sol\":783:1364 function flowControlExample() public pure {\r... */\n tag_6:\n /* \"Ep3/example.sol\":903:914 uint count0 */\n 0x00\n /* \"Ep3/example.sol\":934:940 uint i */\n dup1\n /* \"Ep3/example.sol\":929:997 for (uint i = 0; i < 10; i++) {\r... */\n tag_10:\n /* \"Ep3/example.sol\":950:952 10 */\n 0x0a\n /* \"Ep3/example.sol\":946:947 i */\n dup2\n /* \"Ep3/example.sol\":946:952 i < 10 */\n lt\n /* \"Ep3/example.sol\":929:997 for (uint i = 0; i < 10; i++) {\r... */\n iszero\n tag_11\n jumpi\n /* \"Ep3/example.sol\":984:985 i */\n dup1\n /* \"Ep3/example.sol\":974:985 count0 += i */\n dup3\n tag_13\n swap2\n swap1\n tag_14\n jump\t// in\n tag_13:\n swap2\n pop\n /* \"Ep3/example.sol\":954:957 i++ */\n dup1\n dup1\n tag_15\n swap1\n tag_16\n jump\t// in\n tag_15:\n swap2\n pop\n pop\n /* \"Ep3/example.sol\":929:997 for (uint i = 0; i < 10; i++) {\r... */\n jump(tag_10)\n tag_11:\n pop\n /* \"Ep3/example.sol\":1053:1064 uint count1 */\n 0x00\n /* \"Ep3/example.sol\":1079:1137 do {\r... */\n tag_17:\n /* \"Ep3/example.sol\":1097:1105 count1++ */\n dup1\n dup1\n tag_20\n swap1\n tag_16\n jump\t// in\n tag_20:\n swap2\n pop\n pop\n /* \"Ep3/example.sol\":1133:1135 10 */\n 0x0a\n /* \"Ep3/example.sol\":1124:1130 count1 */\n dup2\n /* \"Ep3/example.sol\":1124:1135 count1 < 10 */\n lt\n /* \"Ep3/example.sol\":1079:1137 do {\r... */\n tag_17\n jumpi\n /* \"Ep3/example.sol\":1183:1194 bool isOpen */\n 0x00\n /* \"Ep3/example.sol\":1197:1201 true */\n 0x01\n /* \"Ep3/example.sol\":1183:1201 bool isOpen = true */\n swap1\n pop\n /* \"Ep3/example.sol\":1212:1232 string memory status */\n 0x00\n /* \"Ep3/example.sol\":1212:1237 string memory status = \"\" */\n mload(0x40)\n dup1\n 0x20\n add\n 0x40\n mstore\n dup1\n 0x00\n dup2\n mstore\n pop\n swap1\n pop\n /* \"Ep3/example.sol\":1252:1258 isOpen */\n dup2\n /* \"Ep3/example.sol\":1248:1357 if (isOpen) {\r... */\n iszero\n tag_21\n jumpi\n /* \"Ep3/example.sol\":1275:1295 status = \"activated\" */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x09\n dup2\n mstore\n 0x20\n add\n 0x6163746976617465640000000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n swap1\n pop\n /* \"Ep3/example.sol\":1248:1357 if (isOpen) {\r... */\n jump(tag_22)\n tag_21:\n /* \"Ep3/example.sol\":1328:1345 status = \"closed\" */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x06\n dup2\n mstore\n 0x20\n add\n 0x636c6f7365640000000000000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n swap1\n pop\n /* \"Ep3/example.sol\":1248:1357 if (isOpen) {\r... */\n tag_22:\n /* \"Ep3/example.sol\":825:1364 {\r... */\n pop\n pop\n pop\n pop\n /* \"Ep3/example.sol\":783:1364 function flowControlExample() public pure {\r... */\n jump\t// out\n /* \"Ep3/example.sol\":518:742 function assignAddress() public {\r... */\n tag_8:\n /* \"Ep3/example.sol\":619:630 payableAddr */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n pop\n pop\n /* \"Ep3/example.sol\":710:721 payableAddr */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"Ep3/example.sol\":710:730 payableAddr.transfer */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"Ep3/example.sol\":710:734 payableAddr.transfer(10) */\n 0x08fc\n /* \"Ep3/example.sol\":731:733 10 */\n 0x0a\n /* \"Ep3/example.sol\":710:734 payableAddr.transfer(10) */\n swap1\n dup2\n iszero\n mul\n swap1\n mload(0x40)\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n dup9\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n dup1\n iszero\n tag_25\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_25:\n pop\n /* \"Ep3/example.sol\":518:742 function assignAddress() public {\r... */\n jump\t// out\n /* \"#utility.yul\":7:312 */\n tag_14:\n /* \"#utility.yul\":47:50 */\n 0x00\n /* \"#utility.yul\":66:86 */\n tag_28\n /* \"#utility.yul\":84:85 */\n dup3\n /* \"#utility.yul\":66:86 */\n tag_29\n jump\t// in\n tag_28:\n /* \"#utility.yul\":61:86 */\n swap2\n pop\n /* \"#utility.yul\":100:120 */\n tag_30\n /* \"#utility.yul\":118:119 */\n dup4\n /* \"#utility.yul\":100:120 */\n tag_29\n jump\t// in\n tag_30:\n /* \"#utility.yul\":95:120 */\n swap3\n pop\n /* \"#utility.yul\":254:255 */\n dup3\n /* \"#utility.yul\":186:252 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":182:256 */\n sub\n /* \"#utility.yul\":179:180 */\n dup3\n /* \"#utility.yul\":176:257 */\n gt\n /* \"#utility.yul\":173:280 */\n iszero\n tag_31\n jumpi\n /* \"#utility.yul\":260:278 */\n tag_32\n tag_33\n jump\t// in\n tag_32:\n /* \"#utility.yul\":173:280 */\n tag_31:\n /* \"#utility.yul\":304:305 */\n dup3\n /* \"#utility.yul\":301:302 */\n dup3\n /* \"#utility.yul\":297:306 */\n add\n /* \"#utility.yul\":290:306 */\n swap1\n pop\n /* \"#utility.yul\":7:312 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":318:395 */\n tag_29:\n /* \"#utility.yul\":355:362 */\n 0x00\n /* \"#utility.yul\":384:389 */\n dup2\n /* \"#utility.yul\":373:389 */\n swap1\n pop\n /* \"#utility.yul\":318:395 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":401:634 */\n tag_16:\n /* \"#utility.yul\":440:443 */\n 0x00\n /* \"#utility.yul\":463:487 */\n tag_36\n /* \"#utility.yul\":481:486 */\n dup3\n /* \"#utility.yul\":463:487 */\n tag_29\n jump\t// in\n tag_36:\n /* \"#utility.yul\":454:487 */\n swap2\n pop\n /* \"#utility.yul\":509:575 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":502:507 */\n dup3\n /* \"#utility.yul\":499:576 */\n eq\n /* \"#utility.yul\":496:599 */\n iszero\n tag_37\n jumpi\n /* \"#utility.yul\":579:597 */\n tag_38\n tag_33\n jump\t// in\n tag_38:\n /* \"#utility.yul\":496:599 */\n tag_37:\n /* \"#utility.yul\":626:627 */\n 0x01\n /* \"#utility.yul\":619:624 */\n dup3\n /* \"#utility.yul\":615:628 */\n add\n /* \"#utility.yul\":608:628 */\n swap1\n pop\n /* \"#utility.yul\":401:634 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":640:820 */\n tag_33:\n /* \"#utility.yul\":688:765 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":685:686 */\n 0x00\n /* \"#utility.yul\":678:766 */\n mstore\n /* \"#utility.yul\":785:789 */\n 0x11\n /* \"#utility.yul\":782:783 */\n 0x04\n /* \"#utility.yul\":775:790 */\n mstore\n /* \"#utility.yul\":809:813 */\n 0x24\n /* \"#utility.yul\":806:807 */\n 0x00\n /* \"#utility.yul\":799:814 */\n revert\n\n auxdata: 0xa26469706673582212207f13c92d8096adab53c026fa5fac8f63ef78e448718c3f85322be81bd7b0874d64736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": { + "extract_byte_array_length": { + "entryPoint": 537, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 587, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:516:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "58:269:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68:22:1", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "82:4:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "88:1:1", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "78:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:12:1" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "68:6:1" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "99:38:1", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "129:4:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "135:1:1", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "125:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "125:12:1" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "103:18:1", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "176:51:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "190:27:1", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "204:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "212:4:1", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "200:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "200:17:1" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "190:6:1" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "156:18:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "149:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "149:26:1" + }, + "nodeType": "YulIf", + "src": "146:81:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "279:42:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "293:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "293:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "293:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "243:18:1" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "266:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "274:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "263:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "263:14:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "240:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "240:38:1" + }, + "nodeType": "YulIf", + "src": "237:84:1" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "42:4:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "51:6:1", + "type": "" + } + ], + "src": "7:320:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "361:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "378:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "381:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "371:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "371:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "371:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "475:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "478:4:1", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "468:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "468:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "468:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "499:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "502:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "492:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "492:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "492:15:1" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "333:180:1" + } + ] + }, + "contents": "{\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405260008060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c6001557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c6002556080600360006101000a81548160ff021916908360ff1602179055506040518060400160405280600781526020017f64796e616d696300000000000000000000000000000000000000000000000000815250600490805190602001906100cd929190610176565b5073dcad3a6d3569df655070ded06cb7a1b2ccd1d3af600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561017057600080fd5b5061027a565b82805461018290610219565b90600052602060002090601f0160209004810192826101a457600085556101eb565b82601f106101bd57805160ff19168380011785556101eb565b828001600101855582156101eb579182015b828111156101ea5782518255916020019190600101906101cf565b5b5090506101f891906101fc565b5090565b5b808211156102155760008160009055506001016101fd565b5090565b6000600282049050600182168061023157607f821691505b602082108114156102455761024461024b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6102bb806102896000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063826ea2271461003b578063cbd33d0514610045575b600080fd5b61004361004f565b005b61004d610133565b005b6000805b600a81101561007d57808261006891906101ad565b915080806100759061020d565b915050610053565b5060005b808061008c9061020d565b915050600a811061008157600060019050600060405180602001604052806000815250905081156100f4576040518060400160405280600981526020017f6163746976617465640000000000000000000000000000000000000000000000815250905061012d565b6040518060400160405280600681526020017f636c6f736564000000000000000000000000000000000000000000000000000081525090505b50505050565b600560009054906101000a905050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a9081150290604051600060405180830381858888f193505050501580156101aa573d6000803e3d6000fd5b50565b60006101b882610203565b91506101c383610203565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f8576101f7610256565b5b828201905092915050565b6000819050919050565b600061021882610203565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561024b5761024a610256565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207f13c92d8096adab53c026fa5fac8f63ef78e448718c3f85322be81bd7b0874d64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C PUSH1 0x1 SSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C PUSH1 0x2 SSTORE PUSH1 0x80 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x64796E616D696300000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x4 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xCD SWAP3 SWAP2 SWAP1 PUSH2 0x176 JUMP JUMPDEST POP PUSH20 0xDCAD3A6D3569DF655070DED06CB7A1B2CCD1D3AF PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP ADDRESS PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x170 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x182 SWAP1 PUSH2 0x219 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1EB JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1BD JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1EB JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1EB JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1EA JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1CF JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x1FC JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x215 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1FD JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x231 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x245 JUMPI PUSH2 0x244 PUSH2 0x24B JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BB DUP1 PUSH2 0x289 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 0x826EA227 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xCBD33D05 EQ PUSH2 0x45 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x4F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D PUSH2 0x133 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0xA DUP2 LT ISZERO PUSH2 0x7D JUMPI DUP1 DUP3 PUSH2 0x68 SWAP2 SWAP1 PUSH2 0x1AD JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH2 0x75 SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x53 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP1 DUP1 PUSH2 0x8C SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA DUP2 LT PUSH2 0x81 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP DUP2 ISZERO PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6163746976617465640000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0x12D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x636C6F7365640000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0xA SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B8 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C3 DUP4 PUSH2 0x203 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x256 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x218 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x24B JUMPI PUSH2 0x24A PUSH2 0x256 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH32 0x13C92D8096ADAB53C026FA5FAC8F63EF78E448718C3F85322BE81BD7B0874D64 PUSH20 0x6F6C634300080700330000000000000000000000 ", + "sourceMap": "92:1275:0:-:0;;;172:5;146:31;;;;;;;;;;;;;;;;;;;;211:4;186:29;;264:4;245:23;;342:3;319:26;;;;;;;;;;;;;;;;;;;;354:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;431:42;393:81;;;;;;;;;;;;;;;;;;;;504:4;481:28;;;;;;;;;;;;;;;;;;;;92:1275;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:320:1:-;51:6;88:1;82:4;78:12;68:22;;135:1;129:4;125:12;156:18;146:81;;212:4;204:6;200:17;190:27;;146:81;274:2;266:6;263:14;243:18;240:38;237:84;;;293:18;;:::i;:::-;237:84;58:269;7:320;;;:::o;333:180::-;381:77;378:1;371:88;478:4;475:1;468:15;502:4;499:1;492:15;92:1275:0;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@assignAddress_45": { + "entryPoint": 307, + "id": 45, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@flowControlExample_105": { + "entryPoint": 79, + "id": 105, + "parameterSlots": 0, + "returnSlots": 0 + }, + "checked_add_t_uint256": { + "entryPoint": 429, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 515, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 525, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 598, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:823:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "51:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "61:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "84:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "66:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "66:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "61:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "95:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "118:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "100:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "100:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "95:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "258:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "260:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "260:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "260:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "179:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "186:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "254:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "182:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "182:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "176:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "176:81:1" + }, + "nodeType": "YulIf", + "src": "173:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "290:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "301:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "304:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "297:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "297:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "290:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "38:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "41:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "47:3:1", + "type": "" + } + ], + "src": "7:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "363:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "373:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "384:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "373:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "345:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "355:7:1", + "type": "" + } + ], + "src": "318:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "444:190:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "454:33:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "481:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "463:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "463:24:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "454:5:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "577:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "579:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "579:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "579:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "502:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "509:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "499:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "499:77:1" + }, + "nodeType": "YulIf", + "src": "496:103:1" + }, + { + "nodeType": "YulAssignment", + "src": "608:20:1", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "619:5:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "626:1:1", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "615:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "615:13:1" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "608:3:1" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "430:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "440:3:1", + "type": "" + } + ], + "src": "401:233:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "668:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "685:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "688:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "678:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "678:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "678:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "782:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "785:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "775:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "775:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "775:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "806:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "809:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "799:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "799:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "799:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "640:180:1" + } + ] + }, + "contents": "{\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063826ea2271461003b578063cbd33d0514610045575b600080fd5b61004361004f565b005b61004d610133565b005b6000805b600a81101561007d57808261006891906101ad565b915080806100759061020d565b915050610053565b5060005b808061008c9061020d565b915050600a811061008157600060019050600060405180602001604052806000815250905081156100f4576040518060400160405280600981526020017f6163746976617465640000000000000000000000000000000000000000000000815250905061012d565b6040518060400160405280600681526020017f636c6f736564000000000000000000000000000000000000000000000000000081525090505b50505050565b600560009054906101000a905050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a9081150290604051600060405180830381858888f193505050501580156101aa573d6000803e3d6000fd5b50565b60006101b882610203565b91506101c383610203565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f8576101f7610256565b5b828201905092915050565b6000819050919050565b600061021882610203565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561024b5761024a610256565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207f13c92d8096adab53c026fa5fac8f63ef78e448718c3f85322be81bd7b0874d64736f6c63430008070033", + "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 0x826EA227 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xCBD33D05 EQ PUSH2 0x45 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x4F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D PUSH2 0x133 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0xA DUP2 LT ISZERO PUSH2 0x7D JUMPI DUP1 DUP3 PUSH2 0x68 SWAP2 SWAP1 PUSH2 0x1AD JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH2 0x75 SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x53 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP1 DUP1 PUSH2 0x8C SWAP1 PUSH2 0x20D JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA DUP2 LT PUSH2 0x81 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP DUP2 ISZERO PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6163746976617465640000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0x12D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x636C6F7365640000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 POP POP PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0xA SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B8 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C3 DUP4 PUSH2 0x203 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x256 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x218 DUP3 PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x24B JUMPI PUSH2 0x24A PUSH2 0x256 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH32 0x13C92D8096ADAB53C026FA5FAC8F63EF78E448718C3F85322BE81BD7B0874D64 PUSH20 0x6F6C634300080700330000000000000000000000 ", + "sourceMap": "92:1275:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;783:581;;;:::i;:::-;;518:224;;;:::i;:::-;;783:581;903:11;934:6;929:68;950:2;946:1;:6;929:68;;;984:1;974:11;;;;;:::i;:::-;;;954:3;;;;;:::i;:::-;;;;929:68;;;;1053:11;1079:58;1097:8;;;;;:::i;:::-;;;;1133:2;1124:6;:11;1079:58;;1183:11;1197:4;1183:18;;1212:20;:25;;;;;;;;;;;;;;1252:6;1248:109;;;1275:20;;;;;;;;;;;;;;;;;;;1248:109;;;1328:17;;;;;;;;;;;;;;;;;;;1248:109;825:539;;;;783:581::o;518:224::-;619:11;;;;;;;;;;710;;;;;;;;;;;:20;;:24;731:2;710:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:224::o;7:305:1:-;47:3;66:20;84:1;66:20;:::i;:::-;61:25;;100:20;118:1;100:20;:::i;:::-;95:25;;254:1;186:66;182:74;179:1;176:81;173:107;;;260:18;;:::i;:::-;173:107;304:1;301;297:9;290:16;;7:305;;;;:::o;318:77::-;355:7;384:5;373:16;;318:77;;;:::o;401:233::-;440:3;463:24;481:5;463:24;:::i;:::-;454:33;;509:66;502:5;499:77;496:103;;;579:18;;:::i;:::-;496:103;626:1;619:5;615:13;608:20;;401:233;;;:::o;640:180::-;688:77;685:1;678:88;785:4;782:1;775:15;809:4;806:1;799:15" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "139800", + "executionCost": "infinite", + "totalCost": "infinite" + }, + "external": { + "assignAddress()": "infinite", + "flowControlExample()": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 92, + "end": 1367, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 172, + "end": 177, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 146, + "end": 177, + "name": "DUP1", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 146, + "end": 177, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 146, + "end": 177, + "name": "EXP", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "DUP2", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "DUP2", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 146, + "end": 177, + "name": "MUL", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "NOT", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "AND", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "DUP4", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "MUL", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "OR", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 146, + "end": 177, + "name": "POP", + "source": 0 + }, + { + "begin": 211, + "end": 215, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C" + }, + { + "begin": 186, + "end": 215, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 186, + "end": 215, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 264, + "end": 268, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C" + }, + { + "begin": 245, + "end": 268, + "name": "PUSH", + "source": 0, + "value": "2" + }, + { + "begin": 245, + "end": 268, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 342, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 319, + "end": 345, + "name": "EXP", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "DUP2", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "DUP2", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 319, + "end": 345, + "name": "MUL", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "NOT", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "AND", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "DUP4", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 319, + "end": 345, + "name": "AND", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "MUL", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "OR", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 319, + "end": 345, + "name": "POP", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 354, + "end": 384, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "DUP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 354, + "end": 384, + "name": "ADD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 354, + "end": 384, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "DUP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "7" + }, + { + "begin": 354, + "end": 384, + "name": "DUP2", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 354, + "end": 384, + "name": "ADD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "64796E616D696300000000000000000000000000000000000000000000000000" + }, + { + "begin": 354, + "end": 384, + "name": "DUP2", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "POP", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 354, + "end": 384, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "DUP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 354, + "end": 384, + "name": "ADD", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 354, + "end": 384, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 354, + "end": 384, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 354, + "end": 384, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 354, + "end": 384, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 354, + "end": 384, + "name": "POP", + "source": 0 + }, + { + "begin": 431, + "end": 473, + "name": "PUSH", + "source": 0, + "value": "DCAD3A6D3569DF655070DED06CB7A1B2CCD1D3AF" + }, + { + "begin": 393, + "end": 474, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 393, + "end": 474, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 393, + "end": 474, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 393, + "end": 474, + "name": "EXP", + "source": 0 + }, + { + "begin": 393, + "end": 474, + "name": "DUP2", + "source": 0 + }, + { + "begin": 393, + "end": 474, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 393, + "end": 474, + "name": "DUP2", + "source": 0 + }, + { + "begin": 393, + "end": 474, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 393, + "end": 474, + "name": "MUL", + "source": 0 + }, + { + "begin": 393, + "end": 474, + "name": "NOT", + "source": 0 + }, + { + "begin": 393, + "end": 474, + "name": "AND", + "source": 0 + }, + { + "begin": 393, + "end": 474, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 393, + "end": 474, + "name": "DUP4", + "source": 0 + }, + { + "begin": 393, + "end": 474, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 393, + "end": 474, + "name": "AND", + "source": 0 + }, + { + "begin": 393, + "end": 474, + "name": "MUL", + "source": 0 + }, + { + "begin": 393, + "end": 474, + "name": "OR", + "source": 0 + }, + { + "begin": 393, + "end": 474, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 393, + "end": 474, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 393, + "end": 474, + "name": "POP", + "source": 0 + }, + { + "begin": 504, + "end": 508, + "name": "ADDRESS", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "PUSH", + "source": 0, + "value": "6" + }, + { + "begin": 481, + "end": 509, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 481, + "end": 509, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 481, + "end": 509, + "name": "EXP", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "DUP2", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "DUP2", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 481, + "end": 509, + "name": "MUL", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "NOT", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "AND", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "DUP4", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 481, + "end": 509, + "name": "AND", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "MUL", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "OR", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 481, + "end": 509, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1367, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "REVERT", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1367, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1367, + "name": "KECCAK256", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "1F" + }, + { + "begin": 92, + "end": 1367, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DIV", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP2", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1367, + "name": "DUP6", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "8" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "1F" + }, + { + "begin": 92, + "end": 1367, + "name": "LT", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "FF" + }, + { + "begin": 92, + "end": 1367, + "name": "NOT", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "AND", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP4", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "OR", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP6", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1367, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP6", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP2", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "GT", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 92, + "end": 1367, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1367, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "11" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP3", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "GT", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1367, + "name": "DUP2", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1367, + "name": "ADD", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMP", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 327, + "name": "tag", + "source": 1, + "value": "6" + }, + { + "begin": 7, + "end": 327, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 51, + "end": 57, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 88, + "end": 89, + "name": "PUSH", + "source": 1, + "value": "2" + }, + { + "begin": 82, + "end": 86, + "name": "DUP3", + "source": 1 + }, + { + "begin": 78, + "end": 90, + "name": "DIV", + "source": 1 + }, + { + "begin": 68, + "end": 90, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 68, + "end": 90, + "name": "POP", + "source": 1 + }, + { + "begin": 135, + "end": 136, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 129, + "end": 133, + "name": "DUP3", + "source": 1 + }, + { + "begin": 125, + "end": 137, + "name": "AND", + "source": 1 + }, + { + "begin": 156, + "end": 174, + "name": "DUP1", + "source": 1 + }, + { + "begin": 146, + "end": 227, + "name": "PUSH [tag]", + "source": 1, + "value": "18" + }, + { + "begin": 146, + "end": 227, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 212, + "end": 216, + "name": "PUSH", + "source": 1, + "value": "7F" + }, + { + "begin": 204, + "end": 210, + "name": "DUP3", + "source": 1 + }, + { + "begin": 200, + "end": 217, + "name": "AND", + "source": 1 + }, + { + "begin": 190, + "end": 217, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 190, + "end": 217, + "name": "POP", + "source": 1 + }, + { + "begin": 146, + "end": 227, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 146, + "end": 227, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 274, + "end": 276, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 266, + "end": 272, + "name": "DUP3", + "source": 1 + }, + { + "begin": 263, + "end": 277, + "name": "LT", + "source": 1 + }, + { + "begin": 243, + "end": 261, + "name": "DUP2", + "source": 1 + }, + { + "begin": 240, + "end": 278, + "name": "EQ", + "source": 1 + }, + { + "begin": 237, + "end": 321, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 237, + "end": 321, + "name": "PUSH [tag]", + "source": 1, + "value": "19" + }, + { + "begin": 237, + "end": 321, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 293, + "end": 311, + "name": "PUSH [tag]", + "source": 1, + "value": "20" + }, + { + "begin": 293, + "end": 311, + "name": "PUSH [tag]", + "source": 1, + "value": "21" + }, + { + "begin": 293, + "end": 311, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 293, + "end": 311, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 293, + "end": 311, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 237, + "end": 321, + "name": "tag", + "source": 1, + "value": "19" + }, + { + "begin": 237, + "end": 321, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 58, + "end": 327, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 327, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 327, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 7, + "end": 327, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 327, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 333, + "end": 513, + "name": "tag", + "source": 1, + "value": "21" + }, + { + "begin": 333, + "end": 513, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 381, + "end": 458, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 378, + "end": 379, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 371, + "end": 459, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 478, + "end": 482, + "name": "PUSH", + "source": 1, + "value": "22" + }, + { + "begin": 475, + "end": 476, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 468, + "end": 483, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 502, + "end": 506, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 499, + "end": 500, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 492, + "end": 507, + "name": "REVERT", + "source": 1 + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 92, + "end": 1367, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1367, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1367, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a26469706673582212207f13c92d8096adab53c026fa5fac8f63ef78e448718c3f85322be81bd7b0874d64736f6c63430008070033", + ".code": [ + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 92, + "end": 1367, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1367, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "REVERT", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "POP", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 92, + "end": 1367, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "LT", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1367, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 92, + "end": 1367, + "name": "SHR", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "826EA227" + }, + { + "begin": 92, + "end": 1367, + "name": "EQ", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "CBD33D05" + }, + { + "begin": 92, + "end": 1367, + "name": "EQ", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 92, + "end": 1367, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 92, + "end": 1367, + "name": "DUP1", + "source": 0 + }, + { + "begin": 92, + "end": 1367, + "name": "REVERT", + "source": 0 + }, + { + "begin": 783, + "end": 1364, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 783, + "end": 1364, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 783, + "end": 1364, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 783, + "end": 1364, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 783, + "end": 1364, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 783, + "end": 1364, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 783, + "end": 1364, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 783, + "end": 1364, + "name": "STOP", + "source": 0 + }, + { + "begin": 518, + "end": 742, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 518, + "end": 742, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 518, + "end": 742, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 518, + "end": 742, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 518, + "end": 742, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 518, + "end": 742, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 518, + "end": 742, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 518, + "end": 742, + "name": "STOP", + "source": 0 + }, + { + "begin": 783, + "end": 1364, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 783, + "end": 1364, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 903, + "end": 914, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 934, + "end": 940, + "name": "DUP1", + "source": 0 + }, + { + "begin": 929, + "end": 997, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 929, + "end": 997, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 950, + "end": 952, + "name": "PUSH", + "source": 0, + "value": "A" + }, + { + "begin": 946, + "end": 947, + "name": "DUP2", + "source": 0 + }, + { + "begin": 946, + "end": 952, + "name": "LT", + "source": 0 + }, + { + "begin": 929, + "end": 997, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 929, + "end": 997, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 929, + "end": 997, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 984, + "end": 985, + "name": "DUP1", + "source": 0 + }, + { + "begin": 974, + "end": 985, + "name": "DUP3", + "source": 0 + }, + { + "begin": 974, + "end": 985, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 974, + "end": 985, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 974, + "end": 985, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 974, + "end": 985, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 974, + "end": 985, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 974, + "end": 985, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 974, + "end": 985, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 974, + "end": 985, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 974, + "end": 985, + "name": "POP", + "source": 0 + }, + { + "begin": 954, + "end": 957, + "name": "DUP1", + "source": 0 + }, + { + "begin": 954, + "end": 957, + "name": "DUP1", + "source": 0 + }, + { + "begin": 954, + "end": 957, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 954, + "end": 957, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 954, + "end": 957, + "name": "PUSH [tag]", + "source": 0, + "value": "16" + }, + { + "begin": 954, + "end": 957, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 954, + "end": 957, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 954, + "end": 957, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 954, + "end": 957, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 954, + "end": 957, + "name": "POP", + "source": 0 + }, + { + "begin": 954, + "end": 957, + "name": "POP", + "source": 0 + }, + { + "begin": 929, + "end": 997, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 929, + "end": 997, + "name": "JUMP", + "source": 0 + }, + { + "begin": 929, + "end": 997, + "name": "tag", + "source": 0, + "value": "11" + }, + { + "begin": 929, + "end": 997, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 929, + "end": 997, + "name": "POP", + "source": 0 + }, + { + "begin": 1053, + "end": 1064, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1079, + "end": 1137, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1079, + "end": 1137, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1097, + "end": 1105, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1097, + "end": 1105, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1097, + "end": 1105, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1097, + "end": 1105, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1097, + "end": 1105, + "name": "PUSH [tag]", + "source": 0, + "value": "16" + }, + { + "begin": 1097, + "end": 1105, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1097, + "end": 1105, + "name": "tag", + "source": 0, + "value": "20" + }, + { + "begin": 1097, + "end": 1105, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1097, + "end": 1105, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1097, + "end": 1105, + "name": "POP", + "source": 0 + }, + { + "begin": 1097, + "end": 1105, + "name": "POP", + "source": 0 + }, + { + "begin": 1133, + "end": 1135, + "name": "PUSH", + "source": 0, + "value": "A" + }, + { + "begin": 1124, + "end": 1130, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1124, + "end": 1135, + "name": "LT", + "source": 0 + }, + { + "begin": 1079, + "end": 1137, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1079, + "end": 1137, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1183, + "end": 1194, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1197, + "end": 1201, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1183, + "end": 1201, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1183, + "end": 1201, + "name": "POP", + "source": 0 + }, + { + "begin": 1212, + "end": 1232, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1212, + "end": 1237, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1212, + "end": 1237, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1212, + "end": 1237, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1212, + "end": 1237, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 1212, + "end": 1237, + "name": "ADD", + "source": 0 + }, + { + "begin": 1212, + "end": 1237, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1212, + "end": 1237, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1212, + "end": 1237, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1212, + "end": 1237, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 1212, + "end": 1237, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1212, + "end": 1237, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1212, + "end": 1237, + "name": "POP", + "source": 0 + }, + { + "begin": 1212, + "end": 1237, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1212, + "end": 1237, + "name": "POP", + "source": 0 + }, + { + "begin": 1252, + "end": 1258, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1248, + "end": 1357, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 1248, + "end": 1357, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1248, + "end": 1357, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1275, + "end": 1295, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1275, + "end": 1295, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1275, + "end": 1295, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1275, + "end": 1295, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1275, + "end": 1295, + "name": "ADD", + "source": 0 + }, + { + "begin": 1275, + "end": 1295, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1275, + "end": 1295, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1275, + "end": 1295, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1275, + "end": 1295, + "name": "PUSH", + "source": 0, + "value": "9" + }, + { + "begin": 1275, + "end": 1295, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1275, + "end": 1295, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1275, + "end": 1295, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 1275, + "end": 1295, + "name": "ADD", + "source": 0 + }, + { + "begin": 1275, + "end": 1295, + "name": "PUSH", + "source": 0, + "value": "6163746976617465640000000000000000000000000000000000000000000000" + }, + { + "begin": 1275, + "end": 1295, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1275, + "end": 1295, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1275, + "end": 1295, + "name": "POP", + "source": 0 + }, + { + "begin": 1275, + "end": 1295, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1275, + "end": 1295, + "name": "POP", + "source": 0 + }, + { + "begin": 1248, + "end": 1357, + "name": "PUSH [tag]", + "source": 0, + "value": "22" + }, + { + "begin": 1248, + "end": 1357, + "name": "JUMP", + "source": 0 + }, + { + "begin": 1248, + "end": 1357, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1248, + "end": 1357, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1328, + "end": 1345, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1328, + "end": 1345, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 1328, + "end": 1345, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1328, + "end": 1345, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1328, + "end": 1345, + "name": "ADD", + "source": 0 + }, + { + "begin": 1328, + "end": 1345, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 1328, + "end": 1345, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1328, + "end": 1345, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1328, + "end": 1345, + "name": "PUSH", + "source": 0, + "value": "6" + }, + { + "begin": 1328, + "end": 1345, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1328, + "end": 1345, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1328, + "end": 1345, + "name": "PUSH", + "source": 0, + "value": "20" + }, + { + "begin": 1328, + "end": 1345, + "name": "ADD", + "source": 0 + }, + { + "begin": 1328, + "end": 1345, + "name": "PUSH", + "source": 0, + "value": "636C6F7365640000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1328, + "end": 1345, + "name": "DUP2", + "source": 0 + }, + { + "begin": 1328, + "end": 1345, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 1328, + "end": 1345, + "name": "POP", + "source": 0 + }, + { + "begin": 1328, + "end": 1345, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1328, + "end": 1345, + "name": "POP", + "source": 0 + }, + { + "begin": 1248, + "end": 1357, + "name": "tag", + "source": 0, + "value": "22" + }, + { + "begin": 1248, + "end": 1357, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 825, + "end": 1364, + "name": "POP", + "source": 0 + }, + { + "begin": 825, + "end": 1364, + "name": "POP", + "source": 0 + }, + { + "begin": 825, + "end": 1364, + "name": "POP", + "source": 0 + }, + { + "begin": 825, + "end": 1364, + "name": "POP", + "source": 0 + }, + { + "begin": 783, + "end": 1364, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 518, + "end": 742, + "name": "tag", + "source": 0, + "value": "8" + }, + { + "begin": 518, + "end": 742, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 619, + "end": 630, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 619, + "end": 630, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 619, + "end": 630, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 619, + "end": 630, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 619, + "end": 630, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 619, + "end": 630, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 619, + "end": 630, + "name": "EXP", + "source": 0 + }, + { + "begin": 619, + "end": 630, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 619, + "end": 630, + "name": "POP", + "source": 0 + }, + { + "begin": 619, + "end": 630, + "name": "POP", + "source": 0 + }, + { + "begin": 710, + "end": 721, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 710, + "end": 721, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 710, + "end": 721, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 710, + "end": 721, + "name": "SLOAD", + "source": 0 + }, + { + "begin": 710, + "end": 721, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 710, + "end": 721, + "name": "PUSH", + "source": 0, + "value": "100" + }, + { + "begin": 710, + "end": 721, + "name": "EXP", + "source": 0 + }, + { + "begin": 710, + "end": 721, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 710, + "end": 721, + "name": "DIV", + "source": 0 + }, + { + "begin": 710, + "end": 721, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 710, + "end": 721, + "name": "AND", + "source": 0 + }, + { + "begin": 710, + "end": 730, + "name": "PUSH", + "source": 0, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 710, + "end": 730, + "name": "AND", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "PUSH", + "source": 0, + "value": "8FC" + }, + { + "begin": 731, + "end": 733, + "name": "PUSH", + "source": 0, + "value": "A" + }, + { + "begin": 710, + "end": 734, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "DUP2", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "MUL", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 710, + "end": 734, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 710, + "end": 734, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 710, + "end": 734, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "DUP1", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "DUP4", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "SUB", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "DUP2", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "DUP6", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "DUP9", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "DUP9", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "CALL", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "SWAP4", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "POP", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "POP", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "POP", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "POP", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "DUP1", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 710, + "end": 734, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "RETURNDATASIZE", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 710, + "end": 734, + "name": "DUP1", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "RETURNDATACOPY", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "RETURNDATASIZE", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 710, + "end": 734, + "name": "REVERT", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "tag", + "source": 0, + "value": "25" + }, + { + "begin": 710, + "end": 734, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "POP", + "source": 0 + }, + { + "begin": 518, + "end": 742, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 312, + "name": "tag", + "source": 1, + "value": "14" + }, + { + "begin": 7, + "end": 312, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 47, + "end": 50, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 66, + "end": 86, + "name": "PUSH [tag]", + "source": 1, + "value": "28" + }, + { + "begin": 84, + "end": 85, + "name": "DUP3", + "source": 1 + }, + { + "begin": 66, + "end": 86, + "name": "PUSH [tag]", + "source": 1, + "value": "29" + }, + { + "begin": 66, + "end": 86, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 66, + "end": 86, + "name": "tag", + "source": 1, + "value": "28" + }, + { + "begin": 66, + "end": 86, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 61, + "end": 86, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 61, + "end": 86, + "name": "POP", + "source": 1 + }, + { + "begin": 100, + "end": 120, + "name": "PUSH [tag]", + "source": 1, + "value": "30" + }, + { + "begin": 118, + "end": 119, + "name": "DUP4", + "source": 1 + }, + { + "begin": 100, + "end": 120, + "name": "PUSH [tag]", + "source": 1, + "value": "29" + }, + { + "begin": 100, + "end": 120, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 100, + "end": 120, + "name": "tag", + "source": 1, + "value": "30" + }, + { + "begin": 100, + "end": 120, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 95, + "end": 120, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 95, + "end": 120, + "name": "POP", + "source": 1 + }, + { + "begin": 254, + "end": 255, + "name": "DUP3", + "source": 1 + }, + { + "begin": 186, + "end": 252, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 182, + "end": 256, + "name": "SUB", + "source": 1 + }, + { + "begin": 179, + "end": 180, + "name": "DUP3", + "source": 1 + }, + { + "begin": 176, + "end": 257, + "name": "GT", + "source": 1 + }, + { + "begin": 173, + "end": 280, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 173, + "end": 280, + "name": "PUSH [tag]", + "source": 1, + "value": "31" + }, + { + "begin": 173, + "end": 280, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 260, + "end": 278, + "name": "PUSH [tag]", + "source": 1, + "value": "32" + }, + { + "begin": 260, + "end": 278, + "name": "PUSH [tag]", + "source": 1, + "value": "33" + }, + { + "begin": 260, + "end": 278, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 260, + "end": 278, + "name": "tag", + "source": 1, + "value": "32" + }, + { + "begin": 260, + "end": 278, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 173, + "end": 280, + "name": "tag", + "source": 1, + "value": "31" + }, + { + "begin": 173, + "end": 280, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 304, + "end": 305, + "name": "DUP3", + "source": 1 + }, + { + "begin": 301, + "end": 302, + "name": "DUP3", + "source": 1 + }, + { + "begin": 297, + "end": 306, + "name": "ADD", + "source": 1 + }, + { + "begin": 290, + "end": 306, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 290, + "end": 306, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 312, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 318, + "end": 395, + "name": "tag", + "source": 1, + "value": "29" + }, + { + "begin": 318, + "end": 395, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 355, + "end": 362, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 384, + "end": 389, + "name": "DUP2", + "source": 1 + }, + { + "begin": 373, + "end": 389, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 373, + "end": 389, + "name": "POP", + "source": 1 + }, + { + "begin": 318, + "end": 395, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 318, + "end": 395, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 318, + "end": 395, + "name": "POP", + "source": 1 + }, + { + "begin": 318, + "end": 395, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 401, + "end": 634, + "name": "tag", + "source": 1, + "value": "16" + }, + { + "begin": 401, + "end": 634, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 440, + "end": 443, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 463, + "end": 487, + "name": "PUSH [tag]", + "source": 1, + "value": "36" + }, + { + "begin": 481, + "end": 486, + "name": "DUP3", + "source": 1 + }, + { + "begin": 463, + "end": 487, + "name": "PUSH [tag]", + "source": 1, + "value": "29" + }, + { + "begin": 463, + "end": 487, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 463, + "end": 487, + "name": "tag", + "source": 1, + "value": "36" + }, + { + "begin": 463, + "end": 487, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 454, + "end": 487, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 454, + "end": 487, + "name": "POP", + "source": 1 + }, + { + "begin": 509, + "end": 575, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 502, + "end": 507, + "name": "DUP3", + "source": 1 + }, + { + "begin": 499, + "end": 576, + "name": "EQ", + "source": 1 + }, + { + "begin": 496, + "end": 599, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 496, + "end": 599, + "name": "PUSH [tag]", + "source": 1, + "value": "37" + }, + { + "begin": 496, + "end": 599, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 579, + "end": 597, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 579, + "end": 597, + "name": "PUSH [tag]", + "source": 1, + "value": "33" + }, + { + "begin": 579, + "end": 597, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 579, + "end": 597, + "name": "tag", + "source": 1, + "value": "38" + }, + { + "begin": 579, + "end": 597, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 496, + "end": 599, + "name": "tag", + "source": 1, + "value": "37" + }, + { + "begin": 496, + "end": 599, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 626, + "end": 627, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 619, + "end": 624, + "name": "DUP3", + "source": 1 + }, + { + "begin": 615, + "end": 628, + "name": "ADD", + "source": 1 + }, + { + "begin": 608, + "end": 628, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 608, + "end": 628, + "name": "POP", + "source": 1 + }, + { + "begin": 401, + "end": 634, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 401, + "end": 634, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 401, + "end": 634, + "name": "POP", + "source": 1 + }, + { + "begin": 401, + "end": 634, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 640, + "end": 820, + "name": "tag", + "source": 1, + "value": "33" + }, + { + "begin": 640, + "end": 820, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 688, + "end": 765, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 685, + "end": 686, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 678, + "end": 766, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 785, + "end": 789, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 782, + "end": 783, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 775, + "end": 790, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 809, + "end": 813, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 806, + "end": 807, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 799, + "end": 814, + "name": "REVERT", + "source": 1 + } + ] + } + } + }, + "methodIdentifiers": { + "assignAddress()": "cbd33d05", + "flowControlExample()": "826ea227" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"assignAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"flowControlExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"flowControlExample()\":{\"details\":\"\\u6d41\\u7a0b\\u63a7\\u5236\\u7bc4\\u4f8b\"}},\"stateVariables\":{\"hasChecked\":{\"details\":\"\\u5c1a\\u672a\\u6aa2\\u67e5\\u904e\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep3/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep3/example.sol\":{\"keccak256\":\"0x9c39d3e1e294b7f3f58980bdada04325e7dd0fa7db86e2e7c9dc7f8a95d05e2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07fe7e6ffa5585b1268587f8a6f592495da3ecae4fc631fd5f49d58de07712e5\",\"dweb:/ipfs/QmP1k3pMgRHPccScvRiNzZPUh4pqsvjBAS6m4DCAmwPmw5\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 5, + "contract": "Ep3/example.sol:Example", + "label": "hasChecked", + "offset": 0, + "slot": "0", + "type": "t_bool" + }, + { + "astId": 9, + "contract": "Ep3/example.sol:Example", + "label": "xInt256", + "offset": 0, + "slot": "1", + "type": "t_int256" + }, + { + "astId": 13, + "contract": "Ep3/example.sol:Example", + "label": "xInt", + "offset": 0, + "slot": "2", + "type": "t_int256" + }, + { + "astId": 16, + "contract": "Ep3/example.sol:Example", + "label": "xUint8", + "offset": 0, + "slot": "3", + "type": "t_uint8" + }, + { + "astId": 19, + "contract": "Ep3/example.sol:Example", + "label": "str", + "offset": 0, + "slot": "4", + "type": "t_string_storage" + }, + { + "astId": 25, + "contract": "Ep3/example.sol:Example", + "label": "payableAddr", + "offset": 0, + "slot": "5", + "type": "t_address_payable" + }, + { + "astId": 31, + "contract": "Ep3/example.sol:Example", + "label": "addr", + "offset": 0, + "slot": "6", + "type": "t_address" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_address_payable": { + "encoding": "inplace", + "label": "address payable", + "numberOfBytes": "20" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_int256": { + "encoding": "inplace", + "label": "int256", + "numberOfBytes": "32" + }, + "t_string_storage": { + "encoding": "bytes", + "label": "string", + "numberOfBytes": "32" + }, + "t_uint8": { + "encoding": "inplace", + "label": "uint8", + "numberOfBytes": "1" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep3/example.sol": { + "ast": { + "absolutePath": "Ep3/example.sol", + "exportedSymbols": { + "Example": [ + 106 + ] + }, + "id": 107, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 106, + "linearizedBaseContracts": [ + 106 + ], + "name": "Example", + "nameLocation": "101:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "documentation": { + "id": 2, + "nodeType": "StructuredDocumentation", + "src": "116:24:0", + "text": "@dev 尚未檢查過" + }, + "id": 5, + "mutability": "mutable", + "name": "hasChecked", + "nameLocation": "159:10:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "146:31:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "146:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "hexValue": "66616c7365", + "id": 4, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "172:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "xInt256", + "nameLocation": "201:7:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "186:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "186:6:0", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": { + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "211:4:0", + "subExpression": { + "hexValue": "313030", + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "212:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_100_by_1", + "typeString": "int_const -100" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 13, + "mutability": "mutable", + "name": "xInt", + "nameLocation": "257:4:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "245:23:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 10, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "245:3:0", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": { + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "264:4:0", + "subExpression": { + "hexValue": "313030", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "265:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_100_by_1", + "typeString": "int_const -100" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "xUint8", + "nameLocation": "333:6:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "319:26:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 14, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "319:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "313238", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "342:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 19, + "mutability": "mutable", + "name": "str", + "nameLocation": "369:3:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "354:30:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 17, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "354:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "64796e616d6963", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "375:9:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47a6130681d8220ba3d4c0a50de139d22039c5629024c598d023ccca8470c25c", + "typeString": "literal_string \"dynamic\"" + }, + "value": "dynamic" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "payableAddr", + "nameLocation": "409:11:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "393:81:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "393:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": { + "arguments": [ + { + "hexValue": "307864436164336136643335363944463635353037304445643036636237413162324363643144334146", + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "431:42:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "value": "0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "423:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 21, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "423:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "423:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "addr", + "nameLocation": "489:4:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "481:28:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "481:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "arguments": [ + { + "id": 29, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "504:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Example_$106", + "typeString": "contract Example" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Example_$106", + "typeString": "contract Example" + } + ], + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "496:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 27, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "496:7:0", + "typeDescriptions": {} + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "496:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 44, + "nodeType": "Block", + "src": "550:192:0", + "statements": [ + { + "expression": { + "expression": { + "id": 34, + "name": "payableAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "619:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "619:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "619:19:0" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "3130", + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "731:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + ], + "expression": { + "id": 38, + "name": "payableAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "710:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "710:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "710:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "710:24:0" + } + ] + }, + "functionSelector": "cbd33d05", + "id": 45, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "assignAddress", + "nameLocation": "527:13:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [], + "src": "540:2:0" + }, + "returnParameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [], + "src": "550:0:0" + }, + "scope": 106, + "src": "518:224:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 104, + "nodeType": "Block", + "src": "825:539:0", + "statements": [ + { + "assignments": [ + 51 + ], + "declarations": [ + { + "constant": false, + "id": 51, + "mutability": "mutable", + "name": "count0", + "nameLocation": "908:6:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "903:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 50, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "903:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "documentation": "@notice for...\n @dev 累加10次的流程", + "id": 53, + "initialValue": { + "hexValue": "30", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "917:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "903:15:0" + }, + { + "body": { + "id": 68, + "nodeType": "Block", + "src": "959:38:0", + "statements": [ + { + "expression": { + "id": 66, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 64, + "name": "count0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 51, + "src": "974:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 65, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "984:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "974:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 67, + "nodeType": "ExpressionStatement", + "src": "974:11:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 58, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "946:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3130", + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "950:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "946:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 69, + "initializationExpression": { + "assignments": [ + 55 + ], + "declarations": [ + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "i", + "nameLocation": "939:1:0", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "934:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 54, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "934:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 57, + "initialValue": { + "hexValue": "30", + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "943:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "934:10:0" + }, + "loopExpression": { + "expression": { + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "954:3:0", + "subExpression": { + "id": 61, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "954:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 63, + "nodeType": "ExpressionStatement", + "src": "954:3:0" + }, + "nodeType": "ForStatement", + "src": "929:68:0" + }, + { + "assignments": [ + 72 + ], + "declarations": [ + { + "constant": false, + "id": 72, + "mutability": "mutable", + "name": "count1", + "nameLocation": "1058:6:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1053:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 71, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1053:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "documentation": "@dev 相當於上述的for ...", + "id": 74, + "initialValue": { + "hexValue": "30", + "id": 73, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1067:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1053:15:0" + }, + { + "body": { + "id": 78, + "nodeType": "Block", + "src": "1082:35:0", + "statements": [ + { + "expression": { + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1097:8:0", + "subExpression": { + "id": 75, + "name": "count1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "1097:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 77, + "nodeType": "ExpressionStatement", + "src": "1097:8:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 79, + "name": "count1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "1124:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3130", + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1133:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1124:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 82, + "nodeType": "DoWhileStatement", + "src": "1079:58:0" + }, + { + "assignments": [ + 85 + ], + "declarations": [ + { + "constant": false, + "id": 85, + "mutability": "mutable", + "name": "isOpen", + "nameLocation": "1188:6:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1183:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 84, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1183:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "documentation": "@dev if ... else ...", + "id": 87, + "initialValue": { + "hexValue": "74727565", + "id": 86, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1197:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1183:18:0" + }, + { + "assignments": [ + 89 + ], + "declarations": [ + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "status", + "nameLocation": "1226:6:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1212:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 88, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1212:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 91, + "initialValue": { + "hexValue": "", + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1235:2:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1212:25:0" + }, + { + "condition": { + "id": 92, + "name": "isOpen", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 85, + "src": "1252:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 102, + "nodeType": "Block", + "src": "1313:44:0", + "statements": [ + { + "expression": { + "id": 100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 98, + "name": "status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "1328:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "636c6f736564", + "id": 99, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1337:8:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5cdcafd80f762bdc98fd6ec295c784ef6e795af18d23dff7061c51f083ef9d2e", + "typeString": "literal_string \"closed\"" + }, + "value": "closed" + }, + "src": "1328:17:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 101, + "nodeType": "ExpressionStatement", + "src": "1328:17:0" + } + ] + }, + "id": 103, + "nodeType": "IfStatement", + "src": "1248:109:0", + "trueBody": { + "id": 97, + "nodeType": "Block", + "src": "1260:47:0", + "statements": [ + { + "expression": { + "id": 95, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 93, + "name": "status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "1275:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "616374697661746564", + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1284:11:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8e4560b1c76dcaab13085db49759e742cb80a5f12ca42c8f7f7913ade5355774", + "typeString": "literal_string \"activated\"" + }, + "value": "activated" + }, + "src": "1275:20:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 96, + "nodeType": "ExpressionStatement", + "src": "1275:20:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 46, + "nodeType": "StructuredDocumentation", + "src": "750:27:0", + "text": "@dev 流程控制範例" + }, + "functionSelector": "826ea227", + "id": 105, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "flowControlExample", + "nameLocation": "792:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 47, + "nodeType": "ParameterList", + "parameters": [], + "src": "810:2:0" + }, + "returnParameters": { + "id": 48, + "nodeType": "ParameterList", + "parameters": [], + "src": "825:0:0" + }, + "scope": 106, + "src": "783:581:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 107, + "src": "92:1275:0", + "usedErrors": [] + } + ], + "src": "33:1334:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep3/example.sol b/Ep3/example.sol index de156e2..19fc2a7 100644 --- a/Ep3/example.sol +++ b/Ep3/example.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.7; +pragma solidity ^0.8.7.0; // @title 智能合約範例 contract Example { @@ -15,8 +15,8 @@ contract Example { string private str = "dynamic"; - address payable payableAddr = payable(0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF); - address addr = address(this); + address payable private payableAddr = payable(0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF); + address private addr = address(this); function assignAddress() public { // the balance of an address using the property diff --git a/Ep4/artifacts/Example.json b/Ep4/artifacts/Example.json index 0ccb859..10a5aa1 100644 --- a/Ep4/artifacts/Example.json +++ b/Ep4/artifacts/Example.json @@ -34,68 +34,134 @@ "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50610299806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806319730b441461003b5780639b92a9e814610057575b600080fd5b610055600480360381019061005091906100ef565b610061565b005b61005f61007e565b005b60038161006e9190610185565b82610079919061012f565b505050565b6001801461008f5761008e6101e9565b5b603c80146100a05761009f6101e9565b5b610e1080146100b2576100b16101e9565b5b6201518080146100c5576100c46101e9565b5b62093a8080146100d8576100d76101e9565b5b565b6000813590506100e98161024c565b92915050565b6000806040838503121561010657610105610247565b5b6000610114858286016100da565b9250506020610125858286016100da565b9150509250929050565b600061013a826101df565b9150610145836101df565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561017a57610179610218565b5b828201905092915050565b6000610190826101df565b915061019b836101df565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156101d4576101d3610218565b5b828202905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b610255816101df565b811461026057600080fd5b5056fea2646970667358221220eff1b74e49e8309f18b3ea4b265d436e4695c331ee99a01c4e1a14bf37c074e464736f6c63430008070033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 DUP1 PUSH2 0x20 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 0x19730B44 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x9B92A9E8 EQ PUSH2 0x57 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xEF JUMP JUMPDEST PUSH2 0x61 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5F PUSH2 0x7E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 DUP2 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x185 JUMP JUMPDEST DUP3 PUSH2 0x79 SWAP2 SWAP1 PUSH2 0x12F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x8F JUMPI PUSH2 0x8E PUSH2 0x1E9 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xA0 JUMPI PUSH2 0x9F PUSH2 0x1E9 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xB2 JUMPI PUSH2 0xB1 PUSH2 0x1E9 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0xC5 JUMPI PUSH2 0xC4 PUSH2 0x1E9 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0xD8 JUMPI PUSH2 0xD7 PUSH2 0x1E9 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE9 DUP2 PUSH2 0x24C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x106 JUMPI PUSH2 0x105 PUSH2 0x247 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x114 DUP6 DUP3 DUP7 ADD PUSH2 0xDA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x125 DUP6 DUP3 DUP7 ADD PUSH2 0xDA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13A DUP3 PUSH2 0x1DF JUMP JUMPDEST SWAP2 POP PUSH2 0x145 DUP4 PUSH2 0x1DF JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x17A JUMPI PUSH2 0x179 PUSH2 0x218 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x190 DUP3 PUSH2 0x1DF JUMP JUMPDEST SWAP2 POP PUSH2 0x19B DUP4 PUSH2 0x1DF JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1D4 JUMPI PUSH2 0x1D3 PUSH2 0x218 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x255 DUP2 PUSH2 0x1DF JUMP JUMPDEST DUP2 EQ PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEF CALL 0xB7 0x4E 0x49 0xE8 ADDRESS SWAP16 XOR 0xB3 0xEA 0x4B 0x26 0x5D NUMBER PUSH15 0x4695C331EE99A01C4E1A14BF37C074 0xE4 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", - "sourceMap": "60:633:0:-:0;;;;;;;;;;;;;;;;;;;" + "object": "608060405234801561001057600080fd5b50610539806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610204565b61008a565b60405161006d91906102bc565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061039e565b846100a99190610348565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61040e565b5b603c80146100e0576100df61040e565b5b610e1080146100f2576100f161040e565b5b6201518080146101055761010461040e565b5b62093a8080146101185761011761040e565b5b565b6001801461015d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610154906102f7565b60405180910390fd5b633b9aca0080146101a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019a906102d7565b60405180910390fd5b670de0b6b3a764000080146101ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e490610317565b60405180910390fd5b565b6000813590506101fe816104ec565b92915050565b6000806040838503121561021b5761021a61046c565b5b6000610229858286016101ef565b925050602061023a858286016101ef565b9150509250929050565b61024d816103f8565b82525050565b6000610260601a83610337565b915061026b82610471565b602082019050919050565b6000610283601783610337565b915061028e8261049a565b602082019050919050565b60006102a6601c83610337565b91506102b1826104c3565b602082019050919050565b60006020820190506102d16000830184610244565b92915050565b600060208201905081810360008301526102f081610253565b9050919050565b6000602082019050818103600083015261031081610276565b9050919050565b6000602082019050818103600083015261033081610299565b9050919050565b600082825260208201905092915050565b600061035382610404565b915061035e83610404565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156103935761039261043d565b5b828201905092915050565b60006103a982610404565b91506103b483610404565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156103ed576103ec61043d565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b7f312067776569206973206e6f7420657175616c20746f20316539000000000000600082015250565b7f3120776569206973206e6f7420657175616c20746f2031000000000000000000600082015250565b7f31206574686572206973206e6f7420657175616c20746f203165313800000000600082015250565b6104f581610404565b811461050057600080fd5b5056fea264697066735822122090dbaeb36224b3aaf81b4d19d717dd3c704c9ed33440558c6268fb3f7fa867f564736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x539 DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x204 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x2BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x39E JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x348 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x40E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x15D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154 SWAP1 PUSH2 0x2F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x1A3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19A SWAP1 PUSH2 0x2D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x1ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E4 SWAP1 PUSH2 0x317 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FE DUP2 PUSH2 0x4EC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21B JUMPI PUSH2 0x21A PUSH2 0x46C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x229 DUP6 DUP3 DUP7 ADD PUSH2 0x1EF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x23A DUP6 DUP3 DUP7 ADD PUSH2 0x1EF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x24D DUP2 PUSH2 0x3F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x260 PUSH1 0x1A DUP4 PUSH2 0x337 JUMP JUMPDEST SWAP2 POP PUSH2 0x26B DUP3 PUSH2 0x471 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x283 PUSH1 0x17 DUP4 PUSH2 0x337 JUMP JUMPDEST SWAP2 POP PUSH2 0x28E DUP3 PUSH2 0x49A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A6 PUSH1 0x1C DUP4 PUSH2 0x337 JUMP JUMPDEST SWAP2 POP PUSH2 0x2B1 DUP3 PUSH2 0x4C3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2D1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x244 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2F0 DUP2 PUSH2 0x253 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x310 DUP2 PUSH2 0x276 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x330 DUP2 PUSH2 0x299 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x353 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0x35E DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x393 JUMPI PUSH2 0x392 PUSH2 0x43D JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A9 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0x3B4 DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x3ED JUMPI PUSH2 0x3EC PUSH2 0x43D JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x312067776569206973206E6F7420657175616C20746F20316539000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x3120776569206973206E6F7420657175616C20746F2031000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x31206574686572206973206E6F7420657175616C20746F203165313800000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x4F5 DUP2 PUSH2 0x404 JUMP JUMPDEST DUP2 EQ PUSH2 0x500 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP1 0xDB 0xAE 0xB3 PUSH3 0x24B3AA 0xF8 SHL 0x4D NOT 0xD7 OR 0xDD EXTCODECOPY PUSH17 0x4C9ED33440558C6268FB3F7FA867F56473 PUSH16 0x6C634300080700330000000000000000 ", + "sourceMap": "62:1232:0:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "functionDebugData": { - "@TimeUnitExample_35": { - "entryPoint": 126, - "id": 35, + "@etherUnitExample_26": { + "entryPoint": 282, + "id": 26, "parameterSlots": 0, "returnSlots": 0 }, - "@validate_53": { - "entryPoint": 97, - "id": 53, - "parameterSlots": 2, + "@timeUnitExample_60": { + "entryPoint": 190, + "id": 60, + "parameterSlots": 0, "returnSlots": 0 }, + "@validate_90": { + "entryPoint": 138, + "id": 90, + "parameterSlots": 2, + "returnSlots": 1 + }, "abi_decode_t_uint256": { - "entryPoint": 218, + "entryPoint": 495, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_uint256t_uint256": { - "entryPoint": 239, + "entryPoint": 516, "id": null, "parameterSlots": 2, "returnSlots": 2 }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 580, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d_to_t_string_memory_ptr_fromStack": { + "entryPoint": 595, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b_to_t_string_memory_ptr_fromStack": { + "entryPoint": 630, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de_to_t_string_memory_ptr_fromStack": { + "entryPoint": 665, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 700, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 727, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 759, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 791, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, "allocate_unbounded": { "entryPoint": null, "id": null, "parameterSlots": 0, "returnSlots": 1 }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 823, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, "checked_add_t_uint256": { - "entryPoint": 303, + "entryPoint": 840, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "checked_mul_t_uint256": { - "entryPoint": 389, + "entryPoint": 926, "id": null, "parameterSlots": 2, "returnSlots": 1 }, + "cleanup_t_bool": { + "entryPoint": 1016, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, "cleanup_t_uint256": { - "entryPoint": 479, + "entryPoint": 1028, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "panic_error_0x01": { - "entryPoint": 489, + "entryPoint": 1038, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "panic_error_0x11": { - "entryPoint": 536, + "entryPoint": 1085, "id": null, "parameterSlots": 0, "returnSlots": 0 @@ -107,13 +173,31 @@ "returnSlots": 0 }, "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 583, + "entryPoint": 1132, "id": null, "parameterSlots": 0, "returnSlots": 0 }, + "store_literal_in_memory_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d": { + "entryPoint": 1137, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b": { + "entryPoint": 1178, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de": { + "entryPoint": 1219, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, "validator_revert_t_uint256": { - "entryPoint": 588, + "entryPoint": 1260, "id": null, "parameterSlots": 1, "returnSlots": 0 @@ -123,7 +207,7 @@ { "ast": { "nodeType": "YulBlock", - "src": "0:2204:1", + "src": "0:5742:1", "statements": [ { "body": { @@ -439,131 +523,1180 @@ ], "returnVariables": [ { - "name": "value0", - "nodeType": "YulTypedName", - "src": "220:6:1", - "type": "" - }, - { - "name": "value1", + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "893:220:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "903:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "969:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "974:2:1", + "type": "", + "value": "26" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "910:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "910:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "903:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1075:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d", + "nodeType": "YulIdentifier", + "src": "986:88:1" + }, + "nodeType": "YulFunctionCall", + "src": "986:93:1" + }, + "nodeType": "YulExpressionStatement", + "src": "986:93:1" + }, + { + "nodeType": "YulAssignment", + "src": "1088:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1099:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1104:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1095:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1095:12:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1088:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "881:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "889:3:1", + "type": "" + } + ], + "src": "747:366:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1265:220:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1275:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1341:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1346:2:1", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1282:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "1282:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1275:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1447:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b", + "nodeType": "YulIdentifier", + "src": "1358:88:1" + }, + "nodeType": "YulFunctionCall", + "src": "1358:93:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1358:93:1" + }, + { + "nodeType": "YulAssignment", + "src": "1460:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1471:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1476:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1467:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1467:12:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1460:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1253:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1261:3:1", + "type": "" + } + ], + "src": "1119:366:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1637:220:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1647:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1713:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1718:2:1", + "type": "", + "value": "28" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1654:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "1654:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1647:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1819:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de", + "nodeType": "YulIdentifier", + "src": "1730:88:1" + }, + "nodeType": "YulFunctionCall", + "src": "1730:93:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1730:93:1" + }, + { + "nodeType": "YulAssignment", + "src": "1832:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1843:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1848:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1839:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1839:12:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1832:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1625:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1633:3:1", + "type": "" + } + ], + "src": "1491:366:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1955:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1965:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1977:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1988:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1973:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1973:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1965:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2039:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2052:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2063:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2048:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2048:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "2001:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "2001:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2001:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1927:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1939:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1950:4:1", + "type": "" + } + ], + "src": "1863:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2250:248:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2260:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2272:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2283:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2268:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2268:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2260:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2307:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2318:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2303:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2303:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2326:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2332:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2322:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2322:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2296:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2296:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2296:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "2352:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2486:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2360:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "2360:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2352:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2230:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2245:4:1", + "type": "" + } + ], + "src": "2079:419:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2675:248:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2685:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2697:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2708:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2693:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2693:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2685:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2732:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2743:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2728:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2728:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2751:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2757:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2747:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2747:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2721:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2721:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2721:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "2777:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2911:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2785:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "2785:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2777:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2655:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2670:4:1", + "type": "" + } + ], + "src": "2504:419:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3100:248:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3110:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3122:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3133:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3118:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3118:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3110:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3157:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3168:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3153:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3153:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3176:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3182:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3172:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3172:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3146:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3146:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3146:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "3202:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3336:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3210:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "3210:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3202:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3080:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3095:4:1", + "type": "" + } + ], + "src": "2929:419:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3394:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3404:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3420:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3414:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "3414:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "3404:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", "nodeType": "YulTypedName", - "src": "228:6:1", + "src": "3387:6:1", "type": "" } ], - "src": "152:474:1" + "src": "3354:75:1" }, { "body": { "nodeType": "YulBlock", - "src": "672:35:1", + "src": "3531:73:1", "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3548:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3553:6:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3541:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3541:19:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3541:19:1" + }, { "nodeType": "YulAssignment", - "src": "682:19:1", + "src": "3569:29:1", "value": { "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3588:3:1" + }, { "kind": "number", "nodeType": "YulLiteral", - "src": "698:2:1", + "src": "3593:4:1", "type": "", - "value": "64" + "value": "0x20" } ], "functionName": { - "name": "mload", + "name": "add", "nodeType": "YulIdentifier", - "src": "692:5:1" + "src": "3584:3:1" }, "nodeType": "YulFunctionCall", - "src": "692:9:1" + "src": "3584:14:1" }, "variableNames": [ { - "name": "memPtr", + "name": "updated_pos", "nodeType": "YulIdentifier", - "src": "682:6:1" + "src": "3569:11:1" } ] } ] }, - "name": "allocate_unbounded", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3503:3:1", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3508:6:1", + "type": "" + } + ], "returnVariables": [ { - "name": "memPtr", + "name": "updated_pos", "nodeType": "YulTypedName", - "src": "665:6:1", + "src": "3519:11:1", "type": "" } ], - "src": "632:75:1" + "src": "3435:169:1" }, { "body": { "nodeType": "YulBlock", - "src": "757:261:1", + "src": "3654:261:1", "statements": [ { "nodeType": "YulAssignment", - "src": "767:25:1", + "src": "3664:25:1", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "790:1:1" + "src": "3687:1:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "772:17:1" + "src": "3669:17:1" }, "nodeType": "YulFunctionCall", - "src": "772:20:1" + "src": "3669:20:1" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "767:1:1" + "src": "3664:1:1" } ] }, { "nodeType": "YulAssignment", - "src": "801:25:1", + "src": "3698:25:1", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "824:1:1" + "src": "3721:1:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "806:17:1" + "src": "3703:17:1" }, "nodeType": "YulFunctionCall", - "src": "806:20:1" + "src": "3703:20:1" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "801:1:1" + "src": "3698:1:1" } ] }, { "body": { "nodeType": "YulBlock", - "src": "964:22:1", + "src": "3861:22:1", "statements": [ { "expression": { @@ -571,13 +1704,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "966:16:1" + "src": "3863:16:1" }, "nodeType": "YulFunctionCall", - "src": "966:18:1" + "src": "3863:18:1" }, "nodeType": "YulExpressionStatement", - "src": "966:18:1" + "src": "3863:18:1" } ] }, @@ -586,72 +1719,72 @@ { "name": "x", "nodeType": "YulIdentifier", - "src": "885:1:1" + "src": "3782:1:1" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "892:66:1", + "src": "3789:66:1", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "960:1:1" + "src": "3857:1:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "888:3:1" + "src": "3785:3:1" }, "nodeType": "YulFunctionCall", - "src": "888:74:1" + "src": "3785:74:1" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "882:2:1" + "src": "3779:2:1" }, "nodeType": "YulFunctionCall", - "src": "882:81:1" + "src": "3779:81:1" }, "nodeType": "YulIf", - "src": "879:107:1" + "src": "3776:107:1" }, { "nodeType": "YulAssignment", - "src": "996:16:1", + "src": "3893:16:1", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "1007:1:1" + "src": "3904:1:1" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "1010:1:1" + "src": "3907:1:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "1003:3:1" + "src": "3900:3:1" }, "nodeType": "YulFunctionCall", - "src": "1003:9:1" + "src": "3900:9:1" }, "variableNames": [ { "name": "sum", "nodeType": "YulIdentifier", - "src": "996:3:1" + "src": "3893:3:1" } ] } @@ -663,13 +1796,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "744:1:1", + "src": "3641:1:1", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "747:1:1", + "src": "3644:1:1", "type": "" } ], @@ -677,75 +1810,75 @@ { "name": "sum", "nodeType": "YulTypedName", - "src": "753:3:1", + "src": "3650:3:1", "type": "" } ], - "src": "713:305:1" + "src": "3610:305:1" }, { "body": { "nodeType": "YulBlock", - "src": "1072:300:1", + "src": "3969:300:1", "statements": [ { "nodeType": "YulAssignment", - "src": "1082:25:1", + "src": "3979:25:1", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "1105:1:1" + "src": "4002:1:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "1087:17:1" + "src": "3984:17:1" }, "nodeType": "YulFunctionCall", - "src": "1087:20:1" + "src": "3984:20:1" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "1082:1:1" + "src": "3979:1:1" } ] }, { "nodeType": "YulAssignment", - "src": "1116:25:1", + "src": "4013:25:1", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "1139:1:1" + "src": "4036:1:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "1121:17:1" + "src": "4018:17:1" }, "nodeType": "YulFunctionCall", - "src": "1121:20:1" + "src": "4018:20:1" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "1116:1:1" + "src": "4013:1:1" } ] }, { "body": { "nodeType": "YulBlock", - "src": "1314:22:1", + "src": "4211:22:1", "statements": [ { "expression": { @@ -753,13 +1886,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "1316:16:1" + "src": "4213:16:1" }, "nodeType": "YulFunctionCall", - "src": "1316:18:1" + "src": "4213:18:1" }, "nodeType": "YulExpressionStatement", - "src": "1316:18:1" + "src": "4213:18:1" } ] }, @@ -772,106 +1905,106 @@ { "name": "x", "nodeType": "YulIdentifier", - "src": "1226:1:1" + "src": "4123:1:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "1219:6:1" + "src": "4116:6:1" }, "nodeType": "YulFunctionCall", - "src": "1219:9:1" + "src": "4116:9:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "1212:6:1" + "src": "4109:6:1" }, "nodeType": "YulFunctionCall", - "src": "1212:17:1" + "src": "4109:17:1" }, { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "1234:1:1" + "src": "4131:1:1" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "1241:66:1", + "src": "4138:66:1", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" }, { "name": "x", "nodeType": "YulIdentifier", - "src": "1309:1:1" + "src": "4206:1:1" } ], "functionName": { "name": "div", "nodeType": "YulIdentifier", - "src": "1237:3:1" + "src": "4134:3:1" }, "nodeType": "YulFunctionCall", - "src": "1237:74:1" + "src": "4134:74:1" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "1231:2:1" + "src": "4128:2:1" }, "nodeType": "YulFunctionCall", - "src": "1231:81:1" + "src": "4128:81:1" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "1208:3:1" + "src": "4105:3:1" }, "nodeType": "YulFunctionCall", - "src": "1208:105:1" + "src": "4105:105:1" }, "nodeType": "YulIf", - "src": "1205:131:1" + "src": "4102:131:1" }, { "nodeType": "YulAssignment", - "src": "1346:20:1", + "src": "4243:20:1", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "1361:1:1" + "src": "4258:1:1" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "1364:1:1" + "src": "4261:1:1" } ], "functionName": { "name": "mul", "nodeType": "YulIdentifier", - "src": "1357:3:1" + "src": "4254:3:1" }, "nodeType": "YulFunctionCall", - "src": "1357:9:1" + "src": "4254:9:1" }, "variableNames": [ { "name": "product", "nodeType": "YulIdentifier", - "src": "1346:7:1" + "src": "4243:7:1" } ] } @@ -883,13 +2016,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "1055:1:1", + "src": "3952:1:1", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "1058:1:1", + "src": "3955:1:1", "type": "" } ], @@ -897,30 +2030,95 @@ { "name": "product", "nodeType": "YulTypedName", - "src": "1064:7:1", + "src": "3961:7:1", + "type": "" + } + ], + "src": "3921:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4317:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4327:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4352:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4345:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4345:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4338:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4338:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4327:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4299:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4309:7:1", "type": "" } ], - "src": "1024:348:1" + "src": "4275:90:1" }, { "body": { "nodeType": "YulBlock", - "src": "1423:32:1", + "src": "4416:32:1", "statements": [ { "nodeType": "YulAssignment", - "src": "1433:16:1", + "src": "4426:16:1", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "1444:5:1" + "src": "4437:5:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "1433:7:1" + "src": "4426:7:1" } ] } @@ -932,7 +2130,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "1405:5:1", + "src": "4398:5:1", "type": "" } ], @@ -940,16 +2138,16 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "1415:7:1", + "src": "4408:7:1", "type": "" } ], - "src": "1378:77:1" + "src": "4371:77:1" }, { "body": { "nodeType": "YulBlock", - "src": "1489:152:1", + "src": "4482:152:1", "statements": [ { "expression": { @@ -957,14 +2155,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1506:1:1", + "src": "4499:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1509:77:1", + "src": "4502:77:1", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } @@ -972,13 +2170,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1499:6:1" + "src": "4492:6:1" }, "nodeType": "YulFunctionCall", - "src": "1499:88:1" + "src": "4492:88:1" }, "nodeType": "YulExpressionStatement", - "src": "1499:88:1" + "src": "4492:88:1" }, { "expression": { @@ -986,14 +2184,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1603:1:1", + "src": "4596:1:1", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1606:4:1", + "src": "4599:4:1", "type": "", "value": "0x01" } @@ -1001,13 +2199,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1596:6:1" + "src": "4589:6:1" }, "nodeType": "YulFunctionCall", - "src": "1596:15:1" + "src": "4589:15:1" }, "nodeType": "YulExpressionStatement", - "src": "1596:15:1" + "src": "4589:15:1" }, { "expression": { @@ -1015,14 +2213,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1627:1:1", + "src": "4620:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1630:4:1", + "src": "4623:4:1", "type": "", "value": "0x24" } @@ -1030,24 +2228,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "1620:6:1" + "src": "4613:6:1" }, "nodeType": "YulFunctionCall", - "src": "1620:15:1" + "src": "4613:15:1" }, "nodeType": "YulExpressionStatement", - "src": "1620:15:1" + "src": "4613:15:1" } ] }, "name": "panic_error_0x01", "nodeType": "YulFunctionDefinition", - "src": "1461:180:1" + "src": "4454:180:1" }, { "body": { "nodeType": "YulBlock", - "src": "1675:152:1", + "src": "4668:152:1", "statements": [ { "expression": { @@ -1055,14 +2253,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1692:1:1", + "src": "4685:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1695:77:1", + "src": "4688:77:1", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } @@ -1070,13 +2268,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1685:6:1" + "src": "4678:6:1" }, "nodeType": "YulFunctionCall", - "src": "1685:88:1" + "src": "4678:88:1" }, "nodeType": "YulExpressionStatement", - "src": "1685:88:1" + "src": "4678:88:1" }, { "expression": { @@ -1084,14 +2282,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1789:1:1", + "src": "4782:1:1", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1792:4:1", + "src": "4785:4:1", "type": "", "value": "0x11" } @@ -1099,13 +2297,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "1782:6:1" + "src": "4775:6:1" }, "nodeType": "YulFunctionCall", - "src": "1782:15:1" + "src": "4775:15:1" }, "nodeType": "YulExpressionStatement", - "src": "1782:15:1" + "src": "4775:15:1" }, { "expression": { @@ -1113,14 +2311,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1813:1:1", + "src": "4806:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1816:4:1", + "src": "4809:4:1", "type": "", "value": "0x24" } @@ -1128,24 +2326,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "1806:6:1" + "src": "4799:6:1" }, "nodeType": "YulFunctionCall", - "src": "1806:15:1" + "src": "4799:15:1" }, "nodeType": "YulExpressionStatement", - "src": "1806:15:1" + "src": "4799:15:1" } ] }, "name": "panic_error_0x11", "nodeType": "YulFunctionDefinition", - "src": "1647:180:1" + "src": "4640:180:1" }, { "body": { "nodeType": "YulBlock", - "src": "1922:28:1", + "src": "4915:28:1", "statements": [ { "expression": { @@ -1153,14 +2351,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1939:1:1", + "src": "4932:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1942:1:1", + "src": "4935:1:1", "type": "", "value": "0" } @@ -1168,24 +2366,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "1932:6:1" + "src": "4925:6:1" }, "nodeType": "YulFunctionCall", - "src": "1932:12:1" + "src": "4925:12:1" }, "nodeType": "YulExpressionStatement", - "src": "1932:12:1" + "src": "4925:12:1" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", - "src": "1833:117:1" + "src": "4826:117:1" }, { "body": { "nodeType": "YulBlock", - "src": "2045:28:1", + "src": "5038:28:1", "statements": [ { "expression": { @@ -1193,14 +2391,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2062:1:1", + "src": "5055:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2065:1:1", + "src": "5058:1:1", "type": "", "value": "0" } @@ -1208,29 +2406,224 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "2055:6:1" + "src": "5048:6:1" }, "nodeType": "YulFunctionCall", - "src": "2055:12:1" + "src": "5048:12:1" }, "nodeType": "YulExpressionStatement", - "src": "2055:12:1" + "src": "5048:12:1" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", - "src": "1956:117:1" + "src": "4949:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5178:70:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "5200:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5208:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5196:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5196:14:1" + }, + { + "hexValue": "312067776569206973206e6f7420657175616c20746f20316539", + "kind": "string", + "nodeType": "YulLiteral", + "src": "5212:28:1", + "type": "", + "value": "1 gwei is not equal to 1e9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5189:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5189:52:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5189:52:1" + } + ] + }, + "name": "store_literal_in_memory_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "5170:6:1", + "type": "" + } + ], + "src": "5072:176:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5360:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "5382:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5390:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5378:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5378:14:1" + }, + { + "hexValue": "3120776569206973206e6f7420657175616c20746f2031", + "kind": "string", + "nodeType": "YulLiteral", + "src": "5394:25:1", + "type": "", + "value": "1 wei is not equal to 1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5371:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5371:49:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5371:49:1" + } + ] + }, + "name": "store_literal_in_memory_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "5352:6:1", + "type": "" + } + ], + "src": "5254:173:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5539:72:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "5561:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5569:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5557:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5557:14:1" + }, + { + "hexValue": "31206574686572206973206e6f7420657175616c20746f2031653138", + "kind": "string", + "nodeType": "YulLiteral", + "src": "5573:30:1", + "type": "", + "value": "1 ether is not equal to 1e18" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5550:54:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5550:54:1" + } + ] + }, + "name": "store_literal_in_memory_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "5531:6:1", + "type": "" + } + ], + "src": "5433:178:1" }, { "body": { "nodeType": "YulBlock", - "src": "2122:79:1", + "src": "5660:79:1", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "2179:16:1", + "src": "5717:16:1", "statements": [ { "expression": { @@ -1238,14 +2631,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2188:1:1", + "src": "5726:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2191:1:1", + "src": "5729:1:1", "type": "", "value": "0" } @@ -1253,13 +2646,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "2181:6:1" + "src": "5719:6:1" }, "nodeType": "YulFunctionCall", - "src": "2181:12:1" + "src": "5719:12:1" }, "nodeType": "YulExpressionStatement", - "src": "2181:12:1" + "src": "5719:12:1" } ] }, @@ -1270,44 +2663,44 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "2145:5:1" + "src": "5683:5:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "2170:5:1" + "src": "5708:5:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "2152:17:1" + "src": "5690:17:1" }, "nodeType": "YulFunctionCall", - "src": "2152:24:1" + "src": "5690:24:1" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "2142:2:1" + "src": "5680:2:1" }, "nodeType": "YulFunctionCall", - "src": "2142:35:1" + "src": "5680:35:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "2135:6:1" + "src": "5673:6:1" }, "nodeType": "YulFunctionCall", - "src": "2135:43:1" + "src": "5673:43:1" }, "nodeType": "YulIf", - "src": "2132:63:1" + "src": "5670:63:1" } ] }, @@ -1317,15 +2710,15 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "2115:5:1", + "src": "5653:5:1", "type": "" } ], - "src": "2079:122:1" + "src": "5617:122:1" } ] }, - "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n store_literal_in_memory_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function store_literal_in_memory_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d(memPtr) {\n\n mstore(add(memPtr, 0), \"1 gwei is not equal to 1e9\")\n\n }\n\n function store_literal_in_memory_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b(memPtr) {\n\n mstore(add(memPtr, 0), \"1 wei is not equal to 1\")\n\n }\n\n function store_literal_in_memory_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de(memPtr) {\n\n mstore(add(memPtr, 0), \"1 ether is not equal to 1e18\")\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", "id": 1, "language": "Yul", "name": "#utility.yul" @@ -1333,30 +2726,39 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c806319730b441461003b5780639b92a9e814610057575b600080fd5b610055600480360381019061005091906100ef565b610061565b005b61005f61007e565b005b60038161006e9190610185565b82610079919061012f565b505050565b6001801461008f5761008e6101e9565b5b603c80146100a05761009f6101e9565b5b610e1080146100b2576100b16101e9565b5b6201518080146100c5576100c46101e9565b5b62093a8080146100d8576100d76101e9565b5b565b6000813590506100e98161024c565b92915050565b6000806040838503121561010657610105610247565b5b6000610114858286016100da565b9250506020610125858286016100da565b9150509250929050565b600061013a826101df565b9150610145836101df565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561017a57610179610218565b5b828201905092915050565b6000610190826101df565b915061019b836101df565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156101d4576101d3610218565b5b828202905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b610255816101df565b811461026057600080fd5b5056fea2646970667358221220eff1b74e49e8309f18b3ea4b265d436e4695c331ee99a01c4e1a14bf37c074e464736f6c63430008070033", - "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 0x19730B44 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x9B92A9E8 EQ PUSH2 0x57 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xEF JUMP JUMPDEST PUSH2 0x61 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5F PUSH2 0x7E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 DUP2 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x185 JUMP JUMPDEST DUP3 PUSH2 0x79 SWAP2 SWAP1 PUSH2 0x12F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x8F JUMPI PUSH2 0x8E PUSH2 0x1E9 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xA0 JUMPI PUSH2 0x9F PUSH2 0x1E9 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xB2 JUMPI PUSH2 0xB1 PUSH2 0x1E9 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0xC5 JUMPI PUSH2 0xC4 PUSH2 0x1E9 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0xD8 JUMPI PUSH2 0xD7 PUSH2 0x1E9 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE9 DUP2 PUSH2 0x24C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x106 JUMPI PUSH2 0x105 PUSH2 0x247 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x114 DUP6 DUP3 DUP7 ADD PUSH2 0xDA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x125 DUP6 DUP3 DUP7 ADD PUSH2 0xDA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13A DUP3 PUSH2 0x1DF JUMP JUMPDEST SWAP2 POP PUSH2 0x145 DUP4 PUSH2 0x1DF JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x17A JUMPI PUSH2 0x179 PUSH2 0x218 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x190 DUP3 PUSH2 0x1DF JUMP JUMPDEST SWAP2 POP PUSH2 0x19B DUP4 PUSH2 0x1DF JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1D4 JUMPI PUSH2 0x1D3 PUSH2 0x218 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x255 DUP2 PUSH2 0x1DF JUMP JUMPDEST DUP2 EQ PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEF CALL 0xB7 0x4E 0x49 0xE8 ADDRESS SWAP16 XOR 0xB3 0xEA 0x4B 0x26 0x5D NUMBER PUSH15 0x4695C331EE99A01C4E1A14BF37C074 0xE4 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", - "sourceMap": "60:633:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;461:229;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;84:369;;;:::i;:::-;;461:229;640:9;625:12;:24;;;;:::i;:::-;617:5;:32;;;;:::i;:::-;598:51;461:229;;:::o;84:369::-;171:1;158:9;:14;151:22;;;;:::i;:::-;;234:10;221:9;:23;214:31;;;;:::i;:::-;;307:10;296:7;:21;289:29;;;;:::i;:::-;;374:8;364:6;:18;357:26;;;;:::i;:::-;;438:6;427:7;:17;420:25;;;;:::i;:::-;;84:369::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;713:305::-;753:3;772:20;790:1;772:20;:::i;:::-;767:25;;806:20;824:1;806:20;:::i;:::-;801:25;;960:1;892:66;888:74;885:1;882:81;879:107;;;966:18;;:::i;:::-;879:107;1010:1;1007;1003:9;996:16;;713:305;;;;:::o;1024:348::-;1064:7;1087:20;1105:1;1087:20;:::i;:::-;1082:25;;1121:20;1139:1;1121:20;:::i;:::-;1116:25;;1309:1;1241:66;1237:74;1234:1;1231:81;1226:1;1219:9;1212:17;1208:105;1205:131;;;1316:18;;:::i;:::-;1205:131;1364:1;1361;1357:9;1346:20;;1024:348;;;;:::o;1378:77::-;1415:7;1444:5;1433:16;;1378:77;;;:::o;1461:180::-;1509:77;1506:1;1499:88;1606:4;1603:1;1596:15;1630:4;1627:1;1620:15;1647:180;1695:77;1692:1;1685:88;1792:4;1789:1;1782:15;1816:4;1813:1;1806:15;1956:117;2065:1;2062;2055:12;2079:122;2152:24;2170:5;2152:24;:::i;:::-;2145:5;2142:35;2132:63;;2191:1;2188;2181:12;2132:63;2079:122;:::o" + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610204565b61008a565b60405161006d91906102bc565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061039e565b846100a99190610348565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61040e565b5b603c80146100e0576100df61040e565b5b610e1080146100f2576100f161040e565b5b6201518080146101055761010461040e565b5b62093a8080146101185761011761040e565b5b565b6001801461015d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610154906102f7565b60405180910390fd5b633b9aca0080146101a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019a906102d7565b60405180910390fd5b670de0b6b3a764000080146101ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e490610317565b60405180910390fd5b565b6000813590506101fe816104ec565b92915050565b6000806040838503121561021b5761021a61046c565b5b6000610229858286016101ef565b925050602061023a858286016101ef565b9150509250929050565b61024d816103f8565b82525050565b6000610260601a83610337565b915061026b82610471565b602082019050919050565b6000610283601783610337565b915061028e8261049a565b602082019050919050565b60006102a6601c83610337565b91506102b1826104c3565b602082019050919050565b60006020820190506102d16000830184610244565b92915050565b600060208201905081810360008301526102f081610253565b9050919050565b6000602082019050818103600083015261031081610276565b9050919050565b6000602082019050818103600083015261033081610299565b9050919050565b600082825260208201905092915050565b600061035382610404565b915061035e83610404565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156103935761039261043d565b5b828201905092915050565b60006103a982610404565b91506103b483610404565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156103ed576103ec61043d565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b7f312067776569206973206e6f7420657175616c20746f20316539000000000000600082015250565b7f3120776569206973206e6f7420657175616c20746f2031000000000000000000600082015250565b7f31206574686572206973206e6f7420657175616c20746f203165313800000000600082015250565b6104f581610404565b811461050057600080fd5b5056fea264697066735822122090dbaeb36224b3aaf81b4d19d717dd3c704c9ed33440558c6268fb3f7fa867f564736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x204 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x2BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x39E JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x348 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x40E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x15D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154 SWAP1 PUSH2 0x2F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x1A3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19A SWAP1 PUSH2 0x2D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x1ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E4 SWAP1 PUSH2 0x317 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FE DUP2 PUSH2 0x4EC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21B JUMPI PUSH2 0x21A PUSH2 0x46C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x229 DUP6 DUP3 DUP7 ADD PUSH2 0x1EF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x23A DUP6 DUP3 DUP7 ADD PUSH2 0x1EF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x24D DUP2 PUSH2 0x3F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x260 PUSH1 0x1A DUP4 PUSH2 0x337 JUMP JUMPDEST SWAP2 POP PUSH2 0x26B DUP3 PUSH2 0x471 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x283 PUSH1 0x17 DUP4 PUSH2 0x337 JUMP JUMPDEST SWAP2 POP PUSH2 0x28E DUP3 PUSH2 0x49A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A6 PUSH1 0x1C DUP4 PUSH2 0x337 JUMP JUMPDEST SWAP2 POP PUSH2 0x2B1 DUP3 PUSH2 0x4C3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2D1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x244 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2F0 DUP2 PUSH2 0x253 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x310 DUP2 PUSH2 0x276 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x330 DUP2 PUSH2 0x299 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x353 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0x35E DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x393 JUMPI PUSH2 0x392 PUSH2 0x43D JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A9 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0x3B4 DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x3ED JUMPI PUSH2 0x3EC PUSH2 0x43D JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x312067776569206973206E6F7420657175616C20746F20316539000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x3120776569206973206E6F7420657175616C20746F2031000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x31206574686572206973206E6F7420657175616C20746F203165313800000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x4F5 DUP2 PUSH2 0x404 JUMP JUMPDEST DUP2 EQ PUSH2 0x500 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP1 0xDB 0xAE 0xB3 PUSH3 0x24B3AA 0xF8 SHL 0x4D NOT 0xD7 OR 0xDD EXTCODECOPY PUSH17 0x4C9ED33440558C6268FB3F7FA867F56473 PUSH16 0x6C634300080700330000000000000000 ", + "sourceMap": "62:1232:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;837:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;460:369;;;:::i;:::-;;86:366;;;:::i;:::-;;837:454;906:4;923:16;942:5;923:24;;1189:9;1174:12;:24;;;;:::i;:::-;1166:5;:32;;;;:::i;:::-;1147:15;:51;1143:102;;1229:4;1215:18;;1143:102;1272:11;1265:18;;;837:454;;;;:::o;460:369::-;547:1;534:9;:14;527:22;;;;:::i;:::-;;610:10;597:9;:23;590:31;;;;:::i;:::-;;683:10;672:7;:21;665:29;;;;:::i;:::-;;750:8;740:6;:18;733:26;;;;:::i;:::-;;814:6;803:7;:17;796:25;;;;:::i;:::-;;460:369::o;86:366::-;199:1;190:5;:10;182:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;299:3;289:6;:13;281:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;407:4;396:7;:15;388:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;86:366::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:366::-;889:3;910:67;974:2;969:3;910:67;:::i;:::-;903:74;;986:93;1075:3;986:93;:::i;:::-;1104:2;1099:3;1095:12;1088:19;;747:366;;;:::o;1119:::-;1261:3;1282:67;1346:2;1341:3;1282:67;:::i;:::-;1275:74;;1358:93;1447:3;1358:93;:::i;:::-;1476:2;1471:3;1467:12;1460:19;;1119:366;;;:::o;1491:::-;1633:3;1654:67;1718:2;1713:3;1654:67;:::i;:::-;1647:74;;1730:93;1819:3;1730:93;:::i;:::-;1848:2;1843:3;1839:12;1832:19;;1491:366;;;:::o;1863:210::-;1950:4;1988:2;1977:9;1973:18;1965:26;;2001:65;2063:1;2052:9;2048:17;2039:6;2001:65;:::i;:::-;1863:210;;;;:::o;2079:419::-;2245:4;2283:2;2272:9;2268:18;2260:26;;2332:9;2326:4;2322:20;2318:1;2307:9;2303:17;2296:47;2360:131;2486:4;2360:131;:::i;:::-;2352:139;;2079:419;;;:::o;2504:::-;2670:4;2708:2;2697:9;2693:18;2685:26;;2757:9;2751:4;2747:20;2743:1;2732:9;2728:17;2721:47;2785:131;2911:4;2785:131;:::i;:::-;2777:139;;2504:419;;;:::o;2929:::-;3095:4;3133:2;3122:9;3118:18;3110:26;;3182:9;3176:4;3172:20;3168:1;3157:9;3153:17;3146:47;3210:131;3336:4;3210:131;:::i;:::-;3202:139;;2929:419;;;:::o;3435:169::-;3519:11;3553:6;3548:3;3541:19;3593:4;3588:3;3584:14;3569:29;;3435:169;;;;:::o;3610:305::-;3650:3;3669:20;3687:1;3669:20;:::i;:::-;3664:25;;3703:20;3721:1;3703:20;:::i;:::-;3698:25;;3857:1;3789:66;3785:74;3782:1;3779:81;3776:107;;;3863:18;;:::i;:::-;3776:107;3907:1;3904;3900:9;3893:16;;3610:305;;;;:::o;3921:348::-;3961:7;3984:20;4002:1;3984:20;:::i;:::-;3979:25;;4018:20;4036:1;4018:20;:::i;:::-;4013:25;;4206:1;4138:66;4134:74;4131:1;4128:81;4123:1;4116:9;4109:17;4105:105;4102:131;;;4213:18;;:::i;:::-;4102:131;4261:1;4258;4254:9;4243:20;;3921:348;;;;:::o;4275:90::-;4309:7;4352:5;4345:13;4338:21;4327:32;;4275:90;;;:::o;4371:77::-;4408:7;4437:5;4426:16;;4371:77;;;:::o;4454:180::-;4502:77;4499:1;4492:88;4599:4;4596:1;4589:15;4623:4;4620:1;4613:15;4640:180;4688:77;4685:1;4678:88;4785:4;4782:1;4775:15;4809:4;4806:1;4799:15;4949:117;5058:1;5055;5048:12;5072:176;5212:28;5208:1;5200:6;5196:14;5189:52;5072:176;:::o;5254:173::-;5394:25;5390:1;5382:6;5378:14;5371:49;5254:173;:::o;5433:178::-;5573:30;5569:1;5561:6;5557:14;5550:54;5433:178;:::o;5617:122::-;5690:24;5708:5;5690:24;:::i;:::-;5683:5;5680:35;5670:63;;5729:1;5726;5719:12;5670:63;5617:122;:::o" }, "gasEstimates": { "creation": { - "codeDepositCost": "133000", - "executionCost": "177", - "totalCost": "133177" + "codeDepositCost": "267400", + "executionCost": "306", + "totalCost": "267706" }, "external": { - "TimeUnitExample()": "259", + "etherUnitExample()": "235", + "timeUnitExample()": "259", "validate(uint256,uint256)": "infinite" } }, "methodIdentifiers": { - "TimeUnitExample()": "9b92a9e8", + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", "validate(uint256,uint256)": "19730b44" } }, "abi": [ { "inputs": [], - "name": "TimeUnitExample", + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", "outputs": [], "stateMutability": "pure", "type": "function" @@ -1375,7 +2777,13 @@ } ], "name": "validate", - "outputs": [], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" } diff --git a/Ep4/artifacts/Example_metadata.json b/Ep4/artifacts/Example_metadata.json index ab58544..90c6658 100644 --- a/Ep4/artifacts/Example_metadata.json +++ b/Ep4/artifacts/Example_metadata.json @@ -7,7 +7,14 @@ "abi": [ { "inputs": [], - "name": "TimeUnitExample", + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", "outputs": [], "stateMutability": "pure", "type": "function" @@ -26,7 +33,13 @@ } ], "name": "validate", - "outputs": [], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" } @@ -59,11 +72,11 @@ }, "sources": { "Ep4/example.sol": { - "keccak256": "0xaaaf0bd1701e967d415272875a6ab929c351d4b7285eaf549db548748d240704", + "keccak256": "0xfb22ff62c5c287021c21322d7c1566db308335d288f0a406bf2ea9aa50874040", "license": "MIT", "urls": [ - "bzz-raw://d47ea5b8ee2214900c747f397c0e999aa872b3b577618abec9e86994a5adf90b", - "dweb:/ipfs/QmSGTQNi5JX2nBBc2t8bECoiXHUpneUTBnyRf1hTVtuJCf" + "bzz-raw://66bee589afbd187f8e4a6408ab8309f7d4a6386af71989eec227ef8bcc871f6c", + "dweb:/ipfs/QmXx8xMxAgzWvNNCaiEjJze9ouX8ep6xRbfZqkTRTGQxVp" ] } }, diff --git a/Ep4/artifacts/build-info/17d77c79db8b7f225eb294a8acf1127a.json b/Ep4/artifacts/build-info/17d77c79db8b7f225eb294a8acf1127a.json new file mode 100644 index 0000000..0335d52 --- /dev/null +++ b/Ep4/artifacts/build-info/17d77c79db8b7f225eb294a8acf1127a.json @@ -0,0 +1,9111 @@ +{ + "id": "17d77c79db8b7f225eb294a8acf1127a", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n function etherUnitExample() public pure {\r\n\r\n // wei是貨幣中的最小單位\r\n require(1 wei == 1, \"1 wei is not equal to 1\");\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n require(1 gwei == 1e9, \"1 gwei is not equal to 1e9\");\r\n\r\n // 1 ether is equal to 10^18 wei\r\n require(1 ether == 1e18, \"1 ether is not equal to 1e18\");\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1294 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1294 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":837:1291 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":460:829 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":86:452 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":837:1291 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":906:910 bool */\n 0x00\n /* \"Ep4/example.sol\":923:939 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":942:947 false */\n 0x00\n /* \"Ep4/example.sol\":923:947 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1189:1198 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1174:1186 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1174:1198 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1166:1171 start */\n dup5\n /* \"Ep4/example.sol\":1166:1198 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1147:1162 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1147:1198 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1143:1245 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1229:1233 true */\n 0x01\n /* \"Ep4/example.sol\":1215:1233 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1143:1245 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1272:1283 isValidated */\n dup1\n /* \"Ep4/example.sol\":1265:1283 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":837:1291 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":460:829 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":547:548 1 */\n 0x01\n /* \"Ep4/example.sol\":534:543 1 seconds */\n dup1\n /* \"Ep4/example.sol\":534:548 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":527:549 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":610:620 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":597:606 1 minutes */\n dup1\n /* \"Ep4/example.sol\":597:620 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":590:621 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":683:693 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":672:679 1 hours */\n dup1\n /* \"Ep4/example.sol\":672:693 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":665:694 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":750:758 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":740:746 1 days */\n dup1\n /* \"Ep4/example.sol\":740:758 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":733:759 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":814:820 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":803:810 1 weeks */\n dup1\n /* \"Ep4/example.sol\":803:820 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":796:821 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":460:829 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":86:452 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":199:200 1 */\n 0x01\n /* \"Ep4/example.sol\":190:195 1 wei */\n dup1\n /* \"Ep4/example.sol\":190:200 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":182:228 require(1 wei == 1, \"1 wei is not equal to 1\") */\n tag_35\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_36\n swap1\n tag_37\n jump\t// in\n tag_36:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_35:\n /* \"Ep4/example.sol\":299:302 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":289:295 1 gwei */\n dup1\n /* \"Ep4/example.sol\":289:302 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":281:333 require(1 gwei == 1e9, \"1 gwei is not equal to 1e9\") */\n tag_38\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_39\n swap1\n tag_40\n jump\t// in\n tag_39:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_38:\n /* \"Ep4/example.sol\":407:411 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":396:403 1 ether */\n dup1\n /* \"Ep4/example.sol\":396:411 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":388:444 require(1 ether == 1e18, \"1 ether is not equal to 1e18\") */\n tag_41\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_42\n swap1\n tag_43\n jump\t// in\n tag_42:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_41:\n /* \"Ep4/example.sol\":86:452 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_45:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_47\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_48\n jump\t// in\n tag_47:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_50\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_51\n tag_52\n jump\t// in\n tag_51:\n /* \"#utility.yul\":245:364 */\n tag_50:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_53\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_45\n jump\t// in\n tag_53:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_54\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_45\n jump\t// in\n tag_54:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_55:\n /* \"#utility.yul\":713:734 */\n tag_57\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_58\n jump\t// in\n tag_57:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:1113 */\n tag_59:\n /* \"#utility.yul\":889:892 */\n 0x00\n /* \"#utility.yul\":910:977 */\n tag_61\n /* \"#utility.yul\":974:976 */\n 0x1a\n /* \"#utility.yul\":969:972 */\n dup4\n /* \"#utility.yul\":910:977 */\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":903:977 */\n swap2\n pop\n /* \"#utility.yul\":986:1079 */\n tag_63\n /* \"#utility.yul\":1075:1078 */\n dup3\n /* \"#utility.yul\":986:1079 */\n tag_64\n jump\t// in\n tag_63:\n /* \"#utility.yul\":1104:1106 */\n 0x20\n /* \"#utility.yul\":1099:1102 */\n dup3\n /* \"#utility.yul\":1095:1107 */\n add\n /* \"#utility.yul\":1088:1107 */\n swap1\n pop\n /* \"#utility.yul\":747:1113 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1119:1485 */\n tag_65:\n /* \"#utility.yul\":1261:1264 */\n 0x00\n /* \"#utility.yul\":1282:1349 */\n tag_67\n /* \"#utility.yul\":1346:1348 */\n 0x17\n /* \"#utility.yul\":1341:1344 */\n dup4\n /* \"#utility.yul\":1282:1349 */\n tag_62\n jump\t// in\n tag_67:\n /* \"#utility.yul\":1275:1349 */\n swap2\n pop\n /* \"#utility.yul\":1358:1451 */\n tag_68\n /* \"#utility.yul\":1447:1450 */\n dup3\n /* \"#utility.yul\":1358:1451 */\n tag_69\n jump\t// in\n tag_68:\n /* \"#utility.yul\":1476:1478 */\n 0x20\n /* \"#utility.yul\":1471:1474 */\n dup3\n /* \"#utility.yul\":1467:1479 */\n add\n /* \"#utility.yul\":1460:1479 */\n swap1\n pop\n /* \"#utility.yul\":1119:1485 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1491:1857 */\n tag_70:\n /* \"#utility.yul\":1633:1636 */\n 0x00\n /* \"#utility.yul\":1654:1721 */\n tag_72\n /* \"#utility.yul\":1718:1720 */\n 0x1c\n /* \"#utility.yul\":1713:1716 */\n dup4\n /* \"#utility.yul\":1654:1721 */\n tag_62\n jump\t// in\n tag_72:\n /* \"#utility.yul\":1647:1721 */\n swap2\n pop\n /* \"#utility.yul\":1730:1823 */\n tag_73\n /* \"#utility.yul\":1819:1822 */\n dup3\n /* \"#utility.yul\":1730:1823 */\n tag_74\n jump\t// in\n tag_73:\n /* \"#utility.yul\":1848:1850 */\n 0x20\n /* \"#utility.yul\":1843:1846 */\n dup3\n /* \"#utility.yul\":1839:1851 */\n add\n /* \"#utility.yul\":1832:1851 */\n swap1\n pop\n /* \"#utility.yul\":1491:1857 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1863:2073 */\n tag_11:\n /* \"#utility.yul\":1950:1954 */\n 0x00\n /* \"#utility.yul\":1988:1990 */\n 0x20\n /* \"#utility.yul\":1977:1986 */\n dup3\n /* \"#utility.yul\":1973:1991 */\n add\n /* \"#utility.yul\":1965:1991 */\n swap1\n pop\n /* \"#utility.yul\":2001:2066 */\n tag_76\n /* \"#utility.yul\":2063:2064 */\n 0x00\n /* \"#utility.yul\":2052:2061 */\n dup4\n /* \"#utility.yul\":2048:2065 */\n add\n /* \"#utility.yul\":2039:2045 */\n dup5\n /* \"#utility.yul\":2001:2066 */\n tag_55\n jump\t// in\n tag_76:\n /* \"#utility.yul\":1863:2073 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2079:2498 */\n tag_40:\n /* \"#utility.yul\":2245:2249 */\n 0x00\n /* \"#utility.yul\":2283:2285 */\n 0x20\n /* \"#utility.yul\":2272:2281 */\n dup3\n /* \"#utility.yul\":2268:2286 */\n add\n /* \"#utility.yul\":2260:2286 */\n swap1\n pop\n /* \"#utility.yul\":2332:2341 */\n dup2\n /* \"#utility.yul\":2326:2330 */\n dup2\n /* \"#utility.yul\":2322:2342 */\n sub\n /* \"#utility.yul\":2318:2319 */\n 0x00\n /* \"#utility.yul\":2307:2316 */\n dup4\n /* \"#utility.yul\":2303:2320 */\n add\n /* \"#utility.yul\":2296:2343 */\n mstore\n /* \"#utility.yul\":2360:2491 */\n tag_78\n /* \"#utility.yul\":2486:2490 */\n dup2\n /* \"#utility.yul\":2360:2491 */\n tag_59\n jump\t// in\n tag_78:\n /* \"#utility.yul\":2352:2491 */\n swap1\n pop\n /* \"#utility.yul\":2079:2498 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2504:2923 */\n tag_37:\n /* \"#utility.yul\":2670:2674 */\n 0x00\n /* \"#utility.yul\":2708:2710 */\n 0x20\n /* \"#utility.yul\":2697:2706 */\n dup3\n /* \"#utility.yul\":2693:2711 */\n add\n /* \"#utility.yul\":2685:2711 */\n swap1\n pop\n /* \"#utility.yul\":2757:2766 */\n dup2\n /* \"#utility.yul\":2751:2755 */\n dup2\n /* \"#utility.yul\":2747:2767 */\n sub\n /* \"#utility.yul\":2743:2744 */\n 0x00\n /* \"#utility.yul\":2732:2741 */\n dup4\n /* \"#utility.yul\":2728:2745 */\n add\n /* \"#utility.yul\":2721:2768 */\n mstore\n /* \"#utility.yul\":2785:2916 */\n tag_80\n /* \"#utility.yul\":2911:2915 */\n dup2\n /* \"#utility.yul\":2785:2916 */\n tag_65\n jump\t// in\n tag_80:\n /* \"#utility.yul\":2777:2916 */\n swap1\n pop\n /* \"#utility.yul\":2504:2923 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2929:3348 */\n tag_43:\n /* \"#utility.yul\":3095:3099 */\n 0x00\n /* \"#utility.yul\":3133:3135 */\n 0x20\n /* \"#utility.yul\":3122:3131 */\n dup3\n /* \"#utility.yul\":3118:3136 */\n add\n /* \"#utility.yul\":3110:3136 */\n swap1\n pop\n /* \"#utility.yul\":3182:3191 */\n dup2\n /* \"#utility.yul\":3176:3180 */\n dup2\n /* \"#utility.yul\":3172:3192 */\n sub\n /* \"#utility.yul\":3168:3169 */\n 0x00\n /* \"#utility.yul\":3157:3166 */\n dup4\n /* \"#utility.yul\":3153:3170 */\n add\n /* \"#utility.yul\":3146:3193 */\n mstore\n /* \"#utility.yul\":3210:3341 */\n tag_82\n /* \"#utility.yul\":3336:3340 */\n dup2\n /* \"#utility.yul\":3210:3341 */\n tag_70\n jump\t// in\n tag_82:\n /* \"#utility.yul\":3202:3341 */\n swap1\n pop\n /* \"#utility.yul\":2929:3348 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3435:3604 */\n tag_62:\n /* \"#utility.yul\":3519:3530 */\n 0x00\n /* \"#utility.yul\":3553:3559 */\n dup3\n /* \"#utility.yul\":3548:3551 */\n dup3\n /* \"#utility.yul\":3541:3560 */\n mstore\n /* \"#utility.yul\":3593:3597 */\n 0x20\n /* \"#utility.yul\":3588:3591 */\n dup3\n /* \"#utility.yul\":3584:3598 */\n add\n /* \"#utility.yul\":3569:3598 */\n swap1\n pop\n /* \"#utility.yul\":3435:3604 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3610:3915 */\n tag_20:\n /* \"#utility.yul\":3650:3653 */\n 0x00\n /* \"#utility.yul\":3669:3689 */\n tag_87\n /* \"#utility.yul\":3687:3688 */\n dup3\n /* \"#utility.yul\":3669:3689 */\n tag_88\n jump\t// in\n tag_87:\n /* \"#utility.yul\":3664:3689 */\n swap2\n pop\n /* \"#utility.yul\":3703:3723 */\n tag_89\n /* \"#utility.yul\":3721:3722 */\n dup4\n /* \"#utility.yul\":3703:3723 */\n tag_88\n jump\t// in\n tag_89:\n /* \"#utility.yul\":3698:3723 */\n swap3\n pop\n /* \"#utility.yul\":3857:3858 */\n dup3\n /* \"#utility.yul\":3789:3855 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":3785:3859 */\n sub\n /* \"#utility.yul\":3782:3783 */\n dup3\n /* \"#utility.yul\":3779:3860 */\n gt\n /* \"#utility.yul\":3776:3883 */\n iszero\n tag_90\n jumpi\n /* \"#utility.yul\":3863:3881 */\n tag_91\n tag_92\n jump\t// in\n tag_91:\n /* \"#utility.yul\":3776:3883 */\n tag_90:\n /* \"#utility.yul\":3907:3908 */\n dup3\n /* \"#utility.yul\":3904:3905 */\n dup3\n /* \"#utility.yul\":3900:3909 */\n add\n /* \"#utility.yul\":3893:3909 */\n swap1\n pop\n /* \"#utility.yul\":3610:3915 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3921:4269 */\n tag_18:\n /* \"#utility.yul\":3961:3968 */\n 0x00\n /* \"#utility.yul\":3984:4004 */\n tag_94\n /* \"#utility.yul\":4002:4003 */\n dup3\n /* \"#utility.yul\":3984:4004 */\n tag_88\n jump\t// in\n tag_94:\n /* \"#utility.yul\":3979:4004 */\n swap2\n pop\n /* \"#utility.yul\":4018:4038 */\n tag_95\n /* \"#utility.yul\":4036:4037 */\n dup4\n /* \"#utility.yul\":4018:4038 */\n tag_88\n jump\t// in\n tag_95:\n /* \"#utility.yul\":4013:4038 */\n swap3\n pop\n /* \"#utility.yul\":4206:4207 */\n dup2\n /* \"#utility.yul\":4138:4204 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":4134:4208 */\n div\n /* \"#utility.yul\":4131:4132 */\n dup4\n /* \"#utility.yul\":4128:4209 */\n gt\n /* \"#utility.yul\":4123:4124 */\n dup3\n /* \"#utility.yul\":4116:4125 */\n iszero\n /* \"#utility.yul\":4109:4126 */\n iszero\n /* \"#utility.yul\":4105:4210 */\n and\n /* \"#utility.yul\":4102:4233 */\n iszero\n tag_96\n jumpi\n /* \"#utility.yul\":4213:4231 */\n tag_97\n tag_92\n jump\t// in\n tag_97:\n /* \"#utility.yul\":4102:4233 */\n tag_96:\n /* \"#utility.yul\":4261:4262 */\n dup3\n /* \"#utility.yul\":4258:4259 */\n dup3\n /* \"#utility.yul\":4254:4263 */\n mul\n /* \"#utility.yul\":4243:4263 */\n swap1\n pop\n /* \"#utility.yul\":3921:4269 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4275:4365 */\n tag_58:\n /* \"#utility.yul\":4309:4316 */\n 0x00\n /* \"#utility.yul\":4352:4357 */\n dup2\n /* \"#utility.yul\":4345:4358 */\n iszero\n /* \"#utility.yul\":4338:4359 */\n iszero\n /* \"#utility.yul\":4327:4359 */\n swap1\n pop\n /* \"#utility.yul\":4275:4365 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4371:4448 */\n tag_88:\n /* \"#utility.yul\":4408:4415 */\n 0x00\n /* \"#utility.yul\":4437:4442 */\n dup2\n /* \"#utility.yul\":4426:4442 */\n swap1\n pop\n /* \"#utility.yul\":4371:4448 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4454:4634 */\n tag_25:\n /* \"#utility.yul\":4502:4579 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":4499:4500 */\n 0x00\n /* \"#utility.yul\":4492:4580 */\n mstore\n /* \"#utility.yul\":4599:4603 */\n 0x01\n /* \"#utility.yul\":4596:4597 */\n 0x04\n /* \"#utility.yul\":4589:4604 */\n mstore\n /* \"#utility.yul\":4623:4627 */\n 0x24\n /* \"#utility.yul\":4620:4621 */\n 0x00\n /* \"#utility.yul\":4613:4628 */\n revert\n /* \"#utility.yul\":4640:4820 */\n tag_92:\n /* \"#utility.yul\":4688:4765 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":4685:4686 */\n 0x00\n /* \"#utility.yul\":4678:4766 */\n mstore\n /* \"#utility.yul\":4785:4789 */\n 0x11\n /* \"#utility.yul\":4782:4783 */\n 0x04\n /* \"#utility.yul\":4775:4790 */\n mstore\n /* \"#utility.yul\":4809:4813 */\n 0x24\n /* \"#utility.yul\":4806:4807 */\n 0x00\n /* \"#utility.yul\":4799:4814 */\n revert\n /* \"#utility.yul\":4949:5066 */\n tag_52:\n /* \"#utility.yul\":5058:5059 */\n 0x00\n /* \"#utility.yul\":5055:5056 */\n dup1\n /* \"#utility.yul\":5048:5060 */\n revert\n /* \"#utility.yul\":5072:5248 */\n tag_64:\n /* \"#utility.yul\":5212:5240 */\n 0x312067776569206973206e6f7420657175616c20746f20316539000000000000\n /* \"#utility.yul\":5208:5209 */\n 0x00\n /* \"#utility.yul\":5200:5206 */\n dup3\n /* \"#utility.yul\":5196:5210 */\n add\n /* \"#utility.yul\":5189:5241 */\n mstore\n /* \"#utility.yul\":5072:5248 */\n pop\n jump\t// out\n /* \"#utility.yul\":5254:5427 */\n tag_69:\n /* \"#utility.yul\":5394:5419 */\n 0x3120776569206973206e6f7420657175616c20746f2031000000000000000000\n /* \"#utility.yul\":5390:5391 */\n 0x00\n /* \"#utility.yul\":5382:5388 */\n dup3\n /* \"#utility.yul\":5378:5392 */\n add\n /* \"#utility.yul\":5371:5420 */\n mstore\n /* \"#utility.yul\":5254:5427 */\n pop\n jump\t// out\n /* \"#utility.yul\":5433:5611 */\n tag_74:\n /* \"#utility.yul\":5573:5603 */\n 0x31206574686572206973206e6f7420657175616c20746f203165313800000000\n /* \"#utility.yul\":5569:5570 */\n 0x00\n /* \"#utility.yul\":5561:5567 */\n dup3\n /* \"#utility.yul\":5557:5571 */\n add\n /* \"#utility.yul\":5550:5604 */\n mstore\n /* \"#utility.yul\":5433:5611 */\n pop\n jump\t// out\n /* \"#utility.yul\":5617:5739 */\n tag_48:\n /* \"#utility.yul\":5690:5714 */\n tag_109\n /* \"#utility.yul\":5708:5713 */\n dup2\n /* \"#utility.yul\":5690:5714 */\n tag_88\n jump\t// in\n tag_109:\n /* \"#utility.yul\":5683:5688 */\n dup2\n /* \"#utility.yul\":5680:5715 */\n eq\n /* \"#utility.yul\":5670:5733 */\n tag_110\n jumpi\n /* \"#utility.yul\":5729:5730 */\n 0x00\n /* \"#utility.yul\":5726:5727 */\n dup1\n /* \"#utility.yul\":5719:5731 */\n revert\n /* \"#utility.yul\":5670:5733 */\n tag_110:\n /* \"#utility.yul\":5617:5739 */\n pop\n jump\t// out\n\n auxdata: 0xa264697066735822122090dbaeb36224b3aaf81b4d19d717dd3c704c9ed33440558c6268fb3f7fa867f564736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610539806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610204565b61008a565b60405161006d91906102bc565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061039e565b846100a99190610348565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61040e565b5b603c80146100e0576100df61040e565b5b610e1080146100f2576100f161040e565b5b6201518080146101055761010461040e565b5b62093a8080146101185761011761040e565b5b565b6001801461015d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610154906102f7565b60405180910390fd5b633b9aca0080146101a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019a906102d7565b60405180910390fd5b670de0b6b3a764000080146101ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e490610317565b60405180910390fd5b565b6000813590506101fe816104ec565b92915050565b6000806040838503121561021b5761021a61046c565b5b6000610229858286016101ef565b925050602061023a858286016101ef565b9150509250929050565b61024d816103f8565b82525050565b6000610260601a83610337565b915061026b82610471565b602082019050919050565b6000610283601783610337565b915061028e8261049a565b602082019050919050565b60006102a6601c83610337565b91506102b1826104c3565b602082019050919050565b60006020820190506102d16000830184610244565b92915050565b600060208201905081810360008301526102f081610253565b9050919050565b6000602082019050818103600083015261031081610276565b9050919050565b6000602082019050818103600083015261033081610299565b9050919050565b600082825260208201905092915050565b600061035382610404565b915061035e83610404565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156103935761039261043d565b5b828201905092915050565b60006103a982610404565b91506103b483610404565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156103ed576103ec61043d565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b7f312067776569206973206e6f7420657175616c20746f20316539000000000000600082015250565b7f3120776569206973206e6f7420657175616c20746f2031000000000000000000600082015250565b7f31206574686572206973206e6f7420657175616c20746f203165313800000000600082015250565b6104f581610404565b811461050057600080fd5b5056fea264697066735822122090dbaeb36224b3aaf81b4d19d717dd3c704c9ed33440558c6268fb3f7fa867f564736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x539 DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x204 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x2BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x39E JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x348 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x40E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x15D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154 SWAP1 PUSH2 0x2F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x1A3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19A SWAP1 PUSH2 0x2D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x1ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E4 SWAP1 PUSH2 0x317 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FE DUP2 PUSH2 0x4EC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21B JUMPI PUSH2 0x21A PUSH2 0x46C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x229 DUP6 DUP3 DUP7 ADD PUSH2 0x1EF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x23A DUP6 DUP3 DUP7 ADD PUSH2 0x1EF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x24D DUP2 PUSH2 0x3F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x260 PUSH1 0x1A DUP4 PUSH2 0x337 JUMP JUMPDEST SWAP2 POP PUSH2 0x26B DUP3 PUSH2 0x471 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x283 PUSH1 0x17 DUP4 PUSH2 0x337 JUMP JUMPDEST SWAP2 POP PUSH2 0x28E DUP3 PUSH2 0x49A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A6 PUSH1 0x1C DUP4 PUSH2 0x337 JUMP JUMPDEST SWAP2 POP PUSH2 0x2B1 DUP3 PUSH2 0x4C3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2D1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x244 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2F0 DUP2 PUSH2 0x253 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x310 DUP2 PUSH2 0x276 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x330 DUP2 PUSH2 0x299 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x353 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0x35E DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x393 JUMPI PUSH2 0x392 PUSH2 0x43D JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A9 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0x3B4 DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x3ED JUMPI PUSH2 0x3EC PUSH2 0x43D JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x312067776569206973206E6F7420657175616C20746F20316539000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x3120776569206973206E6F7420657175616C20746F2031000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x31206574686572206973206E6F7420657175616C20746F203165313800000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x4F5 DUP2 PUSH2 0x404 JUMP JUMPDEST DUP2 EQ PUSH2 0x500 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP1 0xDB 0xAE 0xB3 PUSH3 0x24B3AA 0xF8 SHL 0x4D NOT 0xD7 OR 0xDD EXTCODECOPY PUSH17 0x4C9ED33440558C6268FB3F7FA867F56473 PUSH16 0x6C634300080700330000000000000000 ", + "sourceMap": "62:1232:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_26": { + "entryPoint": 282, + "id": 26, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_60": { + "entryPoint": 190, + "id": 60, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_90": { + "entryPoint": 138, + "id": 90, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 495, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 516, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 580, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d_to_t_string_memory_ptr_fromStack": { + "entryPoint": 595, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b_to_t_string_memory_ptr_fromStack": { + "entryPoint": 630, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de_to_t_string_memory_ptr_fromStack": { + "entryPoint": 665, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 700, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 727, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 759, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 791, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 823, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 840, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 926, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 1016, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 1028, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 1038, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 1085, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 1132, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "store_literal_in_memory_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d": { + "entryPoint": 1137, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b": { + "entryPoint": 1178, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de": { + "entryPoint": 1219, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 1260, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5742:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "893:220:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "903:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "969:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "974:2:1", + "type": "", + "value": "26" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "910:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "910:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "903:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1075:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d", + "nodeType": "YulIdentifier", + "src": "986:88:1" + }, + "nodeType": "YulFunctionCall", + "src": "986:93:1" + }, + "nodeType": "YulExpressionStatement", + "src": "986:93:1" + }, + { + "nodeType": "YulAssignment", + "src": "1088:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1099:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1104:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1095:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1095:12:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1088:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "881:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "889:3:1", + "type": "" + } + ], + "src": "747:366:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1265:220:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1275:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1341:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1346:2:1", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1282:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "1282:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1275:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1447:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b", + "nodeType": "YulIdentifier", + "src": "1358:88:1" + }, + "nodeType": "YulFunctionCall", + "src": "1358:93:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1358:93:1" + }, + { + "nodeType": "YulAssignment", + "src": "1460:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1471:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1476:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1467:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1467:12:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1460:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1253:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1261:3:1", + "type": "" + } + ], + "src": "1119:366:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1637:220:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1647:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1713:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1718:2:1", + "type": "", + "value": "28" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1654:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "1654:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1647:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1819:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de", + "nodeType": "YulIdentifier", + "src": "1730:88:1" + }, + "nodeType": "YulFunctionCall", + "src": "1730:93:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1730:93:1" + }, + { + "nodeType": "YulAssignment", + "src": "1832:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1843:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1848:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1839:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1839:12:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1832:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1625:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1633:3:1", + "type": "" + } + ], + "src": "1491:366:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1955:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1965:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1977:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1988:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1973:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1973:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1965:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2039:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2052:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2063:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2048:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2048:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "2001:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "2001:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2001:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1927:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1939:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1950:4:1", + "type": "" + } + ], + "src": "1863:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2250:248:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2260:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2272:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2283:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2268:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2268:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2260:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2307:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2318:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2303:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2303:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2326:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2332:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2322:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2322:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2296:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2296:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2296:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "2352:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2486:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2360:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "2360:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2352:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2230:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2245:4:1", + "type": "" + } + ], + "src": "2079:419:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2675:248:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2685:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2697:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2708:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2693:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2693:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2685:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2732:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2743:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2728:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2728:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2751:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2757:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2747:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2747:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2721:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2721:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2721:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "2777:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2911:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2785:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "2785:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2777:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2655:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2670:4:1", + "type": "" + } + ], + "src": "2504:419:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3100:248:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3110:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3122:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3133:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3118:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3118:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3110:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3157:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3168:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3153:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3153:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3176:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3182:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3172:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3172:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3146:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3146:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3146:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "3202:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3336:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3210:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "3210:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3202:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3080:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3095:4:1", + "type": "" + } + ], + "src": "2929:419:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3394:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3404:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3420:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3414:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "3414:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "3404:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "3387:6:1", + "type": "" + } + ], + "src": "3354:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3531:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3548:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3553:6:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3541:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3541:19:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3541:19:1" + }, + { + "nodeType": "YulAssignment", + "src": "3569:29:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3588:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3593:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3584:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3584:14:1" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "3569:11:1" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3503:3:1", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3508:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "3519:11:1", + "type": "" + } + ], + "src": "3435:169:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3654:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3664:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "3687:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3669:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "3669:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "3664:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3698:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "3721:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3703:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "3703:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "3698:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3861:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "3863:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "3863:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3863:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "3782:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3789:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "3857:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3785:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3785:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3779:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "3779:81:1" + }, + "nodeType": "YulIf", + "src": "3776:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "3893:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "3904:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "3907:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3900:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3900:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "3893:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "3641:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "3644:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "3650:3:1", + "type": "" + } + ], + "src": "3610:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3969:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3979:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4002:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3984:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "3984:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "3979:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4013:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4036:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4018:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "4018:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4013:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4211:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "4213:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "4213:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4213:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4123:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4116:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4116:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4109:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4109:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4131:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4138:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4206:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4134:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4134:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4128:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "4128:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4105:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4105:105:1" + }, + "nodeType": "YulIf", + "src": "4102:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "4243:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "4258:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "4261:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4254:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "4254:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "4243:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "3952:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "3955:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "3961:7:1", + "type": "" + } + ], + "src": "3921:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4317:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4327:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4352:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4345:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4345:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4338:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4338:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4327:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4299:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4309:7:1", + "type": "" + } + ], + "src": "4275:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4416:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4426:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4437:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4426:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4398:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4408:7:1", + "type": "" + } + ], + "src": "4371:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4482:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4499:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4502:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4492:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4492:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4492:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4596:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4599:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4589:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4589:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4589:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4620:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4623:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4613:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4613:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4613:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "4454:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4668:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4685:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4688:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4678:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4678:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4678:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4782:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4785:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4775:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4775:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4775:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4806:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4809:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4799:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4799:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4799:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "4640:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4915:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4932:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4935:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4925:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "4925:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "4925:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "4826:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5038:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5055:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5058:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5048:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5048:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5048:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "4949:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5178:70:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "5200:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5208:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5196:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5196:14:1" + }, + { + "hexValue": "312067776569206973206e6f7420657175616c20746f20316539", + "kind": "string", + "nodeType": "YulLiteral", + "src": "5212:28:1", + "type": "", + "value": "1 gwei is not equal to 1e9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5189:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5189:52:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5189:52:1" + } + ] + }, + "name": "store_literal_in_memory_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "5170:6:1", + "type": "" + } + ], + "src": "5072:176:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5360:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "5382:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5390:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5378:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5378:14:1" + }, + { + "hexValue": "3120776569206973206e6f7420657175616c20746f2031", + "kind": "string", + "nodeType": "YulLiteral", + "src": "5394:25:1", + "type": "", + "value": "1 wei is not equal to 1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5371:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5371:49:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5371:49:1" + } + ] + }, + "name": "store_literal_in_memory_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "5352:6:1", + "type": "" + } + ], + "src": "5254:173:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5539:72:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "5561:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5569:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5557:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "5557:14:1" + }, + { + "hexValue": "31206574686572206973206e6f7420657175616c20746f2031653138", + "kind": "string", + "nodeType": "YulLiteral", + "src": "5573:30:1", + "type": "", + "value": "1 ether is not equal to 1e18" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5550:54:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5550:54:1" + } + ] + }, + "name": "store_literal_in_memory_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "5531:6:1", + "type": "" + } + ], + "src": "5433:178:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5660:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5717:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5726:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5729:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5719:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5719:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "5719:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5683:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5708:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5690:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "5690:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "5680:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "5680:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5673:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "5673:43:1" + }, + "nodeType": "YulIf", + "src": "5670:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5653:5:1", + "type": "" + } + ], + "src": "5617:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n store_literal_in_memory_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function store_literal_in_memory_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d(memPtr) {\n\n mstore(add(memPtr, 0), \"1 gwei is not equal to 1e9\")\n\n }\n\n function store_literal_in_memory_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b(memPtr) {\n\n mstore(add(memPtr, 0), \"1 wei is not equal to 1\")\n\n }\n\n function store_literal_in_memory_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de(memPtr) {\n\n mstore(add(memPtr, 0), \"1 ether is not equal to 1e18\")\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610204565b61008a565b60405161006d91906102bc565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061039e565b846100a99190610348565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61040e565b5b603c80146100e0576100df61040e565b5b610e1080146100f2576100f161040e565b5b6201518080146101055761010461040e565b5b62093a8080146101185761011761040e565b5b565b6001801461015d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610154906102f7565b60405180910390fd5b633b9aca0080146101a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019a906102d7565b60405180910390fd5b670de0b6b3a764000080146101ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e490610317565b60405180910390fd5b565b6000813590506101fe816104ec565b92915050565b6000806040838503121561021b5761021a61046c565b5b6000610229858286016101ef565b925050602061023a858286016101ef565b9150509250929050565b61024d816103f8565b82525050565b6000610260601a83610337565b915061026b82610471565b602082019050919050565b6000610283601783610337565b915061028e8261049a565b602082019050919050565b60006102a6601c83610337565b91506102b1826104c3565b602082019050919050565b60006020820190506102d16000830184610244565b92915050565b600060208201905081810360008301526102f081610253565b9050919050565b6000602082019050818103600083015261031081610276565b9050919050565b6000602082019050818103600083015261033081610299565b9050919050565b600082825260208201905092915050565b600061035382610404565b915061035e83610404565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156103935761039261043d565b5b828201905092915050565b60006103a982610404565b91506103b483610404565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156103ed576103ec61043d565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b7f312067776569206973206e6f7420657175616c20746f20316539000000000000600082015250565b7f3120776569206973206e6f7420657175616c20746f2031000000000000000000600082015250565b7f31206574686572206973206e6f7420657175616c20746f203165313800000000600082015250565b6104f581610404565b811461050057600080fd5b5056fea264697066735822122090dbaeb36224b3aaf81b4d19d717dd3c704c9ed33440558c6268fb3f7fa867f564736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x204 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x2BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x39E JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x348 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x40E JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x40E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x15D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154 SWAP1 PUSH2 0x2F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x1A3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19A SWAP1 PUSH2 0x2D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x1ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E4 SWAP1 PUSH2 0x317 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FE DUP2 PUSH2 0x4EC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21B JUMPI PUSH2 0x21A PUSH2 0x46C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x229 DUP6 DUP3 DUP7 ADD PUSH2 0x1EF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x23A DUP6 DUP3 DUP7 ADD PUSH2 0x1EF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x24D DUP2 PUSH2 0x3F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x260 PUSH1 0x1A DUP4 PUSH2 0x337 JUMP JUMPDEST SWAP2 POP PUSH2 0x26B DUP3 PUSH2 0x471 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x283 PUSH1 0x17 DUP4 PUSH2 0x337 JUMP JUMPDEST SWAP2 POP PUSH2 0x28E DUP3 PUSH2 0x49A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A6 PUSH1 0x1C DUP4 PUSH2 0x337 JUMP JUMPDEST SWAP2 POP PUSH2 0x2B1 DUP3 PUSH2 0x4C3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2D1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x244 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2F0 DUP2 PUSH2 0x253 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x310 DUP2 PUSH2 0x276 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x330 DUP2 PUSH2 0x299 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x353 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0x35E DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x393 JUMPI PUSH2 0x392 PUSH2 0x43D JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A9 DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP PUSH2 0x3B4 DUP4 PUSH2 0x404 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x3ED JUMPI PUSH2 0x3EC PUSH2 0x43D JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x312067776569206973206E6F7420657175616C20746F20316539000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x3120776569206973206E6F7420657175616C20746F2031000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x31206574686572206973206E6F7420657175616C20746F203165313800000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x4F5 DUP2 PUSH2 0x404 JUMP JUMPDEST DUP2 EQ PUSH2 0x500 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP1 0xDB 0xAE 0xB3 PUSH3 0x24B3AA 0xF8 SHL 0x4D NOT 0xD7 OR 0xDD EXTCODECOPY PUSH17 0x4C9ED33440558C6268FB3F7FA867F56473 PUSH16 0x6C634300080700330000000000000000 ", + "sourceMap": "62:1232:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;837:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;460:369;;;:::i;:::-;;86:366;;;:::i;:::-;;837:454;906:4;923:16;942:5;923:24;;1189:9;1174:12;:24;;;;:::i;:::-;1166:5;:32;;;;:::i;:::-;1147:15;:51;1143:102;;1229:4;1215:18;;1143:102;1272:11;1265:18;;;837:454;;;;:::o;460:369::-;547:1;534:9;:14;527:22;;;;:::i;:::-;;610:10;597:9;:23;590:31;;;;:::i;:::-;;683:10;672:7;:21;665:29;;;;:::i;:::-;;750:8;740:6;:18;733:26;;;;:::i;:::-;;814:6;803:7;:17;796:25;;;;:::i;:::-;;460:369::o;86:366::-;199:1;190:5;:10;182:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;299:3;289:6;:13;281:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;407:4;396:7;:15;388:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;86:366::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:366::-;889:3;910:67;974:2;969:3;910:67;:::i;:::-;903:74;;986:93;1075:3;986:93;:::i;:::-;1104:2;1099:3;1095:12;1088:19;;747:366;;;:::o;1119:::-;1261:3;1282:67;1346:2;1341:3;1282:67;:::i;:::-;1275:74;;1358:93;1447:3;1358:93;:::i;:::-;1476:2;1471:3;1467:12;1460:19;;1119:366;;;:::o;1491:::-;1633:3;1654:67;1718:2;1713:3;1654:67;:::i;:::-;1647:74;;1730:93;1819:3;1730:93;:::i;:::-;1848:2;1843:3;1839:12;1832:19;;1491:366;;;:::o;1863:210::-;1950:4;1988:2;1977:9;1973:18;1965:26;;2001:65;2063:1;2052:9;2048:17;2039:6;2001:65;:::i;:::-;1863:210;;;;:::o;2079:419::-;2245:4;2283:2;2272:9;2268:18;2260:26;;2332:9;2326:4;2322:20;2318:1;2307:9;2303:17;2296:47;2360:131;2486:4;2360:131;:::i;:::-;2352:139;;2079:419;;;:::o;2504:::-;2670:4;2708:2;2697:9;2693:18;2685:26;;2757:9;2751:4;2747:20;2743:1;2732:9;2728:17;2721:47;2785:131;2911:4;2785:131;:::i;:::-;2777:139;;2504:419;;;:::o;2929:::-;3095:4;3133:2;3122:9;3118:18;3110:26;;3182:9;3176:4;3172:20;3168:1;3157:9;3153:17;3146:47;3210:131;3336:4;3210:131;:::i;:::-;3202:139;;2929:419;;;:::o;3435:169::-;3519:11;3553:6;3548:3;3541:19;3593:4;3588:3;3584:14;3569:29;;3435:169;;;;:::o;3610:305::-;3650:3;3669:20;3687:1;3669:20;:::i;:::-;3664:25;;3703:20;3721:1;3703:20;:::i;:::-;3698:25;;3857:1;3789:66;3785:74;3782:1;3779:81;3776:107;;;3863:18;;:::i;:::-;3776:107;3907:1;3904;3900:9;3893:16;;3610:305;;;;:::o;3921:348::-;3961:7;3984:20;4002:1;3984:20;:::i;:::-;3979:25;;4018:20;4036:1;4018:20;:::i;:::-;4013:25;;4206:1;4138:66;4134:74;4131:1;4128:81;4123:1;4116:9;4109:17;4105:105;4102:131;;;4213:18;;:::i;:::-;4102:131;4261:1;4258;4254:9;4243:20;;3921:348;;;;:::o;4275:90::-;4309:7;4352:5;4345:13;4338:21;4327:32;;4275:90;;;:::o;4371:77::-;4408:7;4437:5;4426:16;;4371:77;;;:::o;4454:180::-;4502:77;4499:1;4492:88;4599:4;4596:1;4589:15;4623:4;4620:1;4613:15;4640:180;4688:77;4685:1;4678:88;4785:4;4782:1;4775:15;4809:4;4806:1;4799:15;4949:117;5058:1;5055;5048:12;5072:176;5212:28;5208:1;5200:6;5196:14;5189:52;5072:176;:::o;5254:173::-;5394:25;5390:1;5382:6;5378:14;5371:49;5254:173;:::o;5433:178::-;5573:30;5569:1;5561:6;5557:14;5550:54;5433:178;:::o;5617:122::-;5690:24;5708:5;5690:24;:::i;:::-;5683:5;5680:35;5670:63;;5729:1;5726;5719:12;5670:63;5617:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "267400", + "executionCost": "306", + "totalCost": "267706" + }, + "external": { + "etherUnitExample()": "235", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1294, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1294, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1294, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1294, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1294, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1294, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1294, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a264697066735822122090dbaeb36224b3aaf81b4d19d717dd3c704c9ed33440558c6268fb3f7fa867f564736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1294, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1294, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1294, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1294, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1294, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1294, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1294, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1294, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1294, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1294, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1294, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1294, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1294, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1294, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1294, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1294, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1294, + "name": "REVERT", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 837, + "end": 1291, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 837, + "end": 1291, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 837, + "end": 1291, + "name": "DUP1", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "SUB", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "DUP2", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "ADD", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 837, + "end": 1291, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 837, + "end": 1291, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 837, + "end": 1291, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 837, + "end": 1291, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 837, + "end": 1291, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 837, + "end": 1291, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 837, + "end": 1291, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 837, + "end": 1291, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 837, + "end": 1291, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 837, + "end": 1291, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 837, + "end": 1291, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 837, + "end": 1291, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 837, + "end": 1291, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "DUP1", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "SUB", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "RETURN", + "source": 0 + }, + { + "begin": 460, + "end": 829, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 460, + "end": 829, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 460, + "end": 829, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 460, + "end": 829, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 460, + "end": 829, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 460, + "end": 829, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 460, + "end": 829, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 460, + "end": 829, + "name": "STOP", + "source": 0 + }, + { + "begin": 86, + "end": 452, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 86, + "end": 452, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 452, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 452, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 452, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 86, + "end": 452, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 452, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 452, + "name": "STOP", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 837, + "end": 1291, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 906, + "end": 910, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 923, + "end": 939, + "name": "DUP1", + "source": 0 + }, + { + "begin": 942, + "end": 947, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 923, + "end": 947, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 923, + "end": 947, + "name": "POP", + "source": 0 + }, + { + "begin": 1189, + "end": 1198, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1174, + "end": 1186, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1174, + "end": 1198, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1174, + "end": 1198, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1174, + "end": 1198, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1174, + "end": 1198, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1174, + "end": 1198, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1174, + "end": 1198, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1174, + "end": 1198, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1166, + "end": 1171, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1166, + "end": 1198, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1166, + "end": 1198, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1166, + "end": 1198, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1166, + "end": 1198, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1166, + "end": 1198, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1166, + "end": 1198, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1166, + "end": 1198, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1147, + "end": 1162, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1147, + "end": 1198, + "name": "LT", + "source": 0 + }, + { + "begin": 1143, + "end": 1245, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1143, + "end": 1245, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1229, + "end": 1233, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1215, + "end": 1233, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1215, + "end": 1233, + "name": "POP", + "source": 0 + }, + { + "begin": 1143, + "end": 1245, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1143, + "end": 1245, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1272, + "end": 1283, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1265, + "end": 1283, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1265, + "end": 1283, + "name": "POP", + "source": 0 + }, + { + "begin": 1265, + "end": 1283, + "name": "POP", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "POP", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "POP", + "source": 0 + }, + { + "begin": 837, + "end": 1291, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 460, + "end": 829, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 460, + "end": 829, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 547, + "end": 548, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 534, + "end": 543, + "name": "DUP1", + "source": 0 + }, + { + "begin": 534, + "end": 548, + "name": "EQ", + "source": 0 + }, + { + "begin": 527, + "end": 549, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 527, + "end": 549, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 527, + "end": 549, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 527, + "end": 549, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 527, + "end": 549, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 527, + "end": 549, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 527, + "end": 549, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 527, + "end": 549, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 527, + "end": 549, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 610, + "end": 620, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 597, + "end": 606, + "name": "DUP1", + "source": 0 + }, + { + "begin": 597, + "end": 620, + "name": "EQ", + "source": 0 + }, + { + "begin": 590, + "end": 621, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 590, + "end": 621, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 590, + "end": 621, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 590, + "end": 621, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 590, + "end": 621, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 590, + "end": 621, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 590, + "end": 621, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 590, + "end": 621, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 590, + "end": 621, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 683, + "end": 693, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 672, + "end": 679, + "name": "DUP1", + "source": 0 + }, + { + "begin": 672, + "end": 693, + "name": "EQ", + "source": 0 + }, + { + "begin": 665, + "end": 694, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 665, + "end": 694, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 665, + "end": 694, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 665, + "end": 694, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 665, + "end": 694, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 665, + "end": 694, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 665, + "end": 694, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 665, + "end": 694, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 665, + "end": 694, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 750, + "end": 758, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 740, + "end": 746, + "name": "DUP1", + "source": 0 + }, + { + "begin": 740, + "end": 758, + "name": "EQ", + "source": 0 + }, + { + "begin": 733, + "end": 759, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 733, + "end": 759, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 733, + "end": 759, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 733, + "end": 759, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 733, + "end": 759, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 733, + "end": 759, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 733, + "end": 759, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 733, + "end": 759, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 733, + "end": 759, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 814, + "end": 820, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 803, + "end": 810, + "name": "DUP1", + "source": 0 + }, + { + "begin": 803, + "end": 820, + "name": "EQ", + "source": 0 + }, + { + "begin": 796, + "end": 821, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 796, + "end": 821, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 796, + "end": 821, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 796, + "end": 821, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 796, + "end": 821, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 796, + "end": 821, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 796, + "end": 821, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 796, + "end": 821, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 796, + "end": 821, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 460, + "end": 829, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 86, + "end": 452, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 452, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 199, + "end": 200, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 190, + "end": 195, + "name": "DUP1", + "source": 0 + }, + { + "begin": 190, + "end": 200, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 228, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 228, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 228, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 182, + "end": 228, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 182, + "end": 228, + "name": "PUSH", + "source": 0, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 182, + "end": 228, + "name": "DUP2", + "source": 0 + }, + { + "begin": 182, + "end": 228, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 182, + "end": 228, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 182, + "end": 228, + "name": "ADD", + "source": 0 + }, + { + "begin": 182, + "end": 228, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 228, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 182, + "end": 228, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 182, + "end": 228, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 228, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 228, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 228, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 182, + "end": 228, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 182, + "end": 228, + "name": "DUP1", + "source": 0 + }, + { + "begin": 182, + "end": 228, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 182, + "end": 228, + "name": "SUB", + "source": 0 + }, + { + "begin": 182, + "end": 228, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 182, + "end": 228, + "name": "REVERT", + "source": 0 + }, + { + "begin": 182, + "end": 228, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 228, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 299, + "end": 302, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 289, + "end": 295, + "name": "DUP1", + "source": 0 + }, + { + "begin": 289, + "end": 302, + "name": "EQ", + "source": 0 + }, + { + "begin": 281, + "end": 333, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 281, + "end": 333, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 281, + "end": 333, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 281, + "end": 333, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 281, + "end": 333, + "name": "PUSH", + "source": 0, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 281, + "end": 333, + "name": "DUP2", + "source": 0 + }, + { + "begin": 281, + "end": 333, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 281, + "end": 333, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 281, + "end": 333, + "name": "ADD", + "source": 0 + }, + { + "begin": 281, + "end": 333, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 281, + "end": 333, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 281, + "end": 333, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 281, + "end": 333, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 281, + "end": 333, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 281, + "end": 333, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 281, + "end": 333, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 281, + "end": 333, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 281, + "end": 333, + "name": "DUP1", + "source": 0 + }, + { + "begin": 281, + "end": 333, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 281, + "end": 333, + "name": "SUB", + "source": 0 + }, + { + "begin": 281, + "end": 333, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 281, + "end": 333, + "name": "REVERT", + "source": 0 + }, + { + "begin": 281, + "end": 333, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 281, + "end": 333, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 407, + "end": 411, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 396, + "end": 403, + "name": "DUP1", + "source": 0 + }, + { + "begin": 396, + "end": 411, + "name": "EQ", + "source": 0 + }, + { + "begin": 388, + "end": 444, + "name": "PUSH [tag]", + "source": 0, + "value": "41" + }, + { + "begin": 388, + "end": 444, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 388, + "end": 444, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 388, + "end": 444, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 388, + "end": 444, + "name": "PUSH", + "source": 0, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 388, + "end": 444, + "name": "DUP2", + "source": 0 + }, + { + "begin": 388, + "end": 444, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 388, + "end": 444, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 388, + "end": 444, + "name": "ADD", + "source": 0 + }, + { + "begin": 388, + "end": 444, + "name": "PUSH [tag]", + "source": 0, + "value": "42" + }, + { + "begin": 388, + "end": 444, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 388, + "end": 444, + "name": "PUSH [tag]", + "source": 0, + "value": "43" + }, + { + "begin": 388, + "end": 444, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 388, + "end": 444, + "name": "tag", + "source": 0, + "value": "42" + }, + { + "begin": 388, + "end": 444, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 388, + "end": 444, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 388, + "end": 444, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 388, + "end": 444, + "name": "DUP1", + "source": 0 + }, + { + "begin": 388, + "end": 444, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 388, + "end": 444, + "name": "SUB", + "source": 0 + }, + { + "begin": 388, + "end": 444, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 388, + "end": 444, + "name": "REVERT", + "source": 0 + }, + { + "begin": 388, + "end": 444, + "name": "tag", + "source": 0, + "value": "41" + }, + { + "begin": 388, + "end": 444, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 452, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "54" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "54" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 1113, + "name": "tag", + "source": 1, + "value": "59" + }, + { + "begin": 747, + "end": 1113, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 889, + "end": 892, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 910, + "end": 977, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 974, + "end": 976, + "name": "PUSH", + "source": 1, + "value": "1A" + }, + { + "begin": 969, + "end": 972, + "name": "DUP4", + "source": 1 + }, + { + "begin": 910, + "end": 977, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 910, + "end": 977, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 910, + "end": 977, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 910, + "end": 977, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 903, + "end": 977, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 903, + "end": 977, + "name": "POP", + "source": 1 + }, + { + "begin": 986, + "end": 1079, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1075, + "end": 1078, + "name": "DUP3", + "source": 1 + }, + { + "begin": 986, + "end": 1079, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 986, + "end": 1079, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 986, + "end": 1079, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 986, + "end": 1079, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1104, + "end": 1106, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1099, + "end": 1102, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1095, + "end": 1107, + "name": "ADD", + "source": 1 + }, + { + "begin": 1088, + "end": 1107, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1088, + "end": 1107, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1119, + "end": 1485, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1119, + "end": 1485, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1261, + "end": 1264, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1282, + "end": 1349, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1346, + "end": 1348, + "name": "PUSH", + "source": 1, + "value": "17" + }, + { + "begin": 1341, + "end": 1344, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1282, + "end": 1349, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1282, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1282, + "end": 1349, + "name": "tag", + "source": 1, + "value": "67" + }, + { + "begin": 1282, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1275, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1275, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1358, + "end": 1451, + "name": "PUSH [tag]", + "source": 1, + "value": "68" + }, + { + "begin": 1447, + "end": 1450, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1358, + "end": 1451, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1358, + "end": 1451, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1358, + "end": 1451, + "name": "tag", + "source": 1, + "value": "68" + }, + { + "begin": 1358, + "end": 1451, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1476, + "end": 1478, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1471, + "end": 1474, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1467, + "end": 1479, + "name": "ADD", + "source": 1 + }, + { + "begin": 1460, + "end": 1479, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1460, + "end": 1479, + "name": "POP", + "source": 1 + }, + { + "begin": 1119, + "end": 1485, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1119, + "end": 1485, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1119, + "end": 1485, + "name": "POP", + "source": 1 + }, + { + "begin": 1119, + "end": 1485, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1491, + "end": 1857, + "name": "tag", + "source": 1, + "value": "70" + }, + { + "begin": 1491, + "end": 1857, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1633, + "end": 1636, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1654, + "end": 1721, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 1718, + "end": 1720, + "name": "PUSH", + "source": 1, + "value": "1C" + }, + { + "begin": 1713, + "end": 1716, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1654, + "end": 1721, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1654, + "end": 1721, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1654, + "end": 1721, + "name": "tag", + "source": 1, + "value": "72" + }, + { + "begin": 1654, + "end": 1721, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1647, + "end": 1721, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1647, + "end": 1721, + "name": "POP", + "source": 1 + }, + { + "begin": 1730, + "end": 1823, + "name": "PUSH [tag]", + "source": 1, + "value": "73" + }, + { + "begin": 1819, + "end": 1822, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1730, + "end": 1823, + "name": "PUSH [tag]", + "source": 1, + "value": "74" + }, + { + "begin": 1730, + "end": 1823, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1730, + "end": 1823, + "name": "tag", + "source": 1, + "value": "73" + }, + { + "begin": 1730, + "end": 1823, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1848, + "end": 1850, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1843, + "end": 1846, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1839, + "end": 1851, + "name": "ADD", + "source": 1 + }, + { + "begin": 1832, + "end": 1851, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1832, + "end": 1851, + "name": "POP", + "source": 1 + }, + { + "begin": 1491, + "end": 1857, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1491, + "end": 1857, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1491, + "end": 1857, + "name": "POP", + "source": 1 + }, + { + "begin": 1491, + "end": 1857, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1863, + "end": 2073, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 1863, + "end": 2073, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1950, + "end": 1954, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1988, + "end": 1990, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1977, + "end": 1986, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1973, + "end": 1991, + "name": "ADD", + "source": 1 + }, + { + "begin": 1965, + "end": 1991, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1965, + "end": 1991, + "name": "POP", + "source": 1 + }, + { + "begin": 2001, + "end": 2066, + "name": "PUSH [tag]", + "source": 1, + "value": "76" + }, + { + "begin": 2063, + "end": 2064, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2052, + "end": 2061, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2048, + "end": 2065, + "name": "ADD", + "source": 1 + }, + { + "begin": 2039, + "end": 2045, + "name": "DUP5", + "source": 1 + }, + { + "begin": 2001, + "end": 2066, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 2001, + "end": 2066, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2001, + "end": 2066, + "name": "tag", + "source": 1, + "value": "76" + }, + { + "begin": 2001, + "end": 2066, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1863, + "end": 2073, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1863, + "end": 2073, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1863, + "end": 2073, + "name": "POP", + "source": 1 + }, + { + "begin": 1863, + "end": 2073, + "name": "POP", + "source": 1 + }, + { + "begin": 1863, + "end": 2073, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2079, + "end": 2498, + "name": "tag", + "source": 1, + "value": "40" + }, + { + "begin": 2079, + "end": 2498, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2245, + "end": 2249, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2283, + "end": 2285, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 2272, + "end": 2281, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2268, + "end": 2286, + "name": "ADD", + "source": 1 + }, + { + "begin": 2260, + "end": 2286, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2260, + "end": 2286, + "name": "POP", + "source": 1 + }, + { + "begin": 2332, + "end": 2341, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2326, + "end": 2330, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2322, + "end": 2342, + "name": "SUB", + "source": 1 + }, + { + "begin": 2318, + "end": 2319, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2307, + "end": 2316, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2303, + "end": 2320, + "name": "ADD", + "source": 1 + }, + { + "begin": 2296, + "end": 2343, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2360, + "end": 2491, + "name": "PUSH [tag]", + "source": 1, + "value": "78" + }, + { + "begin": 2486, + "end": 2490, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2360, + "end": 2491, + "name": "PUSH [tag]", + "source": 1, + "value": "59" + }, + { + "begin": 2360, + "end": 2491, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2360, + "end": 2491, + "name": "tag", + "source": 1, + "value": "78" + }, + { + "begin": 2360, + "end": 2491, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2352, + "end": 2491, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2352, + "end": 2491, + "name": "POP", + "source": 1 + }, + { + "begin": 2079, + "end": 2498, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2079, + "end": 2498, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2079, + "end": 2498, + "name": "POP", + "source": 1 + }, + { + "begin": 2079, + "end": 2498, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2504, + "end": 2923, + "name": "tag", + "source": 1, + "value": "37" + }, + { + "begin": 2504, + "end": 2923, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2670, + "end": 2674, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2708, + "end": 2710, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 2697, + "end": 2706, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2693, + "end": 2711, + "name": "ADD", + "source": 1 + }, + { + "begin": 2685, + "end": 2711, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2685, + "end": 2711, + "name": "POP", + "source": 1 + }, + { + "begin": 2757, + "end": 2766, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2751, + "end": 2755, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2747, + "end": 2767, + "name": "SUB", + "source": 1 + }, + { + "begin": 2743, + "end": 2744, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2732, + "end": 2741, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2728, + "end": 2745, + "name": "ADD", + "source": 1 + }, + { + "begin": 2721, + "end": 2768, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2785, + "end": 2916, + "name": "PUSH [tag]", + "source": 1, + "value": "80" + }, + { + "begin": 2911, + "end": 2915, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2785, + "end": 2916, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 2785, + "end": 2916, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2785, + "end": 2916, + "name": "tag", + "source": 1, + "value": "80" + }, + { + "begin": 2785, + "end": 2916, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2777, + "end": 2916, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2777, + "end": 2916, + "name": "POP", + "source": 1 + }, + { + "begin": 2504, + "end": 2923, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2504, + "end": 2923, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2504, + "end": 2923, + "name": "POP", + "source": 1 + }, + { + "begin": 2504, + "end": 2923, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2929, + "end": 3348, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 2929, + "end": 3348, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3095, + "end": 3099, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3133, + "end": 3135, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 3122, + "end": 3131, + "name": "DUP3", + "source": 1 + }, + { + "begin": 3118, + "end": 3136, + "name": "ADD", + "source": 1 + }, + { + "begin": 3110, + "end": 3136, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 3110, + "end": 3136, + "name": "POP", + "source": 1 + }, + { + "begin": 3182, + "end": 3191, + "name": "DUP2", + "source": 1 + }, + { + "begin": 3176, + "end": 3180, + "name": "DUP2", + "source": 1 + }, + { + "begin": 3172, + "end": 3192, + "name": "SUB", + "source": 1 + }, + { + "begin": 3168, + "end": 3169, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3157, + "end": 3166, + "name": "DUP4", + "source": 1 + }, + { + "begin": 3153, + "end": 3170, + "name": "ADD", + "source": 1 + }, + { + "begin": 3146, + "end": 3193, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3210, + "end": 3341, + "name": "PUSH [tag]", + "source": 1, + "value": "82" + }, + { + "begin": 3336, + "end": 3340, + "name": "DUP2", + "source": 1 + }, + { + "begin": 3210, + "end": 3341, + "name": "PUSH [tag]", + "source": 1, + "value": "70" + }, + { + "begin": 3210, + "end": 3341, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 3210, + "end": 3341, + "name": "tag", + "source": 1, + "value": "82" + }, + { + "begin": 3210, + "end": 3341, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3202, + "end": 3341, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 3202, + "end": 3341, + "name": "POP", + "source": 1 + }, + { + "begin": 2929, + "end": 3348, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2929, + "end": 3348, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2929, + "end": 3348, + "name": "POP", + "source": 1 + }, + { + "begin": 2929, + "end": 3348, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 3435, + "end": 3604, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 3435, + "end": 3604, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3519, + "end": 3530, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3553, + "end": 3559, + "name": "DUP3", + "source": 1 + }, + { + "begin": 3548, + "end": 3551, + "name": "DUP3", + "source": 1 + }, + { + "begin": 3541, + "end": 3560, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3593, + "end": 3597, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 3588, + "end": 3591, + "name": "DUP3", + "source": 1 + }, + { + "begin": 3584, + "end": 3598, + "name": "ADD", + "source": 1 + }, + { + "begin": 3569, + "end": 3598, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 3569, + "end": 3598, + "name": "POP", + "source": 1 + }, + { + "begin": 3435, + "end": 3604, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 3435, + "end": 3604, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 3435, + "end": 3604, + "name": "POP", + "source": 1 + }, + { + "begin": 3435, + "end": 3604, + "name": "POP", + "source": 1 + }, + { + "begin": 3435, + "end": 3604, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 3610, + "end": 3915, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 3610, + "end": 3915, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3650, + "end": 3653, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3669, + "end": 3689, + "name": "PUSH [tag]", + "source": 1, + "value": "87" + }, + { + "begin": 3687, + "end": 3688, + "name": "DUP3", + "source": 1 + }, + { + "begin": 3669, + "end": 3689, + "name": "PUSH [tag]", + "source": 1, + "value": "88" + }, + { + "begin": 3669, + "end": 3689, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 3669, + "end": 3689, + "name": "tag", + "source": 1, + "value": "87" + }, + { + "begin": 3669, + "end": 3689, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3664, + "end": 3689, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 3664, + "end": 3689, + "name": "POP", + "source": 1 + }, + { + "begin": 3703, + "end": 3723, + "name": "PUSH [tag]", + "source": 1, + "value": "89" + }, + { + "begin": 3721, + "end": 3722, + "name": "DUP4", + "source": 1 + }, + { + "begin": 3703, + "end": 3723, + "name": "PUSH [tag]", + "source": 1, + "value": "88" + }, + { + "begin": 3703, + "end": 3723, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 3703, + "end": 3723, + "name": "tag", + "source": 1, + "value": "89" + }, + { + "begin": 3703, + "end": 3723, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3698, + "end": 3723, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 3698, + "end": 3723, + "name": "POP", + "source": 1 + }, + { + "begin": 3857, + "end": 3858, + "name": "DUP3", + "source": 1 + }, + { + "begin": 3789, + "end": 3855, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 3785, + "end": 3859, + "name": "SUB", + "source": 1 + }, + { + "begin": 3782, + "end": 3783, + "name": "DUP3", + "source": 1 + }, + { + "begin": 3779, + "end": 3860, + "name": "GT", + "source": 1 + }, + { + "begin": 3776, + "end": 3883, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 3776, + "end": 3883, + "name": "PUSH [tag]", + "source": 1, + "value": "90" + }, + { + "begin": 3776, + "end": 3883, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 3863, + "end": 3881, + "name": "PUSH [tag]", + "source": 1, + "value": "91" + }, + { + "begin": 3863, + "end": 3881, + "name": "PUSH [tag]", + "source": 1, + "value": "92" + }, + { + "begin": 3863, + "end": 3881, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 3863, + "end": 3881, + "name": "tag", + "source": 1, + "value": "91" + }, + { + "begin": 3863, + "end": 3881, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3776, + "end": 3883, + "name": "tag", + "source": 1, + "value": "90" + }, + { + "begin": 3776, + "end": 3883, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3907, + "end": 3908, + "name": "DUP3", + "source": 1 + }, + { + "begin": 3904, + "end": 3905, + "name": "DUP3", + "source": 1 + }, + { + "begin": 3900, + "end": 3909, + "name": "ADD", + "source": 1 + }, + { + "begin": 3893, + "end": 3909, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 3893, + "end": 3909, + "name": "POP", + "source": 1 + }, + { + "begin": 3610, + "end": 3915, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 3610, + "end": 3915, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 3610, + "end": 3915, + "name": "POP", + "source": 1 + }, + { + "begin": 3610, + "end": 3915, + "name": "POP", + "source": 1 + }, + { + "begin": 3610, + "end": 3915, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 3921, + "end": 4269, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 3921, + "end": 4269, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3961, + "end": 3968, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3984, + "end": 4004, + "name": "PUSH [tag]", + "source": 1, + "value": "94" + }, + { + "begin": 4002, + "end": 4003, + "name": "DUP3", + "source": 1 + }, + { + "begin": 3984, + "end": 4004, + "name": "PUSH [tag]", + "source": 1, + "value": "88" + }, + { + "begin": 3984, + "end": 4004, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 3984, + "end": 4004, + "name": "tag", + "source": 1, + "value": "94" + }, + { + "begin": 3984, + "end": 4004, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3979, + "end": 4004, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 3979, + "end": 4004, + "name": "POP", + "source": 1 + }, + { + "begin": 4018, + "end": 4038, + "name": "PUSH [tag]", + "source": 1, + "value": "95" + }, + { + "begin": 4036, + "end": 4037, + "name": "DUP4", + "source": 1 + }, + { + "begin": 4018, + "end": 4038, + "name": "PUSH [tag]", + "source": 1, + "value": "88" + }, + { + "begin": 4018, + "end": 4038, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 4018, + "end": 4038, + "name": "tag", + "source": 1, + "value": "95" + }, + { + "begin": 4018, + "end": 4038, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 4013, + "end": 4038, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 4013, + "end": 4038, + "name": "POP", + "source": 1 + }, + { + "begin": 4206, + "end": 4207, + "name": "DUP2", + "source": 1 + }, + { + "begin": 4138, + "end": 4204, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 4134, + "end": 4208, + "name": "DIV", + "source": 1 + }, + { + "begin": 4131, + "end": 4132, + "name": "DUP4", + "source": 1 + }, + { + "begin": 4128, + "end": 4209, + "name": "GT", + "source": 1 + }, + { + "begin": 4123, + "end": 4124, + "name": "DUP3", + "source": 1 + }, + { + "begin": 4116, + "end": 4125, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 4109, + "end": 4126, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 4105, + "end": 4210, + "name": "AND", + "source": 1 + }, + { + "begin": 4102, + "end": 4233, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 4102, + "end": 4233, + "name": "PUSH [tag]", + "source": 1, + "value": "96" + }, + { + "begin": 4102, + "end": 4233, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 4213, + "end": 4231, + "name": "PUSH [tag]", + "source": 1, + "value": "97" + }, + { + "begin": 4213, + "end": 4231, + "name": "PUSH [tag]", + "source": 1, + "value": "92" + }, + { + "begin": 4213, + "end": 4231, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 4213, + "end": 4231, + "name": "tag", + "source": 1, + "value": "97" + }, + { + "begin": 4213, + "end": 4231, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 4102, + "end": 4233, + "name": "tag", + "source": 1, + "value": "96" + }, + { + "begin": 4102, + "end": 4233, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 4261, + "end": 4262, + "name": "DUP3", + "source": 1 + }, + { + "begin": 4258, + "end": 4259, + "name": "DUP3", + "source": 1 + }, + { + "begin": 4254, + "end": 4263, + "name": "MUL", + "source": 1 + }, + { + "begin": 4243, + "end": 4263, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 4243, + "end": 4263, + "name": "POP", + "source": 1 + }, + { + "begin": 3921, + "end": 4269, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 3921, + "end": 4269, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 3921, + "end": 4269, + "name": "POP", + "source": 1 + }, + { + "begin": 3921, + "end": 4269, + "name": "POP", + "source": 1 + }, + { + "begin": 3921, + "end": 4269, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 4275, + "end": 4365, + "name": "tag", + "source": 1, + "value": "58" + }, + { + "begin": 4275, + "end": 4365, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 4309, + "end": 4316, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 4352, + "end": 4357, + "name": "DUP2", + "source": 1 + }, + { + "begin": 4345, + "end": 4358, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 4338, + "end": 4359, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 4327, + "end": 4359, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 4327, + "end": 4359, + "name": "POP", + "source": 1 + }, + { + "begin": 4275, + "end": 4365, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 4275, + "end": 4365, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 4275, + "end": 4365, + "name": "POP", + "source": 1 + }, + { + "begin": 4275, + "end": 4365, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 4371, + "end": 4448, + "name": "tag", + "source": 1, + "value": "88" + }, + { + "begin": 4371, + "end": 4448, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 4408, + "end": 4415, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 4437, + "end": 4442, + "name": "DUP2", + "source": 1 + }, + { + "begin": 4426, + "end": 4442, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 4426, + "end": 4442, + "name": "POP", + "source": 1 + }, + { + "begin": 4371, + "end": 4448, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 4371, + "end": 4448, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 4371, + "end": 4448, + "name": "POP", + "source": 1 + }, + { + "begin": 4371, + "end": 4448, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 4454, + "end": 4634, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 4454, + "end": 4634, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 4502, + "end": 4579, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 4499, + "end": 4500, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 4492, + "end": 4580, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 4599, + "end": 4603, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 4596, + "end": 4597, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 4589, + "end": 4604, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 4623, + "end": 4627, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 4620, + "end": 4621, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 4613, + "end": 4628, + "name": "REVERT", + "source": 1 + }, + { + "begin": 4640, + "end": 4820, + "name": "tag", + "source": 1, + "value": "92" + }, + { + "begin": 4640, + "end": 4820, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 4688, + "end": 4765, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 4685, + "end": 4686, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 4678, + "end": 4766, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 4785, + "end": 4789, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 4782, + "end": 4783, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 4775, + "end": 4790, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 4809, + "end": 4813, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 4806, + "end": 4807, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 4799, + "end": 4814, + "name": "REVERT", + "source": 1 + }, + { + "begin": 4949, + "end": 5066, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 4949, + "end": 5066, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 5058, + "end": 5059, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 5055, + "end": 5056, + "name": "DUP1", + "source": 1 + }, + { + "begin": 5048, + "end": 5060, + "name": "REVERT", + "source": 1 + }, + { + "begin": 5072, + "end": 5248, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 5072, + "end": 5248, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 5212, + "end": 5240, + "name": "PUSH", + "source": 1, + "value": "312067776569206973206E6F7420657175616C20746F20316539000000000000" + }, + { + "begin": 5208, + "end": 5209, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 5200, + "end": 5206, + "name": "DUP3", + "source": 1 + }, + { + "begin": 5196, + "end": 5210, + "name": "ADD", + "source": 1 + }, + { + "begin": 5189, + "end": 5241, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 5072, + "end": 5248, + "name": "POP", + "source": 1 + }, + { + "begin": 5072, + "end": 5248, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 5254, + "end": 5427, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 5254, + "end": 5427, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 5394, + "end": 5419, + "name": "PUSH", + "source": 1, + "value": "3120776569206973206E6F7420657175616C20746F2031000000000000000000" + }, + { + "begin": 5390, + "end": 5391, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 5382, + "end": 5388, + "name": "DUP3", + "source": 1 + }, + { + "begin": 5378, + "end": 5392, + "name": "ADD", + "source": 1 + }, + { + "begin": 5371, + "end": 5420, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 5254, + "end": 5427, + "name": "POP", + "source": 1 + }, + { + "begin": 5254, + "end": 5427, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 5433, + "end": 5611, + "name": "tag", + "source": 1, + "value": "74" + }, + { + "begin": 5433, + "end": 5611, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 5573, + "end": 5603, + "name": "PUSH", + "source": 1, + "value": "31206574686572206973206E6F7420657175616C20746F203165313800000000" + }, + { + "begin": 5569, + "end": 5570, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 5561, + "end": 5567, + "name": "DUP3", + "source": 1 + }, + { + "begin": 5557, + "end": 5571, + "name": "ADD", + "source": 1 + }, + { + "begin": 5550, + "end": 5604, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 5433, + "end": 5611, + "name": "POP", + "source": 1 + }, + { + "begin": 5433, + "end": 5611, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 5617, + "end": 5739, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 5617, + "end": 5739, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 5690, + "end": 5714, + "name": "PUSH [tag]", + "source": 1, + "value": "109" + }, + { + "begin": 5708, + "end": 5713, + "name": "DUP2", + "source": 1 + }, + { + "begin": 5690, + "end": 5714, + "name": "PUSH [tag]", + "source": 1, + "value": "88" + }, + { + "begin": 5690, + "end": 5714, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 5690, + "end": 5714, + "name": "tag", + "source": 1, + "value": "109" + }, + { + "begin": 5690, + "end": 5714, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 5683, + "end": 5688, + "name": "DUP2", + "source": 1 + }, + { + "begin": 5680, + "end": 5715, + "name": "EQ", + "source": 1 + }, + { + "begin": 5670, + "end": 5733, + "name": "PUSH [tag]", + "source": 1, + "value": "110" + }, + { + "begin": 5670, + "end": 5733, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 5729, + "end": 5730, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 5726, + "end": 5727, + "name": "DUP1", + "source": 1 + }, + { + "begin": 5719, + "end": 5731, + "name": "REVERT", + "source": 1 + }, + { + "begin": 5670, + "end": 5733, + "name": "tag", + "source": 1, + "value": "110" + }, + { + "begin": 5670, + "end": 5733, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 5617, + "end": 5739, + "name": "POP", + "source": 1 + }, + { + "begin": 5617, + "end": 5739, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0xfb22ff62c5c287021c21322d7c1566db308335d288f0a406bf2ea9aa50874040\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bee589afbd187f8e4a6408ab8309f7d4a6386af71989eec227ef8bcc871f6c\",\"dweb:/ipfs/QmXx8xMxAgzWvNNCaiEjJze9ouX8ep6xRbfZqkTRTGQxVp\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 91 + ] + }, + "id": 92, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 91, + "linearizedBaseContracts": [ + 91 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 25, + "nodeType": "Block", + "src": "126:326:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "190:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "199:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "190:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "3120776569206973206e6f7420657175616c20746f2031", + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "202:25:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b", + "typeString": "literal_string \"1 wei is not equal to 1\"" + }, + "value": "1 wei is not equal to 1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b1788296b497483615e006caff88fb1cfe1b6651ae0ecaad031bcfad0a4e7d0b", + "typeString": "literal_string \"1 wei is not equal to 1\"" + } + ], + "id": 4, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "182:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10, + "nodeType": "ExpressionStatement", + "src": "182:46:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "289:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "299:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "289:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "312067776569206973206e6f7420657175616c20746f20316539", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "304:28:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d", + "typeString": "literal_string \"1 gwei is not equal to 1e9\"" + }, + "value": "1 gwei is not equal to 1e9" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1cfa122e296cbeca26ee14680c5dac322826318519cd9ad8faeffaf74fd06e2d", + "typeString": "literal_string \"1 gwei is not equal to 1e9\"" + } + ], + "id": 11, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "281:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "281:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17, + "nodeType": "ExpressionStatement", + "src": "281:52:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "396:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "407:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "396:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "31206574686572206973206e6f7420657175616c20746f2031653138", + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "413:30:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de", + "typeString": "literal_string \"1 ether is not equal to 1e18\"" + }, + "value": "1 ether is not equal to 1e18" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_da3ca76295935d723bf4ce5965da7a4bf9ddf0b3f5458818fce4573bee45a8de", + "typeString": "literal_string \"1 ether is not equal to 1e18\"" + } + ], + "id": 18, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "388:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "388:56:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 24, + "nodeType": "ExpressionStatement", + "src": "388:56:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 26, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "95:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "111:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "126:0:0" + }, + "scope": 91, + "src": "86:366:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 59, + "nodeType": "Block", + "src": "499:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 32, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "534:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 31, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "547:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "534:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 29, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "527:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "527:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 34, + "nodeType": "ExpressionStatement", + "src": "527:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "597:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 37, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "610:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "597:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 35, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "590:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "590:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 40, + "nodeType": "ExpressionStatement", + "src": "590:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 44, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "672:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "683:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "672:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 41, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "665:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "665:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 46, + "nodeType": "ExpressionStatement", + "src": "665:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 50, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "740:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "750:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "740:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 47, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "733:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "733:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 52, + "nodeType": "ExpressionStatement", + "src": "733:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "803:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 55, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "814:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "803:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 53, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "796:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 57, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "796:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 58, + "nodeType": "ExpressionStatement", + "src": "796:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 60, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "469:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 27, + "nodeType": "ParameterList", + "parameters": [], + "src": "484:2:0" + }, + "returnParameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [], + "src": "499:0:0" + }, + "scope": 91, + "src": "460:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 89, + "nodeType": "Block", + "src": "912:379:0", + "statements": [ + { + "assignments": [ + 70 + ], + "declarations": [ + { + "constant": false, + "id": 70, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "928:11:0", + "nodeType": "VariableDeclaration", + "scope": 89, + "src": "923:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 69, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "923:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 72, + "initialValue": { + "hexValue": "66616c7365", + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "942:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "923:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 73, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1147:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1147:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 75, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "1166:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 76, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 64, + "src": "1174:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1189:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1174:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1166:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1147:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 86, + "nodeType": "IfStatement", + "src": "1143:102:0", + "trueBody": { + "id": 85, + "nodeType": "Block", + "src": "1200:45:0", + "statements": [ + { + "expression": { + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 81, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 70, + "src": "1215:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1229:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1215:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 84, + "nodeType": "ExpressionStatement", + "src": "1215:18:0" + } + ] + } + }, + { + "expression": { + "id": 87, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 70, + "src": "1272:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 68, + "id": 88, + "nodeType": "Return", + "src": "1265:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 90, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "846:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "start", + "nameLocation": "860:5:0", + "nodeType": "VariableDeclaration", + "scope": 90, + "src": "855:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 61, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "855:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "872:12:0", + "nodeType": "VariableDeclaration", + "scope": 90, + "src": "867:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "867:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "854:31:0" + }, + "returnParameters": { + "id": 68, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 67, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 90, + "src": "906:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 66, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "906:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "905:6:0" + }, + "scope": 91, + "src": "837:454:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 92, + "src": "62:1232:0", + "usedErrors": [] + } + ], + "src": "33:1261:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/18da00168edc4a55a3dd8845185c6dc2.json b/Ep4/artifacts/build-info/18da00168edc4a55a3dd8845185c6dc2.json new file mode 100644 index 0000000..6b235ff --- /dev/null +++ b/Ep4/artifacts/build-info/18da00168edc4a55a3dd8845185c6dc2.json @@ -0,0 +1,7380 @@ +{ + "id": "18da00168edc4a55a3dd8845185c6dc2", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n function etherUnitExample() public pure {\r\n\r\n // wei是貨幣中的最小單位\r\n require(1 wei == 12, \"1 wei not equal to 1\");\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1228 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1228 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":771:1225 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":394:763 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":86:386 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":771:1225 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":840:844 bool */\n 0x00\n /* \"Ep4/example.sol\":857:873 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":876:881 false */\n 0x00\n /* \"Ep4/example.sol\":857:881 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1123:1132 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1108:1120 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1108:1132 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1100:1105 start */\n dup5\n /* \"Ep4/example.sol\":1100:1132 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1081:1096 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1081:1132 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1077:1179 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1163:1167 true */\n 0x01\n /* \"Ep4/example.sol\":1149:1167 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1077:1179 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1206:1217 isValidated */\n dup1\n /* \"Ep4/example.sol\":1199:1217 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":771:1225 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":394:763 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":481:482 1 */\n 0x01\n /* \"Ep4/example.sol\":468:477 1 seconds */\n dup1\n /* \"Ep4/example.sol\":468:482 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":461:483 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":544:554 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":531:540 1 minutes */\n dup1\n /* \"Ep4/example.sol\":531:554 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":524:555 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":617:627 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":606:613 1 hours */\n dup1\n /* \"Ep4/example.sol\":606:627 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":599:628 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":684:692 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":674:680 1 days */\n dup1\n /* \"Ep4/example.sol\":674:692 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":667:693 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":748:754 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":737:744 1 weeks */\n dup1\n /* \"Ep4/example.sol\":737:754 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":730:755 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":394:763 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":86:386 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":199:201 12 */\n 0x0c\n /* \"Ep4/example.sol\":190:195 1 wei */\n 0x01\n /* \"Ep4/example.sol\":190:201 1 wei == 12 */\n eq\n /* \"Ep4/example.sol\":182:226 require(1 wei == 12, \"1 wei not equal to 1\") */\n tag_35\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_36\n swap1\n tag_37\n jump\t// in\n tag_36:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_35:\n /* \"Ep4/example.sol\":296:299 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":286:292 1 gwei */\n dup1\n /* \"Ep4/example.sol\":286:299 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":279:300 assert(1 gwei == 1e9) */\n tag_38\n jumpi\n tag_39\n tag_25\n jump\t// in\n tag_39:\n tag_38:\n /* \"Ep4/example.sol\":373:377 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":362:369 1 ether */\n dup1\n /* \"Ep4/example.sol\":362:377 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":355:378 assert(1 ether == 1e18) */\n tag_40\n jumpi\n tag_41\n tag_25\n jump\t// in\n tag_41:\n tag_40:\n /* \"Ep4/example.sol\":86:386 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_43:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_45\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_46\n jump\t// in\n tag_45:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_48\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_49\n tag_50\n jump\t// in\n tag_49:\n /* \"#utility.yul\":245:364 */\n tag_48:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_51\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_43\n jump\t// in\n tag_51:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_52\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_43\n jump\t// in\n tag_52:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_53:\n /* \"#utility.yul\":713:734 */\n tag_55\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_56\n jump\t// in\n tag_55:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:1113 */\n tag_57:\n /* \"#utility.yul\":889:892 */\n 0x00\n /* \"#utility.yul\":910:977 */\n tag_59\n /* \"#utility.yul\":974:976 */\n 0x14\n /* \"#utility.yul\":969:972 */\n dup4\n /* \"#utility.yul\":910:977 */\n tag_60\n jump\t// in\n tag_59:\n /* \"#utility.yul\":903:977 */\n swap2\n pop\n /* \"#utility.yul\":986:1079 */\n tag_61\n /* \"#utility.yul\":1075:1078 */\n dup3\n /* \"#utility.yul\":986:1079 */\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1104:1106 */\n 0x20\n /* \"#utility.yul\":1099:1102 */\n dup3\n /* \"#utility.yul\":1095:1107 */\n add\n /* \"#utility.yul\":1088:1107 */\n swap1\n pop\n /* \"#utility.yul\":747:1113 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1119:1329 */\n tag_11:\n /* \"#utility.yul\":1206:1210 */\n 0x00\n /* \"#utility.yul\":1244:1246 */\n 0x20\n /* \"#utility.yul\":1233:1242 */\n dup3\n /* \"#utility.yul\":1229:1247 */\n add\n /* \"#utility.yul\":1221:1247 */\n swap1\n pop\n /* \"#utility.yul\":1257:1322 */\n tag_64\n /* \"#utility.yul\":1319:1320 */\n 0x00\n /* \"#utility.yul\":1308:1317 */\n dup4\n /* \"#utility.yul\":1304:1321 */\n add\n /* \"#utility.yul\":1295:1301 */\n dup5\n /* \"#utility.yul\":1257:1322 */\n tag_53\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1119:1329 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1335:1754 */\n tag_37:\n /* \"#utility.yul\":1501:1505 */\n 0x00\n /* \"#utility.yul\":1539:1541 */\n 0x20\n /* \"#utility.yul\":1528:1537 */\n dup3\n /* \"#utility.yul\":1524:1542 */\n add\n /* \"#utility.yul\":1516:1542 */\n swap1\n pop\n /* \"#utility.yul\":1588:1597 */\n dup2\n /* \"#utility.yul\":1582:1586 */\n dup2\n /* \"#utility.yul\":1578:1598 */\n sub\n /* \"#utility.yul\":1574:1575 */\n 0x00\n /* \"#utility.yul\":1563:1572 */\n dup4\n /* \"#utility.yul\":1559:1576 */\n add\n /* \"#utility.yul\":1552:1599 */\n mstore\n /* \"#utility.yul\":1616:1747 */\n tag_66\n /* \"#utility.yul\":1742:1746 */\n dup2\n /* \"#utility.yul\":1616:1747 */\n tag_57\n jump\t// in\n tag_66:\n /* \"#utility.yul\":1608:1747 */\n swap1\n pop\n /* \"#utility.yul\":1335:1754 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1841:2010 */\n tag_60:\n /* \"#utility.yul\":1925:1936 */\n 0x00\n /* \"#utility.yul\":1959:1965 */\n dup3\n /* \"#utility.yul\":1954:1957 */\n dup3\n /* \"#utility.yul\":1947:1966 */\n mstore\n /* \"#utility.yul\":1999:2003 */\n 0x20\n /* \"#utility.yul\":1994:1997 */\n dup3\n /* \"#utility.yul\":1990:2004 */\n add\n /* \"#utility.yul\":1975:2004 */\n swap1\n pop\n /* \"#utility.yul\":1841:2010 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2016:2321 */\n tag_20:\n /* \"#utility.yul\":2056:2059 */\n 0x00\n /* \"#utility.yul\":2075:2095 */\n tag_71\n /* \"#utility.yul\":2093:2094 */\n dup3\n /* \"#utility.yul\":2075:2095 */\n tag_72\n jump\t// in\n tag_71:\n /* \"#utility.yul\":2070:2095 */\n swap2\n pop\n /* \"#utility.yul\":2109:2129 */\n tag_73\n /* \"#utility.yul\":2127:2128 */\n dup4\n /* \"#utility.yul\":2109:2129 */\n tag_72\n jump\t// in\n tag_73:\n /* \"#utility.yul\":2104:2129 */\n swap3\n pop\n /* \"#utility.yul\":2263:2264 */\n dup3\n /* \"#utility.yul\":2195:2261 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":2191:2265 */\n sub\n /* \"#utility.yul\":2188:2189 */\n dup3\n /* \"#utility.yul\":2185:2266 */\n gt\n /* \"#utility.yul\":2182:2289 */\n iszero\n tag_74\n jumpi\n /* \"#utility.yul\":2269:2287 */\n tag_75\n tag_76\n jump\t// in\n tag_75:\n /* \"#utility.yul\":2182:2289 */\n tag_74:\n /* \"#utility.yul\":2313:2314 */\n dup3\n /* \"#utility.yul\":2310:2311 */\n dup3\n /* \"#utility.yul\":2306:2315 */\n add\n /* \"#utility.yul\":2299:2315 */\n swap1\n pop\n /* \"#utility.yul\":2016:2321 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2327:2675 */\n tag_18:\n /* \"#utility.yul\":2367:2374 */\n 0x00\n /* \"#utility.yul\":2390:2410 */\n tag_78\n /* \"#utility.yul\":2408:2409 */\n dup3\n /* \"#utility.yul\":2390:2410 */\n tag_72\n jump\t// in\n tag_78:\n /* \"#utility.yul\":2385:2410 */\n swap2\n pop\n /* \"#utility.yul\":2424:2444 */\n tag_79\n /* \"#utility.yul\":2442:2443 */\n dup4\n /* \"#utility.yul\":2424:2444 */\n tag_72\n jump\t// in\n tag_79:\n /* \"#utility.yul\":2419:2444 */\n swap3\n pop\n /* \"#utility.yul\":2612:2613 */\n dup2\n /* \"#utility.yul\":2544:2610 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":2540:2614 */\n div\n /* \"#utility.yul\":2537:2538 */\n dup4\n /* \"#utility.yul\":2534:2615 */\n gt\n /* \"#utility.yul\":2529:2530 */\n dup3\n /* \"#utility.yul\":2522:2531 */\n iszero\n /* \"#utility.yul\":2515:2532 */\n iszero\n /* \"#utility.yul\":2511:2616 */\n and\n /* \"#utility.yul\":2508:2639 */\n iszero\n tag_80\n jumpi\n /* \"#utility.yul\":2619:2637 */\n tag_81\n tag_76\n jump\t// in\n tag_81:\n /* \"#utility.yul\":2508:2639 */\n tag_80:\n /* \"#utility.yul\":2667:2668 */\n dup3\n /* \"#utility.yul\":2664:2665 */\n dup3\n /* \"#utility.yul\":2660:2669 */\n mul\n /* \"#utility.yul\":2649:2669 */\n swap1\n pop\n /* \"#utility.yul\":2327:2675 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2681:2771 */\n tag_56:\n /* \"#utility.yul\":2715:2722 */\n 0x00\n /* \"#utility.yul\":2758:2763 */\n dup2\n /* \"#utility.yul\":2751:2764 */\n iszero\n /* \"#utility.yul\":2744:2765 */\n iszero\n /* \"#utility.yul\":2733:2765 */\n swap1\n pop\n /* \"#utility.yul\":2681:2771 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2777:2854 */\n tag_72:\n /* \"#utility.yul\":2814:2821 */\n 0x00\n /* \"#utility.yul\":2843:2848 */\n dup2\n /* \"#utility.yul\":2832:2848 */\n swap1\n pop\n /* \"#utility.yul\":2777:2854 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2860:3040 */\n tag_25:\n /* \"#utility.yul\":2908:2985 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2905:2906 */\n 0x00\n /* \"#utility.yul\":2898:2986 */\n mstore\n /* \"#utility.yul\":3005:3009 */\n 0x01\n /* \"#utility.yul\":3002:3003 */\n 0x04\n /* \"#utility.yul\":2995:3010 */\n mstore\n /* \"#utility.yul\":3029:3033 */\n 0x24\n /* \"#utility.yul\":3026:3027 */\n 0x00\n /* \"#utility.yul\":3019:3034 */\n revert\n /* \"#utility.yul\":3046:3226 */\n tag_76:\n /* \"#utility.yul\":3094:3171 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":3091:3092 */\n 0x00\n /* \"#utility.yul\":3084:3172 */\n mstore\n /* \"#utility.yul\":3191:3195 */\n 0x11\n /* \"#utility.yul\":3188:3189 */\n 0x04\n /* \"#utility.yul\":3181:3196 */\n mstore\n /* \"#utility.yul\":3215:3219 */\n 0x24\n /* \"#utility.yul\":3212:3213 */\n 0x00\n /* \"#utility.yul\":3205:3220 */\n revert\n /* \"#utility.yul\":3355:3472 */\n tag_50:\n /* \"#utility.yul\":3464:3465 */\n 0x00\n /* \"#utility.yul\":3461:3462 */\n dup1\n /* \"#utility.yul\":3454:3466 */\n revert\n /* \"#utility.yul\":3478:3648 */\n tag_62:\n /* \"#utility.yul\":3618:3640 */\n 0x3120776569206e6f7420657175616c20746f2031000000000000000000000000\n /* \"#utility.yul\":3614:3615 */\n 0x00\n /* \"#utility.yul\":3606:3612 */\n dup3\n /* \"#utility.yul\":3602:3616 */\n add\n /* \"#utility.yul\":3595:3641 */\n mstore\n /* \"#utility.yul\":3478:3648 */\n pop\n jump\t// out\n /* \"#utility.yul\":3654:3776 */\n tag_46:\n /* \"#utility.yul\":3727:3751 */\n tag_91\n /* \"#utility.yul\":3745:3750 */\n dup2\n /* \"#utility.yul\":3727:3751 */\n tag_72\n jump\t// in\n tag_91:\n /* \"#utility.yul\":3720:3725 */\n dup2\n /* \"#utility.yul\":3717:3752 */\n eq\n /* \"#utility.yul\":3707:3770 */\n tag_92\n jumpi\n /* \"#utility.yul\":3766:3767 */\n 0x00\n /* \"#utility.yul\":3763:3764 */\n dup1\n /* \"#utility.yul\":3756:3768 */\n revert\n /* \"#utility.yul\":3707:3770 */\n tag_92:\n /* \"#utility.yul\":3654:3776 */\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212204be679d1277b90880b0bcbb9836dd5f28dee6397dee64b37d70a32abe123b13964736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506103fe806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b91906101a1565b61008a565b60405161006d9190610213565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e91906102b5565b846100a9919061025f565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610325565b5b603c80146100e0576100df610325565b5b610e1080146100f2576100f1610325565b5b62015180801461010557610104610325565b5b62093a80801461011857610117610325565b5b565b600c60011461015e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101559061022e565b60405180910390fd5b633b9aca00801461017257610171610325565b5b670de0b6b3a7640000801461018a57610189610325565b5b565b60008135905061019b816103b1565b92915050565b600080604083850312156101b8576101b7610383565b5b60006101c68582860161018c565b92505060206101d78582860161018c565b9150509250929050565b6101ea8161030f565b82525050565b60006101fd60148361024e565b915061020882610388565b602082019050919050565b600060208201905061022860008301846101e1565b92915050565b60006020820190508181036000830152610247816101f0565b9050919050565b600082825260208201905092915050565b600061026a8261031b565b91506102758361031b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156102aa576102a9610354565b5b828201905092915050565b60006102c08261031b565b91506102cb8361031b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561030457610303610354565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b7f3120776569206e6f7420657175616c20746f2031000000000000000000000000600082015250565b6103ba8161031b565b81146103c557600080fd5b5056fea26469706673582212204be679d1277b90880b0bcbb9836dd5f28dee6397dee64b37d70a32abe123b13964736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1A1 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x213 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x2B5 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x25F JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x325 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0xC PUSH1 0x1 EQ PUSH2 0x15E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x155 SWAP1 PUSH2 0x22E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x172 JUMPI PUSH2 0x171 PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x18A JUMPI PUSH2 0x189 PUSH2 0x325 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19B DUP2 PUSH2 0x3B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B8 JUMPI PUSH2 0x1B7 PUSH2 0x383 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C6 DUP6 DUP3 DUP7 ADD PUSH2 0x18C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D7 DUP6 DUP3 DUP7 ADD PUSH2 0x18C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EA DUP2 PUSH2 0x30F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FD PUSH1 0x14 DUP4 PUSH2 0x24E JUMP JUMPDEST SWAP2 POP PUSH2 0x208 DUP3 PUSH2 0x388 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x228 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x247 DUP2 PUSH2 0x1F0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26A DUP3 PUSH2 0x31B JUMP JUMPDEST SWAP2 POP PUSH2 0x275 DUP4 PUSH2 0x31B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2AA JUMPI PUSH2 0x2A9 PUSH2 0x354 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0 DUP3 PUSH2 0x31B JUMP JUMPDEST SWAP2 POP PUSH2 0x2CB DUP4 PUSH2 0x31B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x304 JUMPI PUSH2 0x303 PUSH2 0x354 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x3120776569206E6F7420657175616C20746F2031000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x3BA DUP2 PUSH2 0x31B JUMP JUMPDEST DUP2 EQ PUSH2 0x3C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4B 0xE6 PUSH26 0xD1277B90880B0BCBB9836DD5F28DEE6397DEE64B37D70A32ABE1 0x23 0xB1 CODECOPY PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1166:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_24": { + "entryPoint": 282, + "id": 24, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_58": { + "entryPoint": 190, + "id": 58, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_88": { + "entryPoint": 138, + "id": 88, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 396, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 417, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 481, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd_to_t_string_memory_ptr_fromStack": { + "entryPoint": 496, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 531, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 558, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 590, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 607, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 693, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 783, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 795, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 805, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 852, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 899, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "store_literal_in_memory_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd": { + "entryPoint": 904, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 945, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:3779:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "893:220:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "903:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "969:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "974:2:1", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "910:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "910:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "903:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1075:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd", + "nodeType": "YulIdentifier", + "src": "986:88:1" + }, + "nodeType": "YulFunctionCall", + "src": "986:93:1" + }, + "nodeType": "YulExpressionStatement", + "src": "986:93:1" + }, + { + "nodeType": "YulAssignment", + "src": "1088:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1099:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1104:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1095:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1095:12:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1088:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "881:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "889:3:1", + "type": "" + } + ], + "src": "747:366:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1211:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1221:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1233:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1244:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1229:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1229:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1221:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1295:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1308:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1319:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1304:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1304:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1257:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "1257:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1257:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1183:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1195:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1206:4:1", + "type": "" + } + ], + "src": "1119:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1506:248:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1516:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1528:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1524:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1524:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1516:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1563:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1574:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1559:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1559:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1582:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1588:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1578:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1578:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1552:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1552:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1552:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "1608:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1742:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1616:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "1616:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1608:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1486:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1501:4:1", + "type": "" + } + ], + "src": "1335:419:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1800:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1810:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1826:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1820:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1820:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1810:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1793:6:1", + "type": "" + } + ], + "src": "1760:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1937:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1954:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1959:6:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1947:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1947:19:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1947:19:1" + }, + { + "nodeType": "YulAssignment", + "src": "1975:29:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1994:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1999:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1990:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1990:14:1" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "1975:11:1" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1909:3:1", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1914:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "1925:11:1", + "type": "" + } + ], + "src": "1841:169:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2060:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2070:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2093:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2075:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2075:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2070:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2104:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2127:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2109:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2104:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2267:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "2269:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "2269:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2269:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2188:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2195:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2263:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2191:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2191:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2185:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2185:81:1" + }, + "nodeType": "YulIf", + "src": "2182:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "2299:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2310:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2313:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2306:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2306:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "2299:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "2047:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "2050:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "2056:3:1", + "type": "" + } + ], + "src": "2016:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2375:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2385:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2408:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2390:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2390:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2385:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2419:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2442:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2424:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2424:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2419:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2617:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "2619:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "2619:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2619:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2529:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2522:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2522:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2515:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2515:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2537:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2544:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2612:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "2540:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2540:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2534:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2534:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2511:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2511:105:1" + }, + "nodeType": "YulIf", + "src": "2508:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "2649:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2664:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2667:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "2660:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2660:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "2649:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "2358:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "2361:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "2367:7:1", + "type": "" + } + ], + "src": "2327:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2723:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2733:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2758:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2751:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2751:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2744:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2744:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2733:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2705:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2715:7:1", + "type": "" + } + ], + "src": "2681:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2822:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2832:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2843:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2832:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2804:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2814:7:1", + "type": "" + } + ], + "src": "2777:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2888:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2905:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2908:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2898:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2898:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2898:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3002:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3005:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2995:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2995:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2995:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3026:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3029:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3019:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3019:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3019:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "2860:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3074:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3091:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3094:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3084:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3084:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3084:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3188:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3191:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3181:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3181:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3181:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3212:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3215:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3205:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3205:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3205:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "3046:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3321:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3338:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3341:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3331:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3331:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3331:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "3232:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3444:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3461:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3464:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3454:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3454:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3454:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "3355:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3584:64:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "3606:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3614:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3602:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3602:14:1" + }, + { + "hexValue": "3120776569206e6f7420657175616c20746f2031", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3618:22:1", + "type": "", + "value": "1 wei not equal to 1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3595:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3595:46:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3595:46:1" + } + ] + }, + "name": "store_literal_in_memory_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "3576:6:1", + "type": "" + } + ], + "src": "3478:170:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3697:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3754:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3763:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3766:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3756:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3756:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3756:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3720:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3745:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3727:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "3727:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "3717:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "3717:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3710:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3710:43:1" + }, + "nodeType": "YulIf", + "src": "3707:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3690:5:1", + "type": "" + } + ], + "src": "3654:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function store_literal_in_memory_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd(memPtr) {\n\n mstore(add(memPtr, 0), \"1 wei not equal to 1\")\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b91906101a1565b61008a565b60405161006d9190610213565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e91906102b5565b846100a9919061025f565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610325565b5b603c80146100e0576100df610325565b5b610e1080146100f2576100f1610325565b5b62015180801461010557610104610325565b5b62093a80801461011857610117610325565b5b565b600c60011461015e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101559061022e565b60405180910390fd5b633b9aca00801461017257610171610325565b5b670de0b6b3a7640000801461018a57610189610325565b5b565b60008135905061019b816103b1565b92915050565b600080604083850312156101b8576101b7610383565b5b60006101c68582860161018c565b92505060206101d78582860161018c565b9150509250929050565b6101ea8161030f565b82525050565b60006101fd60148361024e565b915061020882610388565b602082019050919050565b600060208201905061022860008301846101e1565b92915050565b60006020820190508181036000830152610247816101f0565b9050919050565b600082825260208201905092915050565b600061026a8261031b565b91506102758361031b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156102aa576102a9610354565b5b828201905092915050565b60006102c08261031b565b91506102cb8361031b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561030457610303610354565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b7f3120776569206e6f7420657175616c20746f2031000000000000000000000000600082015250565b6103ba8161031b565b81146103c557600080fd5b5056fea26469706673582212204be679d1277b90880b0bcbb9836dd5f28dee6397dee64b37d70a32abe123b13964736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1A1 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x213 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x2B5 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x25F JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x325 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0xC PUSH1 0x1 EQ PUSH2 0x15E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x155 SWAP1 PUSH2 0x22E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x172 JUMPI PUSH2 0x171 PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x18A JUMPI PUSH2 0x189 PUSH2 0x325 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19B DUP2 PUSH2 0x3B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B8 JUMPI PUSH2 0x1B7 PUSH2 0x383 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C6 DUP6 DUP3 DUP7 ADD PUSH2 0x18C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D7 DUP6 DUP3 DUP7 ADD PUSH2 0x18C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EA DUP2 PUSH2 0x30F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FD PUSH1 0x14 DUP4 PUSH2 0x24E JUMP JUMPDEST SWAP2 POP PUSH2 0x208 DUP3 PUSH2 0x388 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x228 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x247 DUP2 PUSH2 0x1F0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26A DUP3 PUSH2 0x31B JUMP JUMPDEST SWAP2 POP PUSH2 0x275 DUP4 PUSH2 0x31B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2AA JUMPI PUSH2 0x2A9 PUSH2 0x354 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0 DUP3 PUSH2 0x31B JUMP JUMPDEST SWAP2 POP PUSH2 0x2CB DUP4 PUSH2 0x31B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x304 JUMPI PUSH2 0x303 PUSH2 0x354 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x3120776569206E6F7420657175616C20746F2031000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x3BA DUP2 PUSH2 0x31B JUMP JUMPDEST DUP2 EQ PUSH2 0x3C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4B 0xE6 PUSH26 0xD1277B90880B0BCBB9836DD5F28DEE6397DEE64B37D70A32ABE1 0x23 0xB1 CODECOPY PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1166:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;771:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;394:369;;;:::i;:::-;;86:300;;;:::i;:::-;;771:454;840:4;857:16;876:5;857:24;;1123:9;1108:12;:24;;;;:::i;:::-;1100:5;:32;;;;:::i;:::-;1081:15;:51;1077:102;;1163:4;1149:18;;1077:102;1206:11;1199:18;;;771:454;;;;:::o;394:369::-;481:1;468:9;:14;461:22;;;;:::i;:::-;;544:10;531:9;:23;524:31;;;;:::i;:::-;;617:10;606:7;:21;599:29;;;;:::i;:::-;;684:8;674:6;:18;667:26;;;;:::i;:::-;;748:6;737:7;:17;730:25;;;;:::i;:::-;;394:369::o;86:300::-;199:2;190:5;:11;182:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;296:3;286:6;:13;279:21;;;;:::i;:::-;;373:4;362:7;:15;355:23;;;;:::i;:::-;;86:300::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:366::-;889:3;910:67;974:2;969:3;910:67;:::i;:::-;903:74;;986:93;1075:3;986:93;:::i;:::-;1104:2;1099:3;1095:12;1088:19;;747:366;;;:::o;1119:210::-;1206:4;1244:2;1233:9;1229:18;1221:26;;1257:65;1319:1;1308:9;1304:17;1295:6;1257:65;:::i;:::-;1119:210;;;;:::o;1335:419::-;1501:4;1539:2;1528:9;1524:18;1516:26;;1588:9;1582:4;1578:20;1574:1;1563:9;1559:17;1552:47;1616:131;1742:4;1616:131;:::i;:::-;1608:139;;1335:419;;;:::o;1841:169::-;1925:11;1959:6;1954:3;1947:19;1999:4;1994:3;1990:14;1975:29;;1841:169;;;;:::o;2016:305::-;2056:3;2075:20;2093:1;2075:20;:::i;:::-;2070:25;;2109:20;2127:1;2109:20;:::i;:::-;2104:25;;2263:1;2195:66;2191:74;2188:1;2185:81;2182:107;;;2269:18;;:::i;:::-;2182:107;2313:1;2310;2306:9;2299:16;;2016:305;;;;:::o;2327:348::-;2367:7;2390:20;2408:1;2390:20;:::i;:::-;2385:25;;2424:20;2442:1;2424:20;:::i;:::-;2419:25;;2612:1;2544:66;2540:74;2537:1;2534:81;2529:1;2522:9;2515:17;2511:105;2508:131;;;2619:18;;:::i;:::-;2508:131;2667:1;2664;2660:9;2649:20;;2327:348;;;;:::o;2681:90::-;2715:7;2758:5;2751:13;2744:21;2733:32;;2681:90;;;:::o;2777:77::-;2814:7;2843:5;2832:16;;2777:77;;;:::o;2860:180::-;2908:77;2905:1;2898:88;3005:4;3002:1;2995:15;3029:4;3026:1;3019:15;3046:180;3094:77;3091:1;3084:88;3191:4;3188:1;3181:15;3215:4;3212:1;3205:15;3355:117;3464:1;3461;3454:12;3478:170;3618:22;3614:1;3606:6;3602:14;3595:46;3478:170;:::o;3654:122::-;3727:24;3745:5;3727:24;:::i;:::-;3720:5;3717:35;3707:63;;3766:1;3763;3756:12;3707:63;3654:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "204400", + "executionCost": "245", + "totalCost": "204645" + }, + "external": { + "etherUnitExample()": "478", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1228, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1228, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1228, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1228, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1228, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1228, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1228, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a26469706673582212204be679d1277b90880b0bcbb9836dd5f28dee6397dee64b37d70a32abe123b13964736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1228, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1228, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1228, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1228, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1228, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1228, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1228, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1228, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1228, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1228, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1228, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1228, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1228, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1228, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1228, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1228, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1228, + "name": "REVERT", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 771, + "end": 1225, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 771, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 771, + "end": 1225, + "name": "DUP1", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "SUB", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "DUP2", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "ADD", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 771, + "end": 1225, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 771, + "end": 1225, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 771, + "end": 1225, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 771, + "end": 1225, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 771, + "end": 1225, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 771, + "end": 1225, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 771, + "end": 1225, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 771, + "end": 1225, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 771, + "end": 1225, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 771, + "end": 1225, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 771, + "end": 1225, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 771, + "end": 1225, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 771, + "end": 1225, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "DUP1", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "SUB", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "RETURN", + "source": 0 + }, + { + "begin": 394, + "end": 763, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 394, + "end": 763, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 394, + "end": 763, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 394, + "end": 763, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 394, + "end": 763, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 394, + "end": 763, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 394, + "end": 763, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 394, + "end": 763, + "name": "STOP", + "source": 0 + }, + { + "begin": 86, + "end": 386, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 86, + "end": 386, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 386, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 386, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 386, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 86, + "end": 386, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 386, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 386, + "name": "STOP", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 771, + "end": 1225, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 840, + "end": 844, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 857, + "end": 873, + "name": "DUP1", + "source": 0 + }, + { + "begin": 876, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 857, + "end": 881, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 857, + "end": 881, + "name": "POP", + "source": 0 + }, + { + "begin": 1123, + "end": 1132, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1108, + "end": 1120, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1108, + "end": 1132, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1108, + "end": 1132, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1108, + "end": 1132, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1108, + "end": 1132, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1108, + "end": 1132, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1108, + "end": 1132, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1108, + "end": 1132, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1100, + "end": 1105, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1100, + "end": 1132, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1100, + "end": 1132, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1100, + "end": 1132, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1100, + "end": 1132, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1100, + "end": 1132, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1100, + "end": 1132, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1100, + "end": 1132, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1081, + "end": 1096, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1081, + "end": 1132, + "name": "LT", + "source": 0 + }, + { + "begin": 1077, + "end": 1179, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1077, + "end": 1179, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1163, + "end": 1167, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1149, + "end": 1167, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1149, + "end": 1167, + "name": "POP", + "source": 0 + }, + { + "begin": 1077, + "end": 1179, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1077, + "end": 1179, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1206, + "end": 1217, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1199, + "end": 1217, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1199, + "end": 1217, + "name": "POP", + "source": 0 + }, + { + "begin": 1199, + "end": 1217, + "name": "POP", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "POP", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "POP", + "source": 0 + }, + { + "begin": 771, + "end": 1225, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 394, + "end": 763, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 394, + "end": 763, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 481, + "end": 482, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 468, + "end": 477, + "name": "DUP1", + "source": 0 + }, + { + "begin": 468, + "end": 482, + "name": "EQ", + "source": 0 + }, + { + "begin": 461, + "end": 483, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 461, + "end": 483, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 461, + "end": 483, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 461, + "end": 483, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 461, + "end": 483, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 461, + "end": 483, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 461, + "end": 483, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 461, + "end": 483, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 461, + "end": 483, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 544, + "end": 554, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 531, + "end": 540, + "name": "DUP1", + "source": 0 + }, + { + "begin": 531, + "end": 554, + "name": "EQ", + "source": 0 + }, + { + "begin": 524, + "end": 555, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 524, + "end": 555, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 524, + "end": 555, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 524, + "end": 555, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 524, + "end": 555, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 524, + "end": 555, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 524, + "end": 555, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 524, + "end": 555, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 524, + "end": 555, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 617, + "end": 627, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 606, + "end": 613, + "name": "DUP1", + "source": 0 + }, + { + "begin": 606, + "end": 627, + "name": "EQ", + "source": 0 + }, + { + "begin": 599, + "end": 628, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 599, + "end": 628, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 599, + "end": 628, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 599, + "end": 628, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 599, + "end": 628, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 599, + "end": 628, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 599, + "end": 628, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 599, + "end": 628, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 599, + "end": 628, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 684, + "end": 692, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 674, + "end": 680, + "name": "DUP1", + "source": 0 + }, + { + "begin": 674, + "end": 692, + "name": "EQ", + "source": 0 + }, + { + "begin": 667, + "end": 693, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 667, + "end": 693, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 667, + "end": 693, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 667, + "end": 693, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 667, + "end": 693, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 667, + "end": 693, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 667, + "end": 693, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 667, + "end": 693, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 667, + "end": 693, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 748, + "end": 754, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 737, + "end": 744, + "name": "DUP1", + "source": 0 + }, + { + "begin": 737, + "end": 754, + "name": "EQ", + "source": 0 + }, + { + "begin": 730, + "end": 755, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 730, + "end": 755, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 730, + "end": 755, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 730, + "end": 755, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 730, + "end": 755, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 730, + "end": 755, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 730, + "end": 755, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 730, + "end": 755, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 730, + "end": 755, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 394, + "end": 763, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 86, + "end": 386, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 386, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 199, + "end": 201, + "name": "PUSH", + "source": 0, + "value": "C" + }, + { + "begin": 190, + "end": 195, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 190, + "end": 201, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 226, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 226, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 226, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 182, + "end": 226, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 182, + "end": 226, + "name": "PUSH", + "source": 0, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 182, + "end": 226, + "name": "DUP2", + "source": 0 + }, + { + "begin": 182, + "end": 226, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 182, + "end": 226, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 182, + "end": 226, + "name": "ADD", + "source": 0 + }, + { + "begin": 182, + "end": 226, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 226, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 182, + "end": 226, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 182, + "end": 226, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 226, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 226, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 226, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 182, + "end": 226, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 182, + "end": 226, + "name": "DUP1", + "source": 0 + }, + { + "begin": 182, + "end": 226, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 182, + "end": 226, + "name": "SUB", + "source": 0 + }, + { + "begin": 182, + "end": 226, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 182, + "end": 226, + "name": "REVERT", + "source": 0 + }, + { + "begin": 182, + "end": 226, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 226, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 296, + "end": 299, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 286, + "end": 292, + "name": "DUP1", + "source": 0 + }, + { + "begin": 286, + "end": 299, + "name": "EQ", + "source": 0 + }, + { + "begin": 279, + "end": 300, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 279, + "end": 300, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 279, + "end": 300, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 279, + "end": 300, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 279, + "end": 300, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 279, + "end": 300, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 279, + "end": 300, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 279, + "end": 300, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 279, + "end": 300, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 373, + "end": 377, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 362, + "end": 369, + "name": "DUP1", + "source": 0 + }, + { + "begin": 362, + "end": 377, + "name": "EQ", + "source": 0 + }, + { + "begin": 355, + "end": 378, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 355, + "end": 378, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 355, + "end": 378, + "name": "PUSH [tag]", + "source": 0, + "value": "41" + }, + { + "begin": 355, + "end": 378, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 355, + "end": 378, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 355, + "end": 378, + "name": "tag", + "source": 0, + "value": "41" + }, + { + "begin": 355, + "end": 378, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 355, + "end": 378, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 355, + "end": 378, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 386, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "56" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 1113, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 747, + "end": 1113, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 889, + "end": 892, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 910, + "end": 977, + "name": "PUSH [tag]", + "source": 1, + "value": "59" + }, + { + "begin": 974, + "end": 976, + "name": "PUSH", + "source": 1, + "value": "14" + }, + { + "begin": 969, + "end": 972, + "name": "DUP4", + "source": 1 + }, + { + "begin": 910, + "end": 977, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 910, + "end": 977, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 910, + "end": 977, + "name": "tag", + "source": 1, + "value": "59" + }, + { + "begin": 910, + "end": 977, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 903, + "end": 977, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 903, + "end": 977, + "name": "POP", + "source": 1 + }, + { + "begin": 986, + "end": 1079, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1075, + "end": 1078, + "name": "DUP3", + "source": 1 + }, + { + "begin": 986, + "end": 1079, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 986, + "end": 1079, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 986, + "end": 1079, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 986, + "end": 1079, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1104, + "end": 1106, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1099, + "end": 1102, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1095, + "end": 1107, + "name": "ADD", + "source": 1 + }, + { + "begin": 1088, + "end": 1107, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1088, + "end": 1107, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1119, + "end": 1329, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 1119, + "end": 1329, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1206, + "end": 1210, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1244, + "end": 1246, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1233, + "end": 1242, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1229, + "end": 1247, + "name": "ADD", + "source": 1 + }, + { + "begin": 1221, + "end": 1247, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1221, + "end": 1247, + "name": "POP", + "source": 1 + }, + { + "begin": 1257, + "end": 1322, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1319, + "end": 1320, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1308, + "end": 1317, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1304, + "end": 1321, + "name": "ADD", + "source": 1 + }, + { + "begin": 1295, + "end": 1301, + "name": "DUP5", + "source": 1 + }, + { + "begin": 1257, + "end": 1322, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 1257, + "end": 1322, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1257, + "end": 1322, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1257, + "end": 1322, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "POP", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "POP", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1335, + "end": 1754, + "name": "tag", + "source": 1, + "value": "37" + }, + { + "begin": 1335, + "end": 1754, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1501, + "end": 1505, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1539, + "end": 1541, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1528, + "end": 1537, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1524, + "end": 1542, + "name": "ADD", + "source": 1 + }, + { + "begin": 1516, + "end": 1542, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1516, + "end": 1542, + "name": "POP", + "source": 1 + }, + { + "begin": 1588, + "end": 1597, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1582, + "end": 1586, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1578, + "end": 1598, + "name": "SUB", + "source": 1 + }, + { + "begin": 1574, + "end": 1575, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1563, + "end": 1572, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1559, + "end": 1576, + "name": "ADD", + "source": 1 + }, + { + "begin": 1552, + "end": 1599, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 1616, + "end": 1747, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1742, + "end": 1746, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1616, + "end": 1747, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 1616, + "end": 1747, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1616, + "end": 1747, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1616, + "end": 1747, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1608, + "end": 1747, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1608, + "end": 1747, + "name": "POP", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "POP", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1841, + "end": 2010, + "name": "tag", + "source": 1, + "value": "60" + }, + { + "begin": 1841, + "end": 2010, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1925, + "end": 1936, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1959, + "end": 1965, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1954, + "end": 1957, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1947, + "end": 1966, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 1999, + "end": 2003, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1994, + "end": 1997, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1990, + "end": 2004, + "name": "ADD", + "source": 1 + }, + { + "begin": 1975, + "end": 2004, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1975, + "end": 2004, + "name": "POP", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "POP", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "POP", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2016, + "end": 2321, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 2016, + "end": 2321, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2056, + "end": 2059, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2075, + "end": 2095, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 2093, + "end": 2094, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2075, + "end": 2095, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2075, + "end": 2095, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2075, + "end": 2095, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 2075, + "end": 2095, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2070, + "end": 2095, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2070, + "end": 2095, + "name": "POP", + "source": 1 + }, + { + "begin": 2109, + "end": 2129, + "name": "PUSH [tag]", + "source": 1, + "value": "73" + }, + { + "begin": 2127, + "end": 2128, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2109, + "end": 2129, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2109, + "end": 2129, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2109, + "end": 2129, + "name": "tag", + "source": 1, + "value": "73" + }, + { + "begin": 2109, + "end": 2129, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2104, + "end": 2129, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2104, + "end": 2129, + "name": "POP", + "source": 1 + }, + { + "begin": 2263, + "end": 2264, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2195, + "end": 2261, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2191, + "end": 2265, + "name": "SUB", + "source": 1 + }, + { + "begin": 2188, + "end": 2189, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2185, + "end": 2266, + "name": "GT", + "source": 1 + }, + { + "begin": 2182, + "end": 2289, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2182, + "end": 2289, + "name": "PUSH [tag]", + "source": 1, + "value": "74" + }, + { + "begin": 2182, + "end": 2289, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2269, + "end": 2287, + "name": "PUSH [tag]", + "source": 1, + "value": "75" + }, + { + "begin": 2269, + "end": 2287, + "name": "PUSH [tag]", + "source": 1, + "value": "76" + }, + { + "begin": 2269, + "end": 2287, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2269, + "end": 2287, + "name": "tag", + "source": 1, + "value": "75" + }, + { + "begin": 2269, + "end": 2287, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2182, + "end": 2289, + "name": "tag", + "source": 1, + "value": "74" + }, + { + "begin": 2182, + "end": 2289, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2313, + "end": 2314, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2310, + "end": 2311, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2306, + "end": 2315, + "name": "ADD", + "source": 1 + }, + { + "begin": 2299, + "end": 2315, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2299, + "end": 2315, + "name": "POP", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "POP", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "POP", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2327, + "end": 2675, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 2327, + "end": 2675, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2367, + "end": 2374, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2390, + "end": 2410, + "name": "PUSH [tag]", + "source": 1, + "value": "78" + }, + { + "begin": 2408, + "end": 2409, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2390, + "end": 2410, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2390, + "end": 2410, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2390, + "end": 2410, + "name": "tag", + "source": 1, + "value": "78" + }, + { + "begin": 2390, + "end": 2410, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2385, + "end": 2410, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2385, + "end": 2410, + "name": "POP", + "source": 1 + }, + { + "begin": 2424, + "end": 2444, + "name": "PUSH [tag]", + "source": 1, + "value": "79" + }, + { + "begin": 2442, + "end": 2443, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2424, + "end": 2444, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2424, + "end": 2444, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2424, + "end": 2444, + "name": "tag", + "source": 1, + "value": "79" + }, + { + "begin": 2424, + "end": 2444, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2419, + "end": 2444, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2419, + "end": 2444, + "name": "POP", + "source": 1 + }, + { + "begin": 2612, + "end": 2613, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2544, + "end": 2610, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2540, + "end": 2614, + "name": "DIV", + "source": 1 + }, + { + "begin": 2537, + "end": 2538, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2534, + "end": 2615, + "name": "GT", + "source": 1 + }, + { + "begin": 2529, + "end": 2530, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2522, + "end": 2531, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2515, + "end": 2532, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2511, + "end": 2616, + "name": "AND", + "source": 1 + }, + { + "begin": 2508, + "end": 2639, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2508, + "end": 2639, + "name": "PUSH [tag]", + "source": 1, + "value": "80" + }, + { + "begin": 2508, + "end": 2639, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2619, + "end": 2637, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2619, + "end": 2637, + "name": "PUSH [tag]", + "source": 1, + "value": "76" + }, + { + "begin": 2619, + "end": 2637, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2619, + "end": 2637, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2619, + "end": 2637, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2508, + "end": 2639, + "name": "tag", + "source": 1, + "value": "80" + }, + { + "begin": 2508, + "end": 2639, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2667, + "end": 2668, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2664, + "end": 2665, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2660, + "end": 2669, + "name": "MUL", + "source": 1 + }, + { + "begin": 2649, + "end": 2669, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2649, + "end": 2669, + "name": "POP", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "POP", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "POP", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2681, + "end": 2771, + "name": "tag", + "source": 1, + "value": "56" + }, + { + "begin": 2681, + "end": 2771, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2715, + "end": 2722, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2758, + "end": 2763, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2751, + "end": 2764, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2744, + "end": 2765, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2733, + "end": 2765, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2733, + "end": 2765, + "name": "POP", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "POP", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2777, + "end": 2854, + "name": "tag", + "source": 1, + "value": "72" + }, + { + "begin": 2777, + "end": 2854, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2814, + "end": 2821, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2843, + "end": 2848, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2832, + "end": 2848, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2832, + "end": 2848, + "name": "POP", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "POP", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2860, + "end": 3040, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 2860, + "end": 3040, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2908, + "end": 2985, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2905, + "end": 2906, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2898, + "end": 2986, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3005, + "end": 3009, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 3002, + "end": 3003, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2995, + "end": 3010, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3029, + "end": 3033, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 3026, + "end": 3027, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3019, + "end": 3034, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3046, + "end": 3226, + "name": "tag", + "source": 1, + "value": "76" + }, + { + "begin": 3046, + "end": 3226, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3094, + "end": 3171, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 3091, + "end": 3092, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3084, + "end": 3172, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3191, + "end": 3195, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 3188, + "end": 3189, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 3181, + "end": 3196, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3215, + "end": 3219, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 3212, + "end": 3213, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3205, + "end": 3220, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3355, + "end": 3472, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 3355, + "end": 3472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3464, + "end": 3465, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3461, + "end": 3462, + "name": "DUP1", + "source": 1 + }, + { + "begin": 3454, + "end": 3466, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3478, + "end": 3648, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 3478, + "end": 3648, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3618, + "end": 3640, + "name": "PUSH", + "source": 1, + "value": "3120776569206E6F7420657175616C20746F2031000000000000000000000000" + }, + { + "begin": 3614, + "end": 3615, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3606, + "end": 3612, + "name": "DUP3", + "source": 1 + }, + { + "begin": 3602, + "end": 3616, + "name": "ADD", + "source": 1 + }, + { + "begin": 3595, + "end": 3641, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3478, + "end": 3648, + "name": "POP", + "source": 1 + }, + { + "begin": 3478, + "end": 3648, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 3654, + "end": 3776, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 3654, + "end": 3776, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3727, + "end": 3751, + "name": "PUSH [tag]", + "source": 1, + "value": "91" + }, + { + "begin": 3745, + "end": 3750, + "name": "DUP2", + "source": 1 + }, + { + "begin": 3727, + "end": 3751, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 3727, + "end": 3751, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 3727, + "end": 3751, + "name": "tag", + "source": 1, + "value": "91" + }, + { + "begin": 3727, + "end": 3751, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3720, + "end": 3725, + "name": "DUP2", + "source": 1 + }, + { + "begin": 3717, + "end": 3752, + "name": "EQ", + "source": 1 + }, + { + "begin": 3707, + "end": 3770, + "name": "PUSH [tag]", + "source": 1, + "value": "92" + }, + { + "begin": 3707, + "end": 3770, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 3766, + "end": 3767, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3763, + "end": 3764, + "name": "DUP1", + "source": 1 + }, + { + "begin": 3756, + "end": 3768, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3707, + "end": 3770, + "name": "tag", + "source": 1, + "value": "92" + }, + { + "begin": 3707, + "end": 3770, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3654, + "end": 3776, + "name": "POP", + "source": 1 + }, + { + "begin": 3654, + "end": 3776, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0xf48e3909db2a3ecb16a55f00be15e11b5be972ec6ea3ec3d66bb0950d6fe8290\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e40bd593cadc8f5871711dc2ce4b65bdfe6129737d5fe4f8e05e7781fcda4f4f\",\"dweb:/ipfs/QmeKyYzP1g1GdXemL7qQ1es2Pou3D78TTMvQzHD47bAF5F\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 89 + ] + }, + "id": 90, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 89, + "linearizedBaseContracts": [ + 89 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 23, + "nodeType": "Block", + "src": "126:260:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "190:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3132", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "199:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "190:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "3120776569206e6f7420657175616c20746f2031", + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "203:22:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd", + "typeString": "literal_string \"1 wei not equal to 1\"" + }, + "value": "1 wei not equal to 1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd", + "typeString": "literal_string \"1 wei not equal to 1\"" + } + ], + "id": 4, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "182:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:44:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10, + "nodeType": "ExpressionStatement", + "src": "182:44:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "286:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "296:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "286:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 11, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "279:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "279:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16, + "nodeType": "ExpressionStatement", + "src": "279:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "362:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "373:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "362:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 17, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "355:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "355:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 22, + "nodeType": "ExpressionStatement", + "src": "355:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 24, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "95:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "111:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "126:0:0" + }, + "scope": 89, + "src": "86:300:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 57, + "nodeType": "Block", + "src": "433:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "468:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "481:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "468:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 27, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "461:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 31, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "461:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32, + "nodeType": "ExpressionStatement", + "src": "461:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "531:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "544:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "531:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 33, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "524:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 37, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "524:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38, + "nodeType": "ExpressionStatement", + "src": "524:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "606:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "617:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "606:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 39, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "599:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "599:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 44, + "nodeType": "ExpressionStatement", + "src": "599:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "674:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "684:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "674:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 45, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "667:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "667:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 50, + "nodeType": "ExpressionStatement", + "src": "667:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "737:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "748:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "737:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 51, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "730:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 55, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "730:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 56, + "nodeType": "ExpressionStatement", + "src": "730:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 58, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "403:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "418:2:0" + }, + "returnParameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [], + "src": "433:0:0" + }, + "scope": 89, + "src": "394:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 87, + "nodeType": "Block", + "src": "846:379:0", + "statements": [ + { + "assignments": [ + 68 + ], + "declarations": [ + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "862:11:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "857:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 67, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "857:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 70, + "initialValue": { + "hexValue": "66616c7365", + "id": 69, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "876:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "857:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 71, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1081:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1081:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 73, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "1100:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 74, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "1108:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1123:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1108:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1100:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1081:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 84, + "nodeType": "IfStatement", + "src": "1077:102:0", + "trueBody": { + "id": 83, + "nodeType": "Block", + "src": "1134:45:0", + "statements": [ + { + "expression": { + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 79, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1149:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1163:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1149:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 82, + "nodeType": "ExpressionStatement", + "src": "1149:18:0" + } + ] + } + }, + { + "expression": { + "id": 85, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1206:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 66, + "id": 86, + "nodeType": "Return", + "src": "1199:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 88, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "780:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 63, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 60, + "mutability": "mutable", + "name": "start", + "nameLocation": "794:5:0", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "789:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 59, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "789:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "806:12:0", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "801:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 61, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "801:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "788:31:0" + }, + "returnParameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 65, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "840:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 64, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "840:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "839:6:0" + }, + "scope": 89, + "src": "771:454:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 90, + "src": "62:1166:0", + "usedErrors": [] + } + ], + "src": "33:1195:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/1d2172adc3072ffc027c9bb5a8188efb.json b/Ep4/artifacts/build-info/1d2172adc3072ffc027c9bb5a8188efb.json new file mode 100644 index 0000000..5a02dc0 --- /dev/null +++ b/Ep4/artifacts/build-info/1d2172adc3072ffc027c9bb5a8188efb.json @@ -0,0 +1,6315 @@ +{ + "id": "1d2172adc3072ffc027c9bb5a8188efb", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n\r\n function etherUnitExample() public pure {\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 1);\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n \r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1210 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1210 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":745:1207 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":88:360 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":745:1207 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":814:818 bool */\n 0x00\n /* \"Ep4/example.sol\":831:847 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":850:855 false */\n 0x00\n /* \"Ep4/example.sol\":831:855 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1105:1114 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1090:1102 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1090:1114 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1082:1087 start */\n dup5\n /* \"Ep4/example.sol\":1082:1114 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1063:1078 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1063:1114 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1059:1161 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1145:1149 true */\n 0x01\n /* \"Ep4/example.sol\":1131:1149 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1059:1161 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1188:1199 isValidated */\n dup1\n /* \"Ep4/example.sol\":1181:1199 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":745:1207 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":455:456 1 */\n 0x01\n /* \"Ep4/example.sol\":442:451 1 seconds */\n dup1\n /* \"Ep4/example.sol\":442:456 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":435:457 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":518:528 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":505:514 1 minutes */\n dup1\n /* \"Ep4/example.sol\":505:528 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":498:529 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":591:601 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":580:587 1 hours */\n dup1\n /* \"Ep4/example.sol\":580:601 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":573:602 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":658:666 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":648:654 1 days */\n dup1\n /* \"Ep4/example.sol\":648:666 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":641:667 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":722:728 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":711:718 1 weeks */\n dup1\n /* \"Ep4/example.sol\":711:728 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":704:729 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":88:360 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":198:199 1 */\n 0x01\n /* \"Ep4/example.sol\":189:194 1 wei */\n dup1\n /* \"Ep4/example.sol\":189:199 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":182:200 assert(1 wei == 1) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":270:273 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":260:266 1 gwei */\n dup1\n /* \"Ep4/example.sol\":260:273 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":253:274 assert(1 gwei == 1e9) */\n tag_37\n jumpi\n tag_38\n tag_25\n jump\t// in\n tag_38:\n tag_37:\n /* \"Ep4/example.sol\":347:351 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":336:343 1 ether */\n dup1\n /* \"Ep4/example.sol\":336:351 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":329:352 assert(1 ether == 1e18) */\n tag_39\n jumpi\n tag_40\n tag_25\n jump\t// in\n tag_40:\n tag_39:\n /* \"Ep4/example.sol\":88:360 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_42:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_44\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_45\n jump\t// in\n tag_44:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_47\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_48\n tag_49\n jump\t// in\n tag_48:\n /* \"#utility.yul\":245:364 */\n tag_47:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_50\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_42\n jump\t// in\n tag_50:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_51\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_42\n jump\t// in\n tag_51:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_52:\n /* \"#utility.yul\":713:734 */\n tag_54\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_55\n jump\t// in\n tag_54:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_57\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_52\n jump\t// in\n tag_57:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_61\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_63\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_62\n jump\t// in\n tag_63:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_64\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_65\n tag_66\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1210:1317 */\n tag_64:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_68\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_62\n jump\t// in\n tag_68:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_69\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_62\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_70\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_71\n tag_66\n jump\t// in\n tag_71:\n /* \"#utility.yul\":1536:1667 */\n tag_70:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_55:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_62:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_66:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_49:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_45:\n /* \"#utility.yul\":2579:2603 */\n tag_80\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_62\n jump\t// in\n tag_80:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_81\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_81:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212206b798eb3d379d5f939f274376d830acbed7f7edcfc588cd545c6a07fe7f7c9aa64736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5061034e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061016e565b61008a565b60405161006d91906101bd565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061022e565b846100a991906101d8565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61029e565b5b603c80146100e0576100df61029e565b5b610e1080146100f2576100f161029e565b5b6201518080146101055761010461029e565b5b62093a8080146101185761011761029e565b5b565b6001801461012b5761012a61029e565b5b633b9aca00801461013f5761013e61029e565b5b670de0b6b3a764000080146101575761015661029e565b5b565b60008135905061016881610301565b92915050565b60008060408385031215610185576101846102fc565b5b600061019385828601610159565b92505060206101a485828601610159565b9150509250929050565b6101b781610288565b82525050565b60006020820190506101d260008301846101ae565b92915050565b60006101e382610294565b91506101ee83610294565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610223576102226102cd565b5b828201905092915050565b600061023982610294565b915061024483610294565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561027d5761027c6102cd565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61030a81610294565b811461031557600080fd5b5056fea26469706673582212206b798eb3d379d5f939f274376d830acbed7f7edcfc588cd545c6a07fe7f7c9aa64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34E DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x16E JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x22E JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1D8 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x13F JUMPI PUSH2 0x13E PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x157 JUMPI PUSH2 0x156 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x168 DUP2 PUSH2 0x301 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x185 JUMPI PUSH2 0x184 PUSH2 0x2FC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x193 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A4 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B7 DUP2 PUSH2 0x288 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E3 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EE DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x223 JUMPI PUSH2 0x222 PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x239 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x244 DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x27D JUMPI PUSH2 0x27C PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30A DUP2 PUSH2 0x294 JUMP JUMPDEST DUP2 EQ PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0x798EB3D379D5F939F274376D DUP4 EXP 0xCB 0xED PUSH32 0x7EDCFC588CD545C6A07FE7F7C9AA64736F6C6343000807003300000000000000 ", + "sourceMap": "62:1148:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_23": { + "entryPoint": 282, + "id": 23, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_57": { + "entryPoint": 190, + "id": 57, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_87": { + "entryPoint": 138, + "id": 87, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 345, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 366, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 430, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 445, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 472, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 558, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 648, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 660, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 670, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 717, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 764, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 769, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061016e565b61008a565b60405161006d91906101bd565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061022e565b846100a991906101d8565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61029e565b5b603c80146100e0576100df61029e565b5b610e1080146100f2576100f161029e565b5b6201518080146101055761010461029e565b5b62093a8080146101185761011761029e565b5b565b6001801461012b5761012a61029e565b5b633b9aca00801461013f5761013e61029e565b5b670de0b6b3a764000080146101575761015661029e565b5b565b60008135905061016881610301565b92915050565b60008060408385031215610185576101846102fc565b5b600061019385828601610159565b92505060206101a485828601610159565b9150509250929050565b6101b781610288565b82525050565b60006020820190506101d260008301846101ae565b92915050565b60006101e382610294565b91506101ee83610294565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610223576102226102cd565b5b828201905092915050565b600061023982610294565b915061024483610294565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561027d5761027c6102cd565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61030a81610294565b811461031557600080fd5b5056fea26469706673582212206b798eb3d379d5f939f274376d830acbed7f7edcfc588cd545c6a07fe7f7c9aa64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x16E JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x22E JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1D8 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x13F JUMPI PUSH2 0x13E PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x157 JUMPI PUSH2 0x156 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x168 DUP2 PUSH2 0x301 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x185 JUMPI PUSH2 0x184 PUSH2 0x2FC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x193 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A4 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B7 DUP2 PUSH2 0x288 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E3 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EE DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x223 JUMPI PUSH2 0x222 PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x239 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x244 DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x27D JUMPI PUSH2 0x27C PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30A DUP2 PUSH2 0x294 JUMP JUMPDEST DUP2 EQ PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0x798EB3D379D5F939F274376D DUP4 EXP 0xCB 0xED PUSH32 0x7EDCFC588CD545C6A07FE7F7C9AA64736F6C6343000807003300000000000000 ", + "sourceMap": "62:1148:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;745:462;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;368:369;;;:::i;:::-;;88:272;;;:::i;:::-;;745:462;814:4;831:16;850:5;831:24;;1105:9;1090:12;:24;;;;:::i;:::-;1082:5;:32;;;;:::i;:::-;1063:15;:51;1059:102;;1145:4;1131:18;;1059:102;1188:11;1181:18;;;745:462;;;;:::o;368:369::-;455:1;442:9;:14;435:22;;;;:::i;:::-;;518:10;505:9;:23;498:31;;;;:::i;:::-;;591:10;580:7;:21;573:29;;;;:::i;:::-;;658:8;648:6;:18;641:26;;;;:::i;:::-;;722:6;711:7;:17;704:25;;;;:::i;:::-;;368:369::o;88:272::-;198:1;189:5;:10;182:18;;;;:::i;:::-;;270:3;260:6;:13;253:21;;;;:::i;:::-;;347:4;336:7;:15;329:23;;;;:::i;:::-;;88:272::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "169200", + "executionCost": "214", + "totalCost": "169414" + }, + "external": { + "etherUnitExample()": "235", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1210, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1210, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1210, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1210, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1210, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1210, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1210, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a26469706673582212206b798eb3d379d5f939f274376d830acbed7f7edcfc588cd545c6a07fe7f7c9aa64736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1210, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1210, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1210, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1210, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1210, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1210, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1210, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1210, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1210, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1210, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1210, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1210, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1210, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1210, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1210, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1210, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1210, + "name": "REVERT", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 745, + "end": 1207, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 745, + "end": 1207, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 745, + "end": 1207, + "name": "DUP1", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "SUB", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "DUP2", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "ADD", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 745, + "end": 1207, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 745, + "end": 1207, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1207, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 745, + "end": 1207, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 745, + "end": 1207, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1207, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 745, + "end": 1207, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 745, + "end": 1207, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 745, + "end": 1207, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 745, + "end": 1207, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1207, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 745, + "end": 1207, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 745, + "end": 1207, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "DUP1", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "SUB", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "RETURN", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 368, + "end": 737, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 368, + "end": 737, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "STOP", + "source": 0 + }, + { + "begin": 88, + "end": 360, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 88, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 360, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 360, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 360, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 88, + "end": 360, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 360, + "name": "STOP", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 745, + "end": 1207, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 814, + "end": 818, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 831, + "end": 847, + "name": "DUP1", + "source": 0 + }, + { + "begin": 850, + "end": 855, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 831, + "end": 855, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 831, + "end": 855, + "name": "POP", + "source": 0 + }, + { + "begin": 1105, + "end": 1114, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1090, + "end": 1102, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1090, + "end": 1114, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1090, + "end": 1114, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1090, + "end": 1114, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1090, + "end": 1114, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1090, + "end": 1114, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1090, + "end": 1114, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1090, + "end": 1114, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1082, + "end": 1087, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1082, + "end": 1114, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1082, + "end": 1114, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1082, + "end": 1114, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1082, + "end": 1114, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1082, + "end": 1114, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1082, + "end": 1114, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1082, + "end": 1114, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1063, + "end": 1078, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1063, + "end": 1114, + "name": "LT", + "source": 0 + }, + { + "begin": 1059, + "end": 1161, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1059, + "end": 1161, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1145, + "end": 1149, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1131, + "end": 1149, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1131, + "end": 1149, + "name": "POP", + "source": 0 + }, + { + "begin": 1059, + "end": 1161, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1059, + "end": 1161, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1188, + "end": 1199, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1181, + "end": 1199, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1181, + "end": 1199, + "name": "POP", + "source": 0 + }, + { + "begin": 1181, + "end": 1199, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1207, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 455, + "end": 456, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 442, + "end": 451, + "name": "DUP1", + "source": 0 + }, + { + "begin": 442, + "end": 456, + "name": "EQ", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 435, + "end": 457, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 435, + "end": 457, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 518, + "end": 528, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 505, + "end": 514, + "name": "DUP1", + "source": 0 + }, + { + "begin": 505, + "end": 528, + "name": "EQ", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 498, + "end": 529, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 498, + "end": 529, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 591, + "end": 601, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 580, + "end": 587, + "name": "DUP1", + "source": 0 + }, + { + "begin": 580, + "end": 601, + "name": "EQ", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 573, + "end": 602, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 573, + "end": 602, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 658, + "end": 666, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 648, + "end": 654, + "name": "DUP1", + "source": 0 + }, + { + "begin": 648, + "end": 666, + "name": "EQ", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 641, + "end": 667, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 641, + "end": 667, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 722, + "end": 728, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 711, + "end": 718, + "name": "DUP1", + "source": 0 + }, + { + "begin": 711, + "end": 728, + "name": "EQ", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 704, + "end": 729, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 704, + "end": 729, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 88, + "end": 360, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 198, + "end": 199, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 189, + "end": 194, + "name": "DUP1", + "source": 0 + }, + { + "begin": 189, + "end": 199, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 182, + "end": 200, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 270, + "end": 273, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 260, + "end": 266, + "name": "DUP1", + "source": 0 + }, + { + "begin": 260, + "end": 273, + "name": "EQ", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 253, + "end": 274, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 253, + "end": 274, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "tag", + "source": 0, + "value": "37" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 347, + "end": 351, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 336, + "end": 343, + "name": "DUP1", + "source": 0 + }, + { + "begin": 336, + "end": 351, + "name": "EQ", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 329, + "end": 352, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 329, + "end": 352, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 360, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "42" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "54" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "54" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "68" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "68" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "80" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "80" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0xd9227d0151b81670ebde547744708e7c919861e470657a54c8e0b24dee320b3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a9eb373600a9406aabb043a7b622ff5139419f5e0f68f83d6212a6a71a7402f\",\"dweb:/ipfs/Qmb9ssMey3mHZ6K8JzFRYGdEzjwRT75WpLbJgp5exJYknM\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 88 + ] + }, + "id": 89, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 88, + "linearizedBaseContracts": [ + 88 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 22, + "nodeType": "Block", + "src": "128:232:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "189:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "198:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "189:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "182:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "182:18:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "260:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "270:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "260:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "253:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "253:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15, + "nodeType": "ExpressionStatement", + "src": "253:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "336:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "347:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "336:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 16, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "329:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "329:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21, + "nodeType": "ExpressionStatement", + "src": "329:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 23, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "97:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "128:0:0" + }, + "scope": 88, + "src": "88:272:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 56, + "nodeType": "Block", + "src": "407:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "442:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "455:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "442:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "435:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "435:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "435:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "505:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "518:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "505:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "498:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "498:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "498:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "580:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "591:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "580:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "573:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "573:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "573:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "648:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "658:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "648:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 44, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "641:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 49, + "nodeType": "ExpressionStatement", + "src": "641:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "711:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "722:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "711:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 50, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "704:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "704:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "704:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 57, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "377:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 24, + "nodeType": "ParameterList", + "parameters": [], + "src": "392:2:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "407:0:0" + }, + "scope": 88, + "src": "368:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 86, + "nodeType": "Block", + "src": "820:387:0", + "statements": [ + { + "assignments": [ + 67 + ], + "declarations": [ + { + "constant": false, + "id": 67, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "836:11:0", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "831:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 66, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "831:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 69, + "initialValue": { + "hexValue": "66616c7365", + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "850:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "831:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 70, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1063:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1063:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 72, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "1082:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 73, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "1090:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1105:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1090:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1082:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1063:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 83, + "nodeType": "IfStatement", + "src": "1059:102:0", + "trueBody": { + "id": 82, + "nodeType": "Block", + "src": "1116:45:0", + "statements": [ + { + "expression": { + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 78, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1131:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1145:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1131:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 81, + "nodeType": "ExpressionStatement", + "src": "1131:18:0" + } + ] + } + }, + { + "expression": { + "id": 84, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1188:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 65, + "id": 85, + "nodeType": "Return", + "src": "1181:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 87, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "754:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "start", + "nameLocation": "768:5:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "763:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 58, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "763:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "780:12:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "775:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 60, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "775:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "762:31:0" + }, + "returnParameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "814:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 63, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "814:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "813:6:0" + }, + "scope": 88, + "src": "745:462:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 89, + "src": "62:1148:0", + "usedErrors": [] + } + ], + "src": "33:1177:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/2b6e02e2185adfa9128b7055da265fac.json b/Ep4/artifacts/build-info/2b6e02e2185adfa9128b7055da265fac.json new file mode 100644 index 0000000..f756403 --- /dev/null +++ b/Ep4/artifacts/build-info/2b6e02e2185adfa9128b7055da265fac.json @@ -0,0 +1,6143 @@ +{ + "id": "2b6e02e2185adfa9128b7055da265fac", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n\r\n function etherUnitExample() public pure {\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 1);\r\n\r\n // 1 ether is equal to 10^18\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\t\t// 區塊的時間戳記至少在3秒以前, 才算有效\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1000 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1000 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":667:997 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":290:659 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":88:282 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":667:997 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":736:740 bool */\n 0x00\n /* \"Ep4/example.sol\":753:769 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":772:777 false */\n 0x00\n /* \"Ep4/example.sol\":753:777 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":895:904 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":880:892 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":880:904 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":872:877 start */\n dup5\n /* \"Ep4/example.sol\":872:904 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":853:868 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":853:904 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":849:951 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":935:939 true */\n 0x01\n /* \"Ep4/example.sol\":921:939 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":849:951 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":978:989 isValidated */\n dup1\n /* \"Ep4/example.sol\":971:989 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":667:997 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":290:659 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":377:378 1 */\n 0x01\n /* \"Ep4/example.sol\":364:373 1 seconds */\n dup1\n /* \"Ep4/example.sol\":364:378 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":357:379 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":440:450 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":427:436 1 minutes */\n dup1\n /* \"Ep4/example.sol\":427:450 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":420:451 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":513:523 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":502:509 1 hours */\n dup1\n /* \"Ep4/example.sol\":502:523 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":495:524 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":580:588 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":570:576 1 days */\n dup1\n /* \"Ep4/example.sol\":570:588 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":563:589 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":644:650 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":633:640 1 weeks */\n dup1\n /* \"Ep4/example.sol\":633:650 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":626:651 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":290:659 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":88:282 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":198:199 1 */\n 0x01\n /* \"Ep4/example.sol\":189:194 1 wei */\n dup1\n /* \"Ep4/example.sol\":189:199 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":182:200 assert(1 wei == 1) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":269:273 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":258:265 1 ether */\n dup1\n /* \"Ep4/example.sol\":258:273 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":251:274 assert(1 ether == 1e18) */\n tag_37\n jumpi\n tag_38\n tag_25\n jump\t// in\n tag_38:\n tag_37:\n /* \"Ep4/example.sol\":88:282 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_40:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_42\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_43\n jump\t// in\n tag_42:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_45\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_46\n tag_47\n jump\t// in\n tag_46:\n /* \"#utility.yul\":245:364 */\n tag_45:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_48\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_40\n jump\t// in\n tag_48:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_49\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_40\n jump\t// in\n tag_49:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_50:\n /* \"#utility.yul\":713:734 */\n tag_52\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_53\n jump\t// in\n tag_52:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_55\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_50\n jump\t// in\n tag_55:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_59\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_60\n jump\t// in\n tag_59:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_61\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_60\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_62\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_63\n tag_64\n jump\t// in\n tag_63:\n /* \"#utility.yul\":1210:1317 */\n tag_62:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_66\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_60\n jump\t// in\n tag_66:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_67\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_60\n jump\t// in\n tag_67:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_68\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_69\n tag_64\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1536:1667 */\n tag_68:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_53:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_60:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_64:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_47:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_43:\n /* \"#utility.yul\":2579:2603 */\n tag_78\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_60\n jump\t// in\n tag_78:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_79\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_79:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220a689d3f5bb2bee08fbf2cd4e11fc6dcaf049b8d717f630cccc2757c6599e7aa064736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5061033a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061015a565b61008a565b60405161006d91906101a9565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061021a565b846100a991906101c4565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61028a565b5b603c80146100e0576100df61028a565b5b610e1080146100f2576100f161028a565b5b6201518080146101055761010461028a565b5b62093a8080146101185761011761028a565b5b565b6001801461012b5761012a61028a565b5b670de0b6b3a764000080146101435761014261028a565b5b565b600081359050610154816102ed565b92915050565b60008060408385031215610171576101706102e8565b5b600061017f85828601610145565b925050602061019085828601610145565b9150509250929050565b6101a381610274565b82525050565b60006020820190506101be600083018461019a565b92915050565b60006101cf82610280565b91506101da83610280565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561020f5761020e6102b9565b5b828201905092915050565b600061022582610280565b915061023083610280565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610269576102686102b9565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6102f681610280565b811461030157600080fd5b5056fea2646970667358221220a689d3f5bb2bee08fbf2cd4e11fc6dcaf049b8d717f630cccc2757c6599e7aa064736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33A DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x15A JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x21A JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x28A JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x143 JUMPI PUSH2 0x142 PUSH2 0x28A JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x154 DUP2 PUSH2 0x2ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x171 JUMPI PUSH2 0x170 PUSH2 0x2E8 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17F DUP6 DUP3 DUP7 ADD PUSH2 0x145 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x190 DUP6 DUP3 DUP7 ADD PUSH2 0x145 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A3 DUP2 PUSH2 0x274 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1BE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x19A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CF DUP3 PUSH2 0x280 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DA DUP4 PUSH2 0x280 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x20F JUMPI PUSH2 0x20E PUSH2 0x2B9 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x225 DUP3 PUSH2 0x280 JUMP JUMPDEST SWAP2 POP PUSH2 0x230 DUP4 PUSH2 0x280 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x269 JUMPI PUSH2 0x268 PUSH2 0x2B9 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F6 DUP2 PUSH2 0x280 JUMP JUMPDEST DUP2 EQ PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 DUP10 0xD3 CREATE2 0xBB 0x2B 0xEE ADDMOD 0xFB CALLCODE 0xCD 0x4E GT 0xFC PUSH14 0xCAF049B8D717F630CCCC2757C659 SWAP15 PUSH27 0xA064736F6C63430008070033000000000000000000000000000000 ", + "sourceMap": "62:938:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_17": { + "entryPoint": 282, + "id": 17, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_51": { + "entryPoint": 190, + "id": 51, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_81": { + "entryPoint": 138, + "id": 81, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 325, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 346, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 410, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 425, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 452, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 538, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 628, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 640, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 650, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 697, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 744, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 749, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061015a565b61008a565b60405161006d91906101a9565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061021a565b846100a991906101c4565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61028a565b5b603c80146100e0576100df61028a565b5b610e1080146100f2576100f161028a565b5b6201518080146101055761010461028a565b5b62093a8080146101185761011761028a565b5b565b6001801461012b5761012a61028a565b5b670de0b6b3a764000080146101435761014261028a565b5b565b600081359050610154816102ed565b92915050565b60008060408385031215610171576101706102e8565b5b600061017f85828601610145565b925050602061019085828601610145565b9150509250929050565b6101a381610274565b82525050565b60006020820190506101be600083018461019a565b92915050565b60006101cf82610280565b91506101da83610280565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561020f5761020e6102b9565b5b828201905092915050565b600061022582610280565b915061023083610280565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610269576102686102b9565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6102f681610280565b811461030157600080fd5b5056fea2646970667358221220a689d3f5bb2bee08fbf2cd4e11fc6dcaf049b8d717f630cccc2757c6599e7aa064736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x15A JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x21A JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x28A JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x143 JUMPI PUSH2 0x142 PUSH2 0x28A JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x154 DUP2 PUSH2 0x2ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x171 JUMPI PUSH2 0x170 PUSH2 0x2E8 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17F DUP6 DUP3 DUP7 ADD PUSH2 0x145 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x190 DUP6 DUP3 DUP7 ADD PUSH2 0x145 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A3 DUP2 PUSH2 0x274 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1BE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x19A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CF DUP3 PUSH2 0x280 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DA DUP4 PUSH2 0x280 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x20F JUMPI PUSH2 0x20E PUSH2 0x2B9 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x225 DUP3 PUSH2 0x280 JUMP JUMPDEST SWAP2 POP PUSH2 0x230 DUP4 PUSH2 0x280 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x269 JUMPI PUSH2 0x268 PUSH2 0x2B9 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F6 DUP2 PUSH2 0x280 JUMP JUMPDEST DUP2 EQ PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 DUP10 0xD3 CREATE2 0xBB 0x2B 0xEE ADDMOD 0xFB CALLCODE 0xCD 0x4E GT 0xFC PUSH14 0xCAF049B8D717F630CCCC2757C659 SWAP15 PUSH27 0xA064736F6C63430008070033000000000000000000000000000000 ", + "sourceMap": "62:938:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;667:330;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;290:369;;;:::i;:::-;;88:194;;;:::i;:::-;;667:330;736:4;753:16;772:5;753:24;;895:9;880:12;:24;;;;:::i;:::-;872:5;:32;;;;:::i;:::-;853:15;:51;849:102;;935:4;921:18;;849:102;978:11;971:18;;;667:330;;;;:::o;290:369::-;377:1;364:9;:14;357:22;;;;:::i;:::-;;440:10;427:9;:23;420:31;;;;:::i;:::-;;513:10;502:7;:21;495:29;;;;:::i;:::-;;580:8;570:6;:18;563:26;;;;:::i;:::-;;644:6;633:7;:17;626:25;;;;:::i;:::-;;290:369::o;88:194::-;198:1;189:5;:10;182:18;;;;:::i;:::-;;269:4;258:7;:15;251:23;;;;:::i;:::-;;88:194::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "165200", + "executionCost": "208", + "totalCost": "165408" + }, + "external": { + "etherUnitExample()": "212", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1000, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1000, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1000, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1000, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1000, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1000, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1000, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220a689d3f5bb2bee08fbf2cd4e11fc6dcaf049b8d717f630cccc2757c6599e7aa064736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1000, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1000, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1000, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1000, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1000, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1000, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1000, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1000, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1000, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1000, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1000, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1000, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1000, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1000, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1000, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1000, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1000, + "name": "REVERT", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 667, + "end": 997, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 667, + "end": 997, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 667, + "end": 997, + "name": "DUP1", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "SUB", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "DUP2", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "ADD", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 667, + "end": 997, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 667, + "end": 997, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 667, + "end": 997, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 667, + "end": 997, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 667, + "end": 997, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 667, + "end": 997, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 667, + "end": 997, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 667, + "end": 997, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 667, + "end": 997, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 667, + "end": 997, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 667, + "end": 997, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 667, + "end": 997, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 667, + "end": 997, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "DUP1", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "SUB", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "RETURN", + "source": 0 + }, + { + "begin": 290, + "end": 659, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 290, + "end": 659, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 290, + "end": 659, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 290, + "end": 659, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 290, + "end": 659, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 290, + "end": 659, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 290, + "end": 659, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 290, + "end": 659, + "name": "STOP", + "source": 0 + }, + { + "begin": 88, + "end": 282, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 88, + "end": 282, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 282, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 282, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 282, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 88, + "end": 282, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 282, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 282, + "name": "STOP", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 667, + "end": 997, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 736, + "end": 740, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 753, + "end": 769, + "name": "DUP1", + "source": 0 + }, + { + "begin": 772, + "end": 777, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 753, + "end": 777, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 753, + "end": 777, + "name": "POP", + "source": 0 + }, + { + "begin": 895, + "end": 904, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 880, + "end": 892, + "name": "DUP4", + "source": 0 + }, + { + "begin": 880, + "end": 904, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 880, + "end": 904, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 880, + "end": 904, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 880, + "end": 904, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 880, + "end": 904, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 880, + "end": 904, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 880, + "end": 904, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 872, + "end": 877, + "name": "DUP5", + "source": 0 + }, + { + "begin": 872, + "end": 904, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 872, + "end": 904, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 872, + "end": 904, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 872, + "end": 904, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 872, + "end": 904, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 872, + "end": 904, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 872, + "end": 904, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 853, + "end": 868, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 853, + "end": 904, + "name": "LT", + "source": 0 + }, + { + "begin": 849, + "end": 951, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 849, + "end": 951, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 935, + "end": 939, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 921, + "end": 939, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 921, + "end": 939, + "name": "POP", + "source": 0 + }, + { + "begin": 849, + "end": 951, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 849, + "end": 951, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 978, + "end": 989, + "name": "DUP1", + "source": 0 + }, + { + "begin": 971, + "end": 989, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 971, + "end": 989, + "name": "POP", + "source": 0 + }, + { + "begin": 971, + "end": 989, + "name": "POP", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "POP", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "POP", + "source": 0 + }, + { + "begin": 667, + "end": 997, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 290, + "end": 659, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 290, + "end": 659, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 377, + "end": 378, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 364, + "end": 373, + "name": "DUP1", + "source": 0 + }, + { + "begin": 364, + "end": 378, + "name": "EQ", + "source": 0 + }, + { + "begin": 357, + "end": 379, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 357, + "end": 379, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 357, + "end": 379, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 357, + "end": 379, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 357, + "end": 379, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 357, + "end": 379, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 357, + "end": 379, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 357, + "end": 379, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 357, + "end": 379, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 440, + "end": 450, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 427, + "end": 436, + "name": "DUP1", + "source": 0 + }, + { + "begin": 427, + "end": 450, + "name": "EQ", + "source": 0 + }, + { + "begin": 420, + "end": 451, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 420, + "end": 451, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 420, + "end": 451, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 420, + "end": 451, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 420, + "end": 451, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 420, + "end": 451, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 420, + "end": 451, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 420, + "end": 451, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 420, + "end": 451, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 513, + "end": 523, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 502, + "end": 509, + "name": "DUP1", + "source": 0 + }, + { + "begin": 502, + "end": 523, + "name": "EQ", + "source": 0 + }, + { + "begin": 495, + "end": 524, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 495, + "end": 524, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 495, + "end": 524, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 495, + "end": 524, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 495, + "end": 524, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 495, + "end": 524, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 495, + "end": 524, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 495, + "end": 524, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 495, + "end": 524, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 580, + "end": 588, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 570, + "end": 576, + "name": "DUP1", + "source": 0 + }, + { + "begin": 570, + "end": 588, + "name": "EQ", + "source": 0 + }, + { + "begin": 563, + "end": 589, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 563, + "end": 589, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 563, + "end": 589, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 563, + "end": 589, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 563, + "end": 589, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 563, + "end": 589, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 563, + "end": 589, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 563, + "end": 589, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 563, + "end": 589, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 644, + "end": 650, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 633, + "end": 640, + "name": "DUP1", + "source": 0 + }, + { + "begin": 633, + "end": 650, + "name": "EQ", + "source": 0 + }, + { + "begin": 626, + "end": 651, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 626, + "end": 651, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 626, + "end": 651, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 626, + "end": 651, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 626, + "end": 651, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 626, + "end": 651, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 626, + "end": 651, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 626, + "end": 651, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 626, + "end": 651, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 290, + "end": 659, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 88, + "end": 282, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 282, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 198, + "end": 199, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 189, + "end": 194, + "name": "DUP1", + "source": 0 + }, + { + "begin": 189, + "end": 199, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 182, + "end": 200, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 269, + "end": 273, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 258, + "end": 265, + "name": "DUP1", + "source": 0 + }, + { + "begin": 258, + "end": 273, + "name": "EQ", + "source": 0 + }, + { + "begin": 251, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 251, + "end": 274, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 251, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 251, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 251, + "end": 274, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 251, + "end": 274, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 251, + "end": 274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 251, + "end": 274, + "name": "tag", + "source": 0, + "value": "37" + }, + { + "begin": 251, + "end": 274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 282, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "40" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "42" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "40" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "40" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "59" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "59" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "67" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "68" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "68" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "60" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "78" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "78" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "79" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "79" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0xd5da48d64cd3d2258e155fdbe3ccf38104aa8da5fcea36a47ab658f8aeb55e1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f14b0408d55ece5ffd6602761fcde183feadf4a4ee158c58723e8cd41283edd\",\"dweb:/ipfs/QmNVYELNep5a9EwFA2DVLA52pA17WdLs8LwjzjBYKZ9oJc\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 82 + ] + }, + "id": 83, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 82, + "linearizedBaseContracts": [ + 82 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 16, + "nodeType": "Block", + "src": "128:154:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "189:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "198:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "189:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "182:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "182:18:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "258:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "269:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "258:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "251:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "251:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15, + "nodeType": "ExpressionStatement", + "src": "251:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 17, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "97:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "128:0:0" + }, + "scope": 82, + "src": "88:194:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 50, + "nodeType": "Block", + "src": "329:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "364:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "377:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "364:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 20, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "357:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "357:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25, + "nodeType": "ExpressionStatement", + "src": "357:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "427:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "440:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "427:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "420:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "420:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "420:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "502:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "513:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "502:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "495:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "495:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "495:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "570:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "580:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "570:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "563:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "563:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "563:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "633:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "644:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "633:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 44, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "626:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "626:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 49, + "nodeType": "ExpressionStatement", + "src": "626:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 51, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "299:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [], + "src": "314:2:0" + }, + "returnParameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [], + "src": "329:0:0" + }, + "scope": 82, + "src": "290:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 80, + "nodeType": "Block", + "src": "742:255:0", + "statements": [ + { + "assignments": [ + 61 + ], + "declarations": [ + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "758:11:0", + "nodeType": "VariableDeclaration", + "scope": 80, + "src": "753:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 60, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "753:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 63, + "initialValue": { + "hexValue": "66616c7365", + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "772:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "753:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 64, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "853:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 65, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "853:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 70, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 66, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "872:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 69, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 67, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "880:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "895:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "880:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "872:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "853:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 77, + "nodeType": "IfStatement", + "src": "849:102:0", + "trueBody": { + "id": 76, + "nodeType": "Block", + "src": "906:45:0", + "statements": [ + { + "expression": { + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 72, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "921:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 73, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "935:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "921:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 75, + "nodeType": "ExpressionStatement", + "src": "921:18:0" + } + ] + } + }, + { + "expression": { + "id": 78, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "978:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 59, + "id": 79, + "nodeType": "Return", + "src": "971:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 81, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "676:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 56, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 53, + "mutability": "mutable", + "name": "start", + "nameLocation": "690:5:0", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "685:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 52, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "685:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "702:12:0", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "697:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 54, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "697:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "684:31:0" + }, + "returnParameters": { + "id": 59, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 58, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "736:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 57, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "736:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "735:6:0" + }, + "scope": 82, + "src": "667:330:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 83, + "src": "62:938:0", + "usedErrors": [] + } + ], + "src": "33:967:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/3388c72b2149e285794882680a9c26ad.json b/Ep4/artifacts/build-info/3388c72b2149e285794882680a9c26ad.json new file mode 100644 index 0000000..30b9e00 --- /dev/null +++ b/Ep4/artifacts/build-info/3388c72b2149e285794882680a9c26ad.json @@ -0,0 +1,6316 @@ +{ + "id": "3388c72b2149e285794882680a9c26ad", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n function etherUnitExample() public pure {\r\n\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 12);\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1203 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1203 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":746:1200 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":369:738 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":86:361 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":746:1200 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":815:819 bool */\n 0x00\n /* \"Ep4/example.sol\":832:848 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":851:856 false */\n 0x00\n /* \"Ep4/example.sol\":832:856 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1098:1107 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1083:1095 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1083:1107 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1075:1080 start */\n dup5\n /* \"Ep4/example.sol\":1075:1107 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1056:1071 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1056:1107 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1052:1154 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1138:1142 true */\n 0x01\n /* \"Ep4/example.sol\":1124:1142 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1052:1154 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1181:1192 isValidated */\n dup1\n /* \"Ep4/example.sol\":1174:1192 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":746:1200 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":369:738 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":456:457 1 */\n 0x01\n /* \"Ep4/example.sol\":443:452 1 seconds */\n dup1\n /* \"Ep4/example.sol\":443:457 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":436:458 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":519:529 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":506:515 1 minutes */\n dup1\n /* \"Ep4/example.sol\":506:529 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":499:530 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":592:602 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":581:588 1 hours */\n dup1\n /* \"Ep4/example.sol\":581:602 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":574:603 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":659:667 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":649:655 1 days */\n dup1\n /* \"Ep4/example.sol\":649:667 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":642:668 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":723:729 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":712:719 1 weeks */\n dup1\n /* \"Ep4/example.sol\":712:729 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":705:730 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":369:738 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":86:361 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":198:200 12 */\n 0x0c\n /* \"Ep4/example.sol\":189:194 1 wei */\n 0x01\n /* \"Ep4/example.sol\":189:200 1 wei == 12 */\n eq\n /* \"Ep4/example.sol\":182:201 assert(1 wei == 12) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":271:274 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":261:267 1 gwei */\n dup1\n /* \"Ep4/example.sol\":261:274 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":254:275 assert(1 gwei == 1e9) */\n tag_37\n jumpi\n tag_38\n tag_25\n jump\t// in\n tag_38:\n tag_37:\n /* \"Ep4/example.sol\":348:352 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":337:344 1 ether */\n dup1\n /* \"Ep4/example.sol\":337:352 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":330:353 assert(1 ether == 1e18) */\n tag_39\n jumpi\n tag_40\n tag_25\n jump\t// in\n tag_40:\n tag_39:\n /* \"Ep4/example.sol\":86:361 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_42:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_44\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_45\n jump\t// in\n tag_44:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_47\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_48\n tag_49\n jump\t// in\n tag_48:\n /* \"#utility.yul\":245:364 */\n tag_47:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_50\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_42\n jump\t// in\n tag_50:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_51\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_42\n jump\t// in\n tag_51:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_52:\n /* \"#utility.yul\":713:734 */\n tag_54\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_55\n jump\t// in\n tag_54:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_57\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_52\n jump\t// in\n tag_57:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_61\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_63\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_62\n jump\t// in\n tag_63:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_64\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_65\n tag_66\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1210:1317 */\n tag_64:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_68\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_62\n jump\t// in\n tag_68:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_69\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_62\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_70\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_71\n tag_66\n jump\t// in\n tag_71:\n /* \"#utility.yul\":1536:1667 */\n tag_70:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_55:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_62:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_66:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_49:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_45:\n /* \"#utility.yul\":2579:2603 */\n tag_80\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_62\n jump\t// in\n tag_80:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_81\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_81:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212209f26a0db04ef195697e8be89b581454958699ad7d753a35b70cc37f22cfc605064736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5061034f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061016f565b61008a565b60405161006d91906101be565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061022f565b846100a991906101d9565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61029f565b5b603c80146100e0576100df61029f565b5b610e1080146100f2576100f161029f565b5b6201518080146101055761010461029f565b5b62093a8080146101185761011761029f565b5b565b600c60011461012c5761012b61029f565b5b633b9aca0080146101405761013f61029f565b5b670de0b6b3a764000080146101585761015761029f565b5b565b60008135905061016981610302565b92915050565b60008060408385031215610186576101856102fd565b5b60006101948582860161015a565b92505060206101a58582860161015a565b9150509250929050565b6101b881610289565b82525050565b60006020820190506101d360008301846101af565b92915050565b60006101e482610295565b91506101ef83610295565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610224576102236102ce565b5b828201905092915050565b600061023a82610295565b915061024583610295565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561027e5761027d6102ce565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61030b81610295565b811461031657600080fd5b5056fea26469706673582212209f26a0db04ef195697e8be89b581454958699ad7d753a35b70cc37f22cfc605064736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34F DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x16F JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1D9 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x29F JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0xC PUSH1 0x1 EQ PUSH2 0x12C JUMPI PUSH2 0x12B PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x140 JUMPI PUSH2 0x13F PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x158 JUMPI PUSH2 0x157 PUSH2 0x29F JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x169 DUP2 PUSH2 0x302 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x186 JUMPI PUSH2 0x185 PUSH2 0x2FD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x194 DUP6 DUP3 DUP7 ADD PUSH2 0x15A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A5 DUP6 DUP3 DUP7 ADD PUSH2 0x15A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B8 DUP2 PUSH2 0x289 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E4 DUP3 PUSH2 0x295 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EF DUP4 PUSH2 0x295 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x224 JUMPI PUSH2 0x223 PUSH2 0x2CE JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23A DUP3 PUSH2 0x295 JUMP JUMPDEST SWAP2 POP PUSH2 0x245 DUP4 PUSH2 0x295 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x27E JUMPI PUSH2 0x27D PUSH2 0x2CE JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30B DUP2 PUSH2 0x295 JUMP JUMPDEST DUP2 EQ PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP16 0x26 LOG0 0xDB DIV 0xEF NOT JUMP SWAP8 0xE8 0xBE DUP10 0xB5 DUP2 GASLIMIT 0x49 PC PUSH10 0x9AD7D753A35B70CC37F2 0x2C 0xFC PUSH1 0x50 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1141:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_23": { + "entryPoint": 282, + "id": 23, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_57": { + "entryPoint": 190, + "id": 57, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_87": { + "entryPoint": 138, + "id": 87, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 346, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 367, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 431, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 446, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 473, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 559, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 649, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 661, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 671, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 718, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 765, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 770, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061016f565b61008a565b60405161006d91906101be565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061022f565b846100a991906101d9565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61029f565b5b603c80146100e0576100df61029f565b5b610e1080146100f2576100f161029f565b5b6201518080146101055761010461029f565b5b62093a8080146101185761011761029f565b5b565b600c60011461012c5761012b61029f565b5b633b9aca0080146101405761013f61029f565b5b670de0b6b3a764000080146101585761015761029f565b5b565b60008135905061016981610302565b92915050565b60008060408385031215610186576101856102fd565b5b60006101948582860161015a565b92505060206101a58582860161015a565b9150509250929050565b6101b881610289565b82525050565b60006020820190506101d360008301846101af565b92915050565b60006101e482610295565b91506101ef83610295565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610224576102236102ce565b5b828201905092915050565b600061023a82610295565b915061024583610295565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561027e5761027d6102ce565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61030b81610295565b811461031657600080fd5b5056fea26469706673582212209f26a0db04ef195697e8be89b581454958699ad7d753a35b70cc37f22cfc605064736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x16F JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1D9 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x29F JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0xC PUSH1 0x1 EQ PUSH2 0x12C JUMPI PUSH2 0x12B PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x140 JUMPI PUSH2 0x13F PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x158 JUMPI PUSH2 0x157 PUSH2 0x29F JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x169 DUP2 PUSH2 0x302 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x186 JUMPI PUSH2 0x185 PUSH2 0x2FD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x194 DUP6 DUP3 DUP7 ADD PUSH2 0x15A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A5 DUP6 DUP3 DUP7 ADD PUSH2 0x15A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B8 DUP2 PUSH2 0x289 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E4 DUP3 PUSH2 0x295 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EF DUP4 PUSH2 0x295 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x224 JUMPI PUSH2 0x223 PUSH2 0x2CE JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23A DUP3 PUSH2 0x295 JUMP JUMPDEST SWAP2 POP PUSH2 0x245 DUP4 PUSH2 0x295 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x27E JUMPI PUSH2 0x27D PUSH2 0x2CE JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30B DUP2 PUSH2 0x295 JUMP JUMPDEST DUP2 EQ PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP16 0x26 LOG0 0xDB DIV 0xEF NOT JUMP SWAP8 0xE8 0xBE DUP10 0xB5 DUP2 GASLIMIT 0x49 PC PUSH10 0x9AD7D753A35B70CC37F2 0x2C 0xFC PUSH1 0x50 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1141:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;746:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;369:369;;;:::i;:::-;;86:275;;;:::i;:::-;;746:454;815:4;832:16;851:5;832:24;;1098:9;1083:12;:24;;;;:::i;:::-;1075:5;:32;;;;:::i;:::-;1056:15;:51;1052:102;;1138:4;1124:18;;1052:102;1181:11;1174:18;;;746:454;;;;:::o;369:369::-;456:1;443:9;:14;436:22;;;;:::i;:::-;;519:10;506:9;:23;499:31;;;;:::i;:::-;;592:10;581:7;:21;574:29;;;;:::i;:::-;;659:8;649:6;:18;642:26;;;;:::i;:::-;;723:6;712:7;:17;705:25;;;;:::i;:::-;;369:369::o;86:275::-;198:2;189:5;:11;182:19;;;;:::i;:::-;;271:3;261:6;:13;254:21;;;;:::i;:::-;;348:4;337:7;:15;330:23;;;;:::i;:::-;;86:275::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "169400", + "executionCost": "214", + "totalCost": "169614" + }, + "external": { + "etherUnitExample()": "218", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1203, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1203, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1203, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1203, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1203, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1203, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1203, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a26469706673582212209f26a0db04ef195697e8be89b581454958699ad7d753a35b70cc37f22cfc605064736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1203, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1203, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1203, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1203, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1203, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1203, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1203, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1203, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1203, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1203, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1203, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1203, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1203, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1203, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1203, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1203, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1203, + "name": "REVERT", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 746, + "end": 1200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 746, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 746, + "end": 1200, + "name": "DUP1", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "SUB", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "DUP2", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "ADD", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 746, + "end": 1200, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 746, + "end": 1200, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 746, + "end": 1200, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 746, + "end": 1200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 746, + "end": 1200, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 746, + "end": 1200, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 746, + "end": 1200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 746, + "end": 1200, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 746, + "end": 1200, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 746, + "end": 1200, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 746, + "end": 1200, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 746, + "end": 1200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 746, + "end": 1200, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "DUP1", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "SUB", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "RETURN", + "source": 0 + }, + { + "begin": 369, + "end": 738, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 369, + "end": 738, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 369, + "end": 738, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 369, + "end": 738, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 369, + "end": 738, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 369, + "end": 738, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 369, + "end": 738, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 369, + "end": 738, + "name": "STOP", + "source": 0 + }, + { + "begin": 86, + "end": 361, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 86, + "end": 361, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 361, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 361, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 361, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 86, + "end": 361, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 361, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 361, + "name": "STOP", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 746, + "end": 1200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 815, + "end": 819, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 832, + "end": 848, + "name": "DUP1", + "source": 0 + }, + { + "begin": 851, + "end": 856, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 832, + "end": 856, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 832, + "end": 856, + "name": "POP", + "source": 0 + }, + { + "begin": 1098, + "end": 1107, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1083, + "end": 1095, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1083, + "end": 1107, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1083, + "end": 1107, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1083, + "end": 1107, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1083, + "end": 1107, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1083, + "end": 1107, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1083, + "end": 1107, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1083, + "end": 1107, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1075, + "end": 1080, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1075, + "end": 1107, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1075, + "end": 1107, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1075, + "end": 1107, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1075, + "end": 1107, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1075, + "end": 1107, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1075, + "end": 1107, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1075, + "end": 1107, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1056, + "end": 1071, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1056, + "end": 1107, + "name": "LT", + "source": 0 + }, + { + "begin": 1052, + "end": 1154, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1052, + "end": 1154, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1138, + "end": 1142, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1124, + "end": 1142, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1124, + "end": 1142, + "name": "POP", + "source": 0 + }, + { + "begin": 1052, + "end": 1154, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1052, + "end": 1154, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1181, + "end": 1192, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1174, + "end": 1192, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1174, + "end": 1192, + "name": "POP", + "source": 0 + }, + { + "begin": 1174, + "end": 1192, + "name": "POP", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "POP", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "POP", + "source": 0 + }, + { + "begin": 746, + "end": 1200, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 369, + "end": 738, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 369, + "end": 738, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 456, + "end": 457, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 443, + "end": 452, + "name": "DUP1", + "source": 0 + }, + { + "begin": 443, + "end": 457, + "name": "EQ", + "source": 0 + }, + { + "begin": 436, + "end": 458, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 436, + "end": 458, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 436, + "end": 458, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 436, + "end": 458, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 436, + "end": 458, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 436, + "end": 458, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 436, + "end": 458, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 436, + "end": 458, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 436, + "end": 458, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 519, + "end": 529, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 506, + "end": 515, + "name": "DUP1", + "source": 0 + }, + { + "begin": 506, + "end": 529, + "name": "EQ", + "source": 0 + }, + { + "begin": 499, + "end": 530, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 499, + "end": 530, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 499, + "end": 530, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 499, + "end": 530, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 499, + "end": 530, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 499, + "end": 530, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 499, + "end": 530, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 499, + "end": 530, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 499, + "end": 530, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 592, + "end": 602, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 581, + "end": 588, + "name": "DUP1", + "source": 0 + }, + { + "begin": 581, + "end": 602, + "name": "EQ", + "source": 0 + }, + { + "begin": 574, + "end": 603, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 574, + "end": 603, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 574, + "end": 603, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 574, + "end": 603, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 574, + "end": 603, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 574, + "end": 603, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 574, + "end": 603, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 574, + "end": 603, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 574, + "end": 603, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 659, + "end": 667, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 649, + "end": 655, + "name": "DUP1", + "source": 0 + }, + { + "begin": 649, + "end": 667, + "name": "EQ", + "source": 0 + }, + { + "begin": 642, + "end": 668, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 642, + "end": 668, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 642, + "end": 668, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 642, + "end": 668, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 642, + "end": 668, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 642, + "end": 668, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 642, + "end": 668, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 642, + "end": 668, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 642, + "end": 668, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 723, + "end": 729, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 712, + "end": 719, + "name": "DUP1", + "source": 0 + }, + { + "begin": 712, + "end": 729, + "name": "EQ", + "source": 0 + }, + { + "begin": 705, + "end": 730, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 705, + "end": 730, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 705, + "end": 730, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 705, + "end": 730, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 705, + "end": 730, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 705, + "end": 730, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 705, + "end": 730, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 705, + "end": 730, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 705, + "end": 730, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 369, + "end": 738, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 86, + "end": 361, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 361, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 198, + "end": 200, + "name": "PUSH", + "source": 0, + "value": "C" + }, + { + "begin": 189, + "end": 194, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 189, + "end": 200, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 201, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 201, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 201, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 201, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 182, + "end": 201, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 201, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 201, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 201, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 201, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 271, + "end": 274, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 261, + "end": 267, + "name": "DUP1", + "source": 0 + }, + { + "begin": 261, + "end": 274, + "name": "EQ", + "source": 0 + }, + { + "begin": 254, + "end": 275, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 254, + "end": 275, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 254, + "end": 275, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 254, + "end": 275, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 254, + "end": 275, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 254, + "end": 275, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 254, + "end": 275, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 254, + "end": 275, + "name": "tag", + "source": 0, + "value": "37" + }, + { + "begin": 254, + "end": 275, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 348, + "end": 352, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 337, + "end": 344, + "name": "DUP1", + "source": 0 + }, + { + "begin": 337, + "end": 352, + "name": "EQ", + "source": 0 + }, + { + "begin": 330, + "end": 353, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 330, + "end": 353, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 330, + "end": 353, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 330, + "end": 353, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 330, + "end": 353, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 330, + "end": 353, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 330, + "end": 353, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 330, + "end": 353, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 330, + "end": 353, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 361, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "42" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "54" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "54" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "68" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "68" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "80" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "80" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0x2ee94f53ad19e089c52e321b55654e807618888d0b762c32b0ed96ad4eaba39f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c1da8133eec87c7d84471b23c450e6e94c703f895366a0d6a00a798c41ca8e7\",\"dweb:/ipfs/QmVy7KzeKmMciEKfWwRt5ue6ryMo6781szbSGViXjmuFqA\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 88 + ] + }, + "id": 89, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 88, + "linearizedBaseContracts": [ + 88 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 22, + "nodeType": "Block", + "src": "126:235:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "189:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3132", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "198:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "189:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "182:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "182:19:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "261:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "271:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "261:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "254:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "254:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15, + "nodeType": "ExpressionStatement", + "src": "254:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "337:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "348:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "337:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 16, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "330:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "330:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21, + "nodeType": "ExpressionStatement", + "src": "330:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 23, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "95:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "111:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "126:0:0" + }, + "scope": 88, + "src": "86:275:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 56, + "nodeType": "Block", + "src": "408:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "443:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "456:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "443:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "436:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "436:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "436:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "506:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "519:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "506:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "499:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "499:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "499:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "581:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "592:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "581:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "574:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "574:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "574:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "649:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "659:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "649:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 44, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "642:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "642:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 49, + "nodeType": "ExpressionStatement", + "src": "642:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "712:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "723:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "712:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 50, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "705:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "705:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "705:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 57, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "378:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 24, + "nodeType": "ParameterList", + "parameters": [], + "src": "393:2:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "408:0:0" + }, + "scope": 88, + "src": "369:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 86, + "nodeType": "Block", + "src": "821:379:0", + "statements": [ + { + "assignments": [ + 67 + ], + "declarations": [ + { + "constant": false, + "id": 67, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "837:11:0", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "832:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 66, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "832:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 69, + "initialValue": { + "hexValue": "66616c7365", + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "851:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "832:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 70, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1056:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1056:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 72, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "1075:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 73, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "1083:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1098:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1083:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1075:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1056:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 83, + "nodeType": "IfStatement", + "src": "1052:102:0", + "trueBody": { + "id": 82, + "nodeType": "Block", + "src": "1109:45:0", + "statements": [ + { + "expression": { + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 78, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1124:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1138:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1124:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 81, + "nodeType": "ExpressionStatement", + "src": "1124:18:0" + } + ] + } + }, + { + "expression": { + "id": 84, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1181:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 65, + "id": 85, + "nodeType": "Return", + "src": "1174:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 87, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "755:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "start", + "nameLocation": "769:5:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "764:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 58, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "764:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "781:12:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "776:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 60, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "776:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "763:31:0" + }, + "returnParameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "815:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 63, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "815:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "814:6:0" + }, + "scope": 88, + "src": "746:454:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 89, + "src": "62:1141:0", + "usedErrors": [] + } + ], + "src": "33:1170:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/3f2868014603117ae83fe6a0f58b8b9c.json b/Ep4/artifacts/build-info/3f2868014603117ae83fe6a0f58b8b9c.json new file mode 100644 index 0000000..1354b7d --- /dev/null +++ b/Ep4/artifacts/build-info/3f2868014603117ae83fe6a0f58b8b9c.json @@ -0,0 +1,5972 @@ +{ + "id": "3f2868014603117ae83fe6a0f58b8b9c", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n\r\n function etherUnitExample() public pure {\r\n assert(1 wei == 1);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\t\t// 區塊的時間戳記至少在3秒以前, 才算有效\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:883 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:883 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":550:880 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":173:542 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":88:165 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":550:880 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":619:623 bool */\n 0x00\n /* \"Ep4/example.sol\":636:652 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":655:660 false */\n 0x00\n /* \"Ep4/example.sol\":636:660 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":778:787 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":763:775 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":763:787 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":755:760 start */\n dup5\n /* \"Ep4/example.sol\":755:787 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":736:751 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":736:787 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":732:834 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":818:822 true */\n 0x01\n /* \"Ep4/example.sol\":804:822 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":732:834 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":861:872 isValidated */\n dup1\n /* \"Ep4/example.sol\":854:872 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":550:880 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":173:542 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":260:261 1 */\n 0x01\n /* \"Ep4/example.sol\":247:256 1 seconds */\n dup1\n /* \"Ep4/example.sol\":247:261 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":240:262 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":323:333 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":310:319 1 minutes */\n dup1\n /* \"Ep4/example.sol\":310:333 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":303:334 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":396:406 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":385:392 1 hours */\n dup1\n /* \"Ep4/example.sol\":385:406 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":378:407 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":463:471 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":453:459 1 days */\n dup1\n /* \"Ep4/example.sol\":453:471 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":446:472 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":527:533 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":516:523 1 weeks */\n dup1\n /* \"Ep4/example.sol\":516:533 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":509:534 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":173:542 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":88:165 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":155:156 1 */\n 0x01\n /* \"Ep4/example.sol\":146:151 1 wei */\n dup1\n /* \"Ep4/example.sol\":146:156 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":139:157 assert(1 wei == 1) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":88:165 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_38:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_40\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_41\n jump\t// in\n tag_40:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_43\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_44\n tag_45\n jump\t// in\n tag_44:\n /* \"#utility.yul\":245:364 */\n tag_43:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_46\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_38\n jump\t// in\n tag_46:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_47\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_38\n jump\t// in\n tag_47:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_48:\n /* \"#utility.yul\":713:734 */\n tag_50\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_51\n jump\t// in\n tag_50:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_53\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_48\n jump\t// in\n tag_53:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_57\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_58\n jump\t// in\n tag_57:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_59\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_58\n jump\t// in\n tag_59:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_60\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_61\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1210:1317 */\n tag_60:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_64\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_58\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_65\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_58\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_66\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_67\n tag_62\n jump\t// in\n tag_67:\n /* \"#utility.yul\":1536:1667 */\n tag_66:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_51:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_58:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_62:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_45:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_41:\n /* \"#utility.yul\":2579:2603 */\n tag_76\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_58\n jump\t// in\n tag_76:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_77\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_77:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212201b86d42bd43502af5a00ad947927ccf847d20ea9e869cde454effae208fa5abc64736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610322806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610142565b61008a565b60405161006d9190610191565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e9190610202565b846100a991906101ac565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610272565b5b603c80146100e0576100df610272565b5b610e1080146100f2576100f1610272565b5b62015180801461010557610104610272565b5b62093a80801461011857610117610272565b5b565b6001801461012b5761012a610272565b5b565b60008135905061013c816102d5565b92915050565b60008060408385031215610159576101586102d0565b5b60006101678582860161012d565b92505060206101788582860161012d565b9150509250929050565b61018b8161025c565b82525050565b60006020820190506101a66000830184610182565b92915050565b60006101b782610268565b91506101c283610268565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f7576101f66102a1565b5b828201905092915050565b600061020d82610268565b915061021883610268565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610251576102506102a1565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6102de81610268565b81146102e957600080fd5b5056fea26469706673582212201b86d42bd43502af5a00ad947927ccf847d20ea9e869cde454effae208fa5abc64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x322 DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x142 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x191 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x202 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1AC JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13C DUP2 PUSH2 0x2D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x159 JUMPI PUSH2 0x158 PUSH2 0x2D0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x178 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x18B DUP2 PUSH2 0x25C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x182 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B7 DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C2 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F7 JUMPI PUSH2 0x1F6 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20D DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x218 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x251 JUMPI PUSH2 0x250 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DE DUP2 PUSH2 0x268 JUMP JUMPDEST DUP2 EQ PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL DUP7 0xD4 0x2B 0xD4 CALLDATALOAD MUL 0xAF GAS STOP 0xAD SWAP5 PUSH26 0x27CCF847D20EA9E869CDE454EFFAE208FA5ABC64736F6C634300 ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:821:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_11": { + "entryPoint": 282, + "id": 11, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_45": { + "entryPoint": 190, + "id": 45, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_75": { + "entryPoint": 138, + "id": 75, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 301, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 322, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 386, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 401, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 428, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 514, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 604, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 616, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 626, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 673, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 720, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 725, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610142565b61008a565b60405161006d9190610191565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e9190610202565b846100a991906101ac565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610272565b5b603c80146100e0576100df610272565b5b610e1080146100f2576100f1610272565b5b62015180801461010557610104610272565b5b62093a80801461011857610117610272565b5b565b6001801461012b5761012a610272565b5b565b60008135905061013c816102d5565b92915050565b60008060408385031215610159576101586102d0565b5b60006101678582860161012d565b92505060206101788582860161012d565b9150509250929050565b61018b8161025c565b82525050565b60006020820190506101a66000830184610182565b92915050565b60006101b782610268565b91506101c283610268565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f7576101f66102a1565b5b828201905092915050565b600061020d82610268565b915061021883610268565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610251576102506102a1565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6102de81610268565b81146102e957600080fd5b5056fea26469706673582212201b86d42bd43502af5a00ad947927ccf847d20ea9e869cde454effae208fa5abc64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x142 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x191 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x202 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1AC JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13C DUP2 PUSH2 0x2D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x159 JUMPI PUSH2 0x158 PUSH2 0x2D0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x178 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x18B DUP2 PUSH2 0x25C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x182 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B7 DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C2 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F7 JUMPI PUSH2 0x1F6 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20D DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x218 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x251 JUMPI PUSH2 0x250 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DE DUP2 PUSH2 0x268 JUMP JUMPDEST DUP2 EQ PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL DUP7 0xD4 0x2B 0xD4 CALLDATALOAD MUL 0xAF GAS STOP 0xAD SWAP5 PUSH26 0x27CCF847D20EA9E869CDE454EFFAE208FA5ABC64736F6C634300 ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:821:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;550:330;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;173:369;;;:::i;:::-;;88:77;;;:::i;:::-;;550:330;619:4;636:16;655:5;636:24;;778:9;763:12;:24;;;;:::i;:::-;755:5;:32;;;;:::i;:::-;736:15;:51;732:102;;818:4;804:18;;732:102;861:11;854:18;;;550:330;;;;:::o;173:369::-;260:1;247:9;:14;240:22;;;;:::i;:::-;;323:10;310:9;:23;303:31;;;;:::i;:::-;;396:10;385:7;:21;378:29;;;;:::i;:::-;;463:8;453:6;:18;446:26;;;;:::i;:::-;;527:6;516:7;:17;509:25;;;;:::i;:::-;;173:369::o;88:77::-;155:1;146:5;:10;139:18;;;;:::i;:::-;;88:77::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "160400", + "executionCost": "208", + "totalCost": "160608" + }, + "external": { + "etherUnitExample()": "189", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 883, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 883, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 883, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a26469706673582212201b86d42bd43502af5a00ad947927ccf847d20ea9e869cde454effae208fa5abc64736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 883, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 883, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 883, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 883, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 883, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 883, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 883, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "REVERT", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 550, + "end": 880, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 550, + "end": 880, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 550, + "end": 880, + "name": "DUP1", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SUB", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "DUP2", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "ADD", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 550, + "end": 880, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 550, + "end": 880, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 550, + "end": 880, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 550, + "end": 880, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 550, + "end": 880, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 550, + "end": 880, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 550, + "end": 880, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 550, + "end": 880, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 550, + "end": 880, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 550, + "end": 880, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 550, + "end": 880, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 550, + "end": 880, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 550, + "end": 880, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "DUP1", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SUB", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "RETURN", + "source": 0 + }, + { + "begin": 173, + "end": 542, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 173, + "end": 542, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 173, + "end": 542, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 173, + "end": 542, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 173, + "end": 542, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 173, + "end": 542, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 173, + "end": 542, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 173, + "end": 542, + "name": "STOP", + "source": 0 + }, + { + "begin": 88, + "end": 165, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 88, + "end": 165, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 165, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 165, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 165, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 88, + "end": 165, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 165, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 165, + "name": "STOP", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 550, + "end": 880, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 619, + "end": 623, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 636, + "end": 652, + "name": "DUP1", + "source": 0 + }, + { + "begin": 655, + "end": 660, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 636, + "end": 660, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 636, + "end": 660, + "name": "POP", + "source": 0 + }, + { + "begin": 778, + "end": 787, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 763, + "end": 775, + "name": "DUP4", + "source": 0 + }, + { + "begin": 763, + "end": 787, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 763, + "end": 787, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 763, + "end": 787, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 763, + "end": 787, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 763, + "end": 787, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 763, + "end": 787, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 763, + "end": 787, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 755, + "end": 760, + "name": "DUP5", + "source": 0 + }, + { + "begin": 755, + "end": 787, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 755, + "end": 787, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 755, + "end": 787, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 755, + "end": 787, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 755, + "end": 787, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 755, + "end": 787, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 755, + "end": 787, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 736, + "end": 751, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 736, + "end": 787, + "name": "LT", + "source": 0 + }, + { + "begin": 732, + "end": 834, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 732, + "end": 834, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 818, + "end": 822, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 804, + "end": 822, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 804, + "end": 822, + "name": "POP", + "source": 0 + }, + { + "begin": 732, + "end": 834, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 732, + "end": 834, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 861, + "end": 872, + "name": "DUP1", + "source": 0 + }, + { + "begin": 854, + "end": 872, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 854, + "end": 872, + "name": "POP", + "source": 0 + }, + { + "begin": 854, + "end": 872, + "name": "POP", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "POP", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "POP", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 173, + "end": 542, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 173, + "end": 542, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 260, + "end": 261, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 247, + "end": 256, + "name": "DUP1", + "source": 0 + }, + { + "begin": 247, + "end": 261, + "name": "EQ", + "source": 0 + }, + { + "begin": 240, + "end": 262, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 240, + "end": 262, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 240, + "end": 262, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 240, + "end": 262, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 240, + "end": 262, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 240, + "end": 262, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 240, + "end": 262, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 240, + "end": 262, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 240, + "end": 262, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 323, + "end": 333, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 310, + "end": 319, + "name": "DUP1", + "source": 0 + }, + { + "begin": 310, + "end": 333, + "name": "EQ", + "source": 0 + }, + { + "begin": 303, + "end": 334, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 303, + "end": 334, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 303, + "end": 334, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 303, + "end": 334, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 303, + "end": 334, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 303, + "end": 334, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 303, + "end": 334, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 303, + "end": 334, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 303, + "end": 334, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 396, + "end": 406, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 385, + "end": 392, + "name": "DUP1", + "source": 0 + }, + { + "begin": 385, + "end": 406, + "name": "EQ", + "source": 0 + }, + { + "begin": 378, + "end": 407, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 378, + "end": 407, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 378, + "end": 407, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 378, + "end": 407, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 378, + "end": 407, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 378, + "end": 407, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 378, + "end": 407, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 378, + "end": 407, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 378, + "end": 407, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 463, + "end": 471, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 453, + "end": 459, + "name": "DUP1", + "source": 0 + }, + { + "begin": 453, + "end": 471, + "name": "EQ", + "source": 0 + }, + { + "begin": 446, + "end": 472, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 446, + "end": 472, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 446, + "end": 472, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 446, + "end": 472, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 446, + "end": 472, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 446, + "end": 472, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 446, + "end": 472, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 446, + "end": 472, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 446, + "end": 472, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 527, + "end": 533, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 516, + "end": 523, + "name": "DUP1", + "source": 0 + }, + { + "begin": 516, + "end": 533, + "name": "EQ", + "source": 0 + }, + { + "begin": 509, + "end": 534, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 509, + "end": 534, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 509, + "end": 534, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 509, + "end": 534, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 509, + "end": 534, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 509, + "end": 534, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 509, + "end": 534, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 509, + "end": 534, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 509, + "end": 534, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 173, + "end": 542, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 88, + "end": 165, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 165, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 155, + "end": 156, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 146, + "end": 151, + "name": "DUP1", + "source": 0 + }, + { + "begin": 146, + "end": 156, + "name": "EQ", + "source": 0 + }, + { + "begin": 139, + "end": 157, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 139, + "end": 157, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 139, + "end": 157, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 139, + "end": 157, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 139, + "end": 157, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 139, + "end": 157, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 139, + "end": 157, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 139, + "end": 157, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 139, + "end": 157, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 165, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "38" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "40" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "41" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "40" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "59" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "59" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "60" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "67" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "58" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "41" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "76" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "76" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "77" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "77" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0xb2f6daf2b0200961e62169d335038019bc1fe5659ae7df2e8bbcdf6658bb0d8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2dc5d9156d712e609274a620dfb834e7e44ce2e93ae57659de6014fd566b7715\",\"dweb:/ipfs/QmcD8r1xQGPWw2rzUR8Cm5wz4qwee4Fdu6a2AfX7Fv91q5\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 76 + ] + }, + "id": 77, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 76, + "linearizedBaseContracts": [ + 76 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 10, + "nodeType": "Block", + "src": "128:37:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "146:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "155:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "146:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "139:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "139:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "139:18:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 11, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "97:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "128:0:0" + }, + "scope": 76, + "src": "88:77:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 44, + "nodeType": "Block", + "src": "212:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "247:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "260:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "247:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "240:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "240:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19, + "nodeType": "ExpressionStatement", + "src": "240:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "310:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "323:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "310:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 20, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "303:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "303:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25, + "nodeType": "ExpressionStatement", + "src": "303:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "385:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "396:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "385:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "378:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "378:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "378:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "453:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "463:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "453:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "446:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "446:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "446:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "516:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "527:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "516:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "509:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "509:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "509:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 45, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "182:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [], + "src": "197:2:0" + }, + "returnParameters": { + "id": 13, + "nodeType": "ParameterList", + "parameters": [], + "src": "212:0:0" + }, + "scope": 76, + "src": "173:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 74, + "nodeType": "Block", + "src": "625:255:0", + "statements": [ + { + "assignments": [ + 55 + ], + "declarations": [ + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "641:11:0", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "636:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 54, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "636:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 57, + "initialValue": { + "hexValue": "66616c7365", + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "655:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "636:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 65, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 58, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "736:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "736:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 64, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 60, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "755:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 61, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49, + "src": "763:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "778:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "763:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "755:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "736:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 71, + "nodeType": "IfStatement", + "src": "732:102:0", + "trueBody": { + "id": 70, + "nodeType": "Block", + "src": "789:45:0", + "statements": [ + { + "expression": { + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 66, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "804:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "818:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "804:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 69, + "nodeType": "ExpressionStatement", + "src": "804:18:0" + } + ] + } + }, + { + "expression": { + "id": 72, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "861:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 53, + "id": 73, + "nodeType": "Return", + "src": "854:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 75, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "559:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "start", + "nameLocation": "573:5:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "568:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 46, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "568:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "585:12:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "580:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 48, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "580:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "567:31:0" + }, + "returnParameters": { + "id": 53, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 52, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "619:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 51, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "619:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "618:6:0" + }, + "scope": 76, + "src": "550:330:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 77, + "src": "62:821:0", + "usedErrors": [] + } + ], + "src": "33:850:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/4aec4f7fa7225f32beabdf6bc5e5ce26.json b/Ep4/artifacts/build-info/4aec4f7fa7225f32beabdf6bc5e5ce26.json new file mode 100644 index 0000000..be3a17d --- /dev/null +++ b/Ep4/artifacts/build-info/4aec4f7fa7225f32beabdf6bc5e5ce26.json @@ -0,0 +1,5049 @@ +{ + "id": "4aec4f7fa7225f32beabdf6bc5e5ce26", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7;\r\n\r\ncontract Example {\r\n function EtherUnitExample() public pure {\r\n assert(1 wei == 1);\r\n }\r\n\r\n function TimeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view {\r\n\t\t// 區塊的時間戳記至少在3秒以前, 才算有效\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n // ...\r\n }\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "EtherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "TimeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":60:778 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":60:778 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x822d0647\n eq\n tag_4\n jumpi\n dup1\n 0x9b92a9e8\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":546:775 function validate(uint start, uint secondsAfter) public view {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n stop\n /* \"Ep4/example.sol\":84:161 function EtherUnitExample() public pure {\r... */\n tag_4:\n tag_10\n tag_11\n jump\t// in\n tag_10:\n stop\n /* \"Ep4/example.sol\":169:538 function TimeUnitExample() public pure {\r... */\n tag_5:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":546:775 function validate(uint start, uint secondsAfter) public view {\r... */\n tag_9:\n /* \"Ep4/example.sol\":725:734 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":710:722 secondsAfter */\n dup2\n /* \"Ep4/example.sol\":710:734 secondsAfter * 3 seconds */\n tag_15\n swap2\n swap1\n tag_16\n jump\t// in\n tag_15:\n /* \"Ep4/example.sol\":702:707 start */\n dup3\n /* \"Ep4/example.sol\":702:734 start + secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":683:734 block.timestamp >= start + secondsAfter * 3 seconds */\n pop\n /* \"Ep4/example.sol\":546:775 function validate(uint start, uint secondsAfter) public view {\r... */\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":84:161 function EtherUnitExample() public pure {\r... */\n tag_11:\n /* \"Ep4/example.sol\":151:152 1 */\n 0x01\n /* \"Ep4/example.sol\":142:147 1 wei */\n dup1\n /* \"Ep4/example.sol\":142:152 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":135:153 assert(1 wei == 1) */\n tag_21\n jumpi\n tag_22\n tag_23\n jump\t// in\n tag_22:\n tag_21:\n /* \"Ep4/example.sol\":84:161 function EtherUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":169:538 function TimeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":256:257 1 */\n 0x01\n /* \"Ep4/example.sol\":243:252 1 seconds */\n dup1\n /* \"Ep4/example.sol\":243:257 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":236:258 assert(1 seconds == 1) */\n tag_25\n jumpi\n tag_26\n tag_23\n jump\t// in\n tag_26:\n tag_25:\n /* \"Ep4/example.sol\":319:329 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":306:315 1 minutes */\n dup1\n /* \"Ep4/example.sol\":306:329 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":299:330 assert(1 minutes == 60 seconds) */\n tag_27\n jumpi\n tag_28\n tag_23\n jump\t// in\n tag_28:\n tag_27:\n /* \"Ep4/example.sol\":392:402 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":381:388 1 hours */\n dup1\n /* \"Ep4/example.sol\":381:402 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":374:403 assert(1 hours == 60 minutes) */\n tag_29\n jumpi\n tag_30\n tag_23\n jump\t// in\n tag_30:\n tag_29:\n /* \"Ep4/example.sol\":459:467 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":449:455 1 days */\n dup1\n /* \"Ep4/example.sol\":449:467 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":442:468 assert(1 days == 24 hours) */\n tag_31\n jumpi\n tag_32\n tag_23\n jump\t// in\n tag_32:\n tag_31:\n /* \"Ep4/example.sol\":523:529 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":512:519 1 weeks */\n dup1\n /* \"Ep4/example.sol\":512:529 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":505:530 assert(1 weeks == 7 days) */\n tag_33\n jumpi\n tag_34\n tag_23\n jump\t// in\n tag_34:\n tag_33:\n /* \"Ep4/example.sol\":169:538 function TimeUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_36:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_38\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_39\n jump\t// in\n tag_38:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_41\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_42\n tag_43\n jump\t// in\n tag_42:\n /* \"#utility.yul\":245:364 */\n tag_41:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_44\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_36\n jump\t// in\n tag_44:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_45\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_36\n jump\t// in\n tag_45:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":713:1018 */\n tag_18:\n /* \"#utility.yul\":753:756 */\n 0x00\n /* \"#utility.yul\":772:792 */\n tag_49\n /* \"#utility.yul\":790:791 */\n dup3\n /* \"#utility.yul\":772:792 */\n tag_50\n jump\t// in\n tag_49:\n /* \"#utility.yul\":767:792 */\n swap2\n pop\n /* \"#utility.yul\":806:826 */\n tag_51\n /* \"#utility.yul\":824:825 */\n dup4\n /* \"#utility.yul\":806:826 */\n tag_50\n jump\t// in\n tag_51:\n /* \"#utility.yul\":801:826 */\n swap3\n pop\n /* \"#utility.yul\":960:961 */\n dup3\n /* \"#utility.yul\":892:958 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":888:962 */\n sub\n /* \"#utility.yul\":885:886 */\n dup3\n /* \"#utility.yul\":882:963 */\n gt\n /* \"#utility.yul\":879:986 */\n iszero\n tag_52\n jumpi\n /* \"#utility.yul\":966:984 */\n tag_53\n tag_54\n jump\t// in\n tag_53:\n /* \"#utility.yul\":879:986 */\n tag_52:\n /* \"#utility.yul\":1010:1011 */\n dup3\n /* \"#utility.yul\":1007:1008 */\n dup3\n /* \"#utility.yul\":1003:1012 */\n add\n /* \"#utility.yul\":996:1012 */\n swap1\n pop\n /* \"#utility.yul\":713:1018 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1024:1372 */\n tag_16:\n /* \"#utility.yul\":1064:1071 */\n 0x00\n /* \"#utility.yul\":1087:1107 */\n tag_56\n /* \"#utility.yul\":1105:1106 */\n dup3\n /* \"#utility.yul\":1087:1107 */\n tag_50\n jump\t// in\n tag_56:\n /* \"#utility.yul\":1082:1107 */\n swap2\n pop\n /* \"#utility.yul\":1121:1141 */\n tag_57\n /* \"#utility.yul\":1139:1140 */\n dup4\n /* \"#utility.yul\":1121:1141 */\n tag_50\n jump\t// in\n tag_57:\n /* \"#utility.yul\":1116:1141 */\n swap3\n pop\n /* \"#utility.yul\":1309:1310 */\n dup2\n /* \"#utility.yul\":1241:1307 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1237:1311 */\n div\n /* \"#utility.yul\":1234:1235 */\n dup4\n /* \"#utility.yul\":1231:1312 */\n gt\n /* \"#utility.yul\":1226:1227 */\n dup3\n /* \"#utility.yul\":1219:1228 */\n iszero\n /* \"#utility.yul\":1212:1229 */\n iszero\n /* \"#utility.yul\":1208:1313 */\n and\n /* \"#utility.yul\":1205:1336 */\n iszero\n tag_58\n jumpi\n /* \"#utility.yul\":1316:1334 */\n tag_59\n tag_54\n jump\t// in\n tag_59:\n /* \"#utility.yul\":1205:1336 */\n tag_58:\n /* \"#utility.yul\":1364:1365 */\n dup3\n /* \"#utility.yul\":1361:1362 */\n dup3\n /* \"#utility.yul\":1357:1366 */\n mul\n /* \"#utility.yul\":1346:1366 */\n swap1\n pop\n /* \"#utility.yul\":1024:1372 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1378:1455 */\n tag_50:\n /* \"#utility.yul\":1415:1422 */\n 0x00\n /* \"#utility.yul\":1444:1449 */\n dup2\n /* \"#utility.yul\":1433:1449 */\n swap1\n pop\n /* \"#utility.yul\":1378:1455 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1461:1641 */\n tag_23:\n /* \"#utility.yul\":1509:1586 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1506:1507 */\n 0x00\n /* \"#utility.yul\":1499:1587 */\n mstore\n /* \"#utility.yul\":1606:1610 */\n 0x01\n /* \"#utility.yul\":1603:1604 */\n 0x04\n /* \"#utility.yul\":1596:1611 */\n mstore\n /* \"#utility.yul\":1630:1634 */\n 0x24\n /* \"#utility.yul\":1627:1628 */\n 0x00\n /* \"#utility.yul\":1620:1635 */\n revert\n /* \"#utility.yul\":1647:1827 */\n tag_54:\n /* \"#utility.yul\":1695:1772 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1692:1693 */\n 0x00\n /* \"#utility.yul\":1685:1773 */\n mstore\n /* \"#utility.yul\":1792:1796 */\n 0x11\n /* \"#utility.yul\":1789:1790 */\n 0x04\n /* \"#utility.yul\":1782:1797 */\n mstore\n /* \"#utility.yul\":1816:1820 */\n 0x24\n /* \"#utility.yul\":1813:1814 */\n 0x00\n /* \"#utility.yul\":1806:1821 */\n revert\n /* \"#utility.yul\":1956:2073 */\n tag_43:\n /* \"#utility.yul\":2065:2066 */\n 0x00\n /* \"#utility.yul\":2062:2063 */\n dup1\n /* \"#utility.yul\":2055:2067 */\n revert\n /* \"#utility.yul\":2079:2201 */\n tag_39:\n /* \"#utility.yul\":2152:2176 */\n tag_67\n /* \"#utility.yul\":2170:2175 */\n dup2\n /* \"#utility.yul\":2152:2176 */\n tag_50\n jump\t// in\n tag_67:\n /* \"#utility.yul\":2145:2150 */\n dup2\n /* \"#utility.yul\":2142:2177 */\n eq\n /* \"#utility.yul\":2132:2195 */\n tag_68\n jumpi\n /* \"#utility.yul\":2191:2192 */\n 0x00\n /* \"#utility.yul\":2188:2189 */\n dup1\n /* \"#utility.yul\":2181:2193 */\n revert\n /* \"#utility.yul\":2132:2195 */\n tag_68:\n /* \"#utility.yul\":2079:2201 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220429954f07493af1e52c21a1219e7553120426aaa2bbbbc27e135995e256ced6664736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506102c1806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b4414610046578063822d0647146100625780639b92a9e81461006c575b600080fd5b610060600480360381019061005b9190610117565b610076565b005b61006a610093565b005b6100746100a6565b005b60038161008391906101ad565b8261008e9190610157565b505050565b600180146100a4576100a3610211565b5b565b600180146100b7576100b6610211565b5b603c80146100c8576100c7610211565b5b610e1080146100da576100d9610211565b5b6201518080146100ed576100ec610211565b5b62093a808014610100576100ff610211565b5b565b60008135905061011181610274565b92915050565b6000806040838503121561012e5761012d61026f565b5b600061013c85828601610102565b925050602061014d85828601610102565b9150509250929050565b600061016282610207565b915061016d83610207565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101a2576101a1610240565b5b828201905092915050565b60006101b882610207565b91506101c383610207565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156101fc576101fb610240565b5b828202905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61027d81610207565b811461028857600080fd5b5056fea2646970667358221220429954f07493af1e52c21a1219e7553120426aaa2bbbbc27e135995e256ced6664736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C1 DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x822D0647 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0x9B92A9E8 EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x117 JUMP JUMPDEST PUSH2 0x76 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6A PUSH2 0x93 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x74 PUSH2 0xA6 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 DUP2 PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x1AD JUMP JUMPDEST DUP3 PUSH2 0x8E SWAP2 SWAP1 PUSH2 0x157 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xA4 JUMPI PUSH2 0xA3 PUSH2 0x211 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xB7 JUMPI PUSH2 0xB6 PUSH2 0x211 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xC8 JUMPI PUSH2 0xC7 PUSH2 0x211 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xDA JUMPI PUSH2 0xD9 PUSH2 0x211 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0xED JUMPI PUSH2 0xEC PUSH2 0x211 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x100 JUMPI PUSH2 0xFF PUSH2 0x211 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x111 DUP2 PUSH2 0x274 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12E JUMPI PUSH2 0x12D PUSH2 0x26F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x13C DUP6 DUP3 DUP7 ADD PUSH2 0x102 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x14D DUP6 DUP3 DUP7 ADD PUSH2 0x102 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x162 DUP3 PUSH2 0x207 JUMP JUMPDEST SWAP2 POP PUSH2 0x16D DUP4 PUSH2 0x207 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1A2 JUMPI PUSH2 0x1A1 PUSH2 0x240 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B8 DUP3 PUSH2 0x207 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C3 DUP4 PUSH2 0x207 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1FC JUMPI PUSH2 0x1FB PUSH2 0x240 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27D DUP2 PUSH2 0x207 JUMP JUMPDEST DUP2 EQ PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 TIMESTAMP SWAP10 SLOAD CREATE PUSH21 0x93AF1E52C21A1219E7553120426AAA2BBBBC27E135 SWAP10 0x5E 0x25 PUSH13 0xED6664736F6C63430008070033 ", + "sourceMap": "60:718:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@EtherUnitExample_11": { + "entryPoint": 147, + "id": 11, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@TimeUnitExample_45": { + "entryPoint": 166, + "id": 45, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_63": { + "entryPoint": 118, + "id": 63, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_uint256": { + "entryPoint": 258, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 279, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 343, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 429, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 519, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 529, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 576, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 623, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 628, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2204:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "672:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "682:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "698:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "692:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "692:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "682:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "665:6:1", + "type": "" + } + ], + "src": "632:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "757:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "767:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "790:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "772:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "772:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "767:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "801:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "824:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "806:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "806:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "801:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "964:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "966:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "966:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "966:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "885:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "892:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "960:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "888:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "888:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "882:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "882:81:1" + }, + "nodeType": "YulIf", + "src": "879:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "996:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1007:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1010:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1003:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1003:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "996:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "744:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "747:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "753:3:1", + "type": "" + } + ], + "src": "713:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1072:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1082:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1105:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1087:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1087:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1082:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1116:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1139:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1121:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1121:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1116:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1314:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1316:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1316:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1316:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1226:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1219:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1212:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1212:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1234:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1241:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1309:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1237:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1237:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1231:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1231:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1208:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1208:105:1" + }, + "nodeType": "YulIf", + "src": "1205:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1346:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1361:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1364:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1357:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1357:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1346:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1055:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1058:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1064:7:1", + "type": "" + } + ], + "src": "1024:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1423:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1433:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1444:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1433:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1405:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1415:7:1", + "type": "" + } + ], + "src": "1378:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1489:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1506:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1509:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1499:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1499:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1499:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1603:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1606:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1596:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1596:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1596:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1627:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1630:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1620:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1620:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1620:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1461:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1675:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1692:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1695:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1685:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1685:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1685:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1789:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1792:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1782:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1782:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1782:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1813:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1816:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1806:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1806:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1806:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "1647:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1922:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1939:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1942:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1932:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1932:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1932:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1833:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2045:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2062:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2065:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2055:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2055:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2055:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1956:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2122:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2179:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2188:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2191:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2181:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2181:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2181:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2145:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2170:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2152:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2152:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2142:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2142:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2135:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2135:43:1" + }, + "nodeType": "YulIf", + "src": "2132:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2115:5:1", + "type": "" + } + ], + "src": "2079:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b4414610046578063822d0647146100625780639b92a9e81461006c575b600080fd5b610060600480360381019061005b9190610117565b610076565b005b61006a610093565b005b6100746100a6565b005b60038161008391906101ad565b8261008e9190610157565b505050565b600180146100a4576100a3610211565b5b565b600180146100b7576100b6610211565b5b603c80146100c8576100c7610211565b5b610e1080146100da576100d9610211565b5b6201518080146100ed576100ec610211565b5b62093a808014610100576100ff610211565b5b565b60008135905061011181610274565b92915050565b6000806040838503121561012e5761012d61026f565b5b600061013c85828601610102565b925050602061014d85828601610102565b9150509250929050565b600061016282610207565b915061016d83610207565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101a2576101a1610240565b5b828201905092915050565b60006101b882610207565b91506101c383610207565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156101fc576101fb610240565b5b828202905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61027d81610207565b811461028857600080fd5b5056fea2646970667358221220429954f07493af1e52c21a1219e7553120426aaa2bbbbc27e135995e256ced6664736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x822D0647 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0x9B92A9E8 EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x117 JUMP JUMPDEST PUSH2 0x76 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6A PUSH2 0x93 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x74 PUSH2 0xA6 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 DUP2 PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x1AD JUMP JUMPDEST DUP3 PUSH2 0x8E SWAP2 SWAP1 PUSH2 0x157 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xA4 JUMPI PUSH2 0xA3 PUSH2 0x211 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xB7 JUMPI PUSH2 0xB6 PUSH2 0x211 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xC8 JUMPI PUSH2 0xC7 PUSH2 0x211 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xDA JUMPI PUSH2 0xD9 PUSH2 0x211 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0xED JUMPI PUSH2 0xEC PUSH2 0x211 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x100 JUMPI PUSH2 0xFF PUSH2 0x211 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x111 DUP2 PUSH2 0x274 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12E JUMPI PUSH2 0x12D PUSH2 0x26F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x13C DUP6 DUP3 DUP7 ADD PUSH2 0x102 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x14D DUP6 DUP3 DUP7 ADD PUSH2 0x102 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x162 DUP3 PUSH2 0x207 JUMP JUMPDEST SWAP2 POP PUSH2 0x16D DUP4 PUSH2 0x207 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1A2 JUMPI PUSH2 0x1A1 PUSH2 0x240 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B8 DUP3 PUSH2 0x207 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C3 DUP4 PUSH2 0x207 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1FC JUMPI PUSH2 0x1FB PUSH2 0x240 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27D DUP2 PUSH2 0x207 JUMP JUMPDEST DUP2 EQ PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 TIMESTAMP SWAP10 SLOAD CREATE PUSH21 0x93AF1E52C21A1219E7553120426AAA2BBBBC27E135 SWAP10 0x5E 0x25 PUSH13 0xED6664736F6C63430008070033 ", + "sourceMap": "60:718:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;546:229;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;84:77;;;:::i;:::-;;169:369;;;:::i;:::-;;546:229;725:9;710:12;:24;;;;:::i;:::-;702:5;:32;;;;:::i;:::-;683:51;546:229;;:::o;84:77::-;151:1;142:5;:10;135:18;;;;:::i;:::-;;84:77::o;169:369::-;256:1;243:9;:14;236:22;;;;:::i;:::-;;319:10;306:9;:23;299:31;;;;:::i;:::-;;392:10;381:7;:21;374:29;;;;:::i;:::-;;459:8;449:6;:18;442:26;;;;:::i;:::-;;523:6;512:7;:17;505:25;;;;:::i;:::-;;169:369::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;713:305::-;753:3;772:20;790:1;772:20;:::i;:::-;767:25;;806:20;824:1;806:20;:::i;:::-;801:25;;960:1;892:66;888:74;885:1;882:81;879:107;;;966:18;;:::i;:::-;879:107;1010:1;1007;1003:9;996:16;;713:305;;;;:::o;1024:348::-;1064:7;1087:20;1105:1;1087:20;:::i;:::-;1082:25;;1121:20;1139:1;1121:20;:::i;:::-;1116:25;;1309:1;1241:66;1237:74;1234:1;1231:81;1226:1;1219:9;1212:17;1208:105;1205:131;;;1316:18;;:::i;:::-;1205:131;1364:1;1361;1357:9;1346:20;;1024:348;;;;:::o;1378:77::-;1415:7;1444:5;1433:16;;1378:77;;;:::o;1461:180::-;1509:77;1506:1;1499:88;1606:4;1603:1;1596:15;1630:4;1627:1;1620:15;1647:180;1695:77;1692:1;1685:88;1792:4;1789:1;1782:15;1816:4;1813:1;1806:15;1956:117;2065:1;2062;2055:12;2079:122;2152:24;2170:5;2152:24;:::i;:::-;2145:5;2142:35;2132:63;;2191:1;2188;2181:12;2132:63;2079:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "141000", + "executionCost": "190", + "totalCost": "141190" + }, + "external": { + "EtherUnitExample()": "167", + "TimeUnitExample()": "281", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 60, + "end": 778, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 60, + "end": 778, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 778, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "REVERT", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 60, + "end": 778, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "POP", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 60, + "end": 778, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 778, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 778, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220429954f07493af1e52c21a1219e7553120426aaa2bbbbc27e135995e256ced6664736f6c63430008070033", + ".code": [ + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 60, + "end": 778, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 60, + "end": 778, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 778, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "REVERT", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 60, + "end": 778, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "POP", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 60, + "end": 778, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "LT", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 60, + "end": 778, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 778, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 60, + "end": 778, + "name": "SHR", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 60, + "end": 778, + "name": "EQ", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 60, + "end": 778, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "822D0647" + }, + { + "begin": 60, + "end": 778, + "name": "EQ", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 60, + "end": 778, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "9B92A9E8" + }, + { + "begin": 60, + "end": 778, + "name": "EQ", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 60, + "end": 778, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 60, + "end": 778, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 778, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 778, + "name": "REVERT", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 546, + "end": 775, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 546, + "end": 775, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 546, + "end": 775, + "name": "DUP1", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "SUB", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "DUP2", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "ADD", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 546, + "end": 775, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 546, + "end": 775, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 546, + "end": 775, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 546, + "end": 775, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 546, + "end": 775, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 546, + "end": 775, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 546, + "end": 775, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "STOP", + "source": 0 + }, + { + "begin": 84, + "end": 161, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 84, + "end": 161, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 84, + "end": 161, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 84, + "end": 161, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 84, + "end": 161, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 84, + "end": 161, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 84, + "end": 161, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 84, + "end": 161, + "name": "STOP", + "source": 0 + }, + { + "begin": 169, + "end": 538, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 169, + "end": 538, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 169, + "end": 538, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 169, + "end": 538, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 169, + "end": 538, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 169, + "end": 538, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 169, + "end": 538, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 169, + "end": 538, + "name": "STOP", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 546, + "end": 775, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 725, + "end": 734, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 710, + "end": 722, + "name": "DUP2", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 710, + "end": 734, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 710, + "end": 734, + "name": "PUSH [tag]", + "source": 0, + "value": "16" + }, + { + "begin": 710, + "end": 734, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 710, + "end": 734, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 710, + "end": 734, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 702, + "end": 707, + "name": "DUP3", + "source": 0 + }, + { + "begin": 702, + "end": 734, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 702, + "end": 734, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 702, + "end": 734, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 702, + "end": 734, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 702, + "end": 734, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 702, + "end": 734, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 702, + "end": 734, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 683, + "end": 734, + "name": "POP", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "POP", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "POP", + "source": 0 + }, + { + "begin": 546, + "end": 775, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 84, + "end": 161, + "name": "tag", + "source": 0, + "value": "11" + }, + { + "begin": 84, + "end": 161, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 151, + "end": 152, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 142, + "end": 147, + "name": "DUP1", + "source": 0 + }, + { + "begin": 142, + "end": 152, + "name": "EQ", + "source": 0 + }, + { + "begin": 135, + "end": 153, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 135, + "end": 153, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 135, + "end": 153, + "name": "PUSH [tag]", + "source": 0, + "value": "22" + }, + { + "begin": 135, + "end": 153, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 135, + "end": 153, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 135, + "end": 153, + "name": "tag", + "source": 0, + "value": "22" + }, + { + "begin": 135, + "end": 153, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 135, + "end": 153, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 135, + "end": 153, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 84, + "end": 161, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 169, + "end": 538, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 169, + "end": 538, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 256, + "end": 257, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 243, + "end": 252, + "name": "DUP1", + "source": 0 + }, + { + "begin": 243, + "end": 257, + "name": "EQ", + "source": 0 + }, + { + "begin": 236, + "end": 258, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 236, + "end": 258, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 236, + "end": 258, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 236, + "end": 258, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 236, + "end": 258, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 236, + "end": 258, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 236, + "end": 258, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 236, + "end": 258, + "name": "tag", + "source": 0, + "value": "25" + }, + { + "begin": 236, + "end": 258, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 319, + "end": 329, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 306, + "end": 315, + "name": "DUP1", + "source": 0 + }, + { + "begin": 306, + "end": 329, + "name": "EQ", + "source": 0 + }, + { + "begin": 299, + "end": 330, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 299, + "end": 330, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 299, + "end": 330, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 299, + "end": 330, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 299, + "end": 330, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 299, + "end": 330, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 299, + "end": 330, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 299, + "end": 330, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 299, + "end": 330, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 392, + "end": 402, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 381, + "end": 388, + "name": "DUP1", + "source": 0 + }, + { + "begin": 381, + "end": 402, + "name": "EQ", + "source": 0 + }, + { + "begin": 374, + "end": 403, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 374, + "end": 403, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 374, + "end": 403, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 374, + "end": 403, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 374, + "end": 403, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 374, + "end": 403, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 374, + "end": 403, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 374, + "end": 403, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 374, + "end": 403, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 459, + "end": 467, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 449, + "end": 455, + "name": "DUP1", + "source": 0 + }, + { + "begin": 449, + "end": 467, + "name": "EQ", + "source": 0 + }, + { + "begin": 442, + "end": 468, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 442, + "end": 468, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 442, + "end": 468, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 442, + "end": 468, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 442, + "end": 468, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 442, + "end": 468, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 442, + "end": 468, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 442, + "end": 468, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 442, + "end": 468, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 523, + "end": 529, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 512, + "end": 519, + "name": "DUP1", + "source": 0 + }, + { + "begin": 512, + "end": 529, + "name": "EQ", + "source": 0 + }, + { + "begin": 505, + "end": 530, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 505, + "end": 530, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 505, + "end": 530, + "name": "PUSH [tag]", + "source": 0, + "value": "34" + }, + { + "begin": 505, + "end": 530, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 505, + "end": 530, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 505, + "end": 530, + "name": "tag", + "source": 0, + "value": "34" + }, + { + "begin": 505, + "end": 530, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 505, + "end": 530, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 505, + "end": 530, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 169, + "end": 538, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "36" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "39" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "38" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "41" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "42" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "41" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "36" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "36" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 713, + "end": 1018, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 713, + "end": 1018, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 753, + "end": 756, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 772, + "end": 792, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 790, + "end": 791, + "name": "DUP3", + "source": 1 + }, + { + "begin": 772, + "end": 792, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 772, + "end": 792, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 772, + "end": 792, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 772, + "end": 792, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 767, + "end": 792, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 767, + "end": 792, + "name": "POP", + "source": 1 + }, + { + "begin": 806, + "end": 826, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 824, + "end": 825, + "name": "DUP4", + "source": 1 + }, + { + "begin": 806, + "end": 826, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 806, + "end": 826, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 806, + "end": 826, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 806, + "end": 826, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 801, + "end": 826, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 801, + "end": 826, + "name": "POP", + "source": 1 + }, + { + "begin": 960, + "end": 961, + "name": "DUP3", + "source": 1 + }, + { + "begin": 892, + "end": 958, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 888, + "end": 962, + "name": "SUB", + "source": 1 + }, + { + "begin": 885, + "end": 886, + "name": "DUP3", + "source": 1 + }, + { + "begin": 882, + "end": 963, + "name": "GT", + "source": 1 + }, + { + "begin": 879, + "end": 986, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 879, + "end": 986, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 879, + "end": 986, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 966, + "end": 984, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 966, + "end": 984, + "name": "PUSH [tag]", + "source": 1, + "value": "54" + }, + { + "begin": 966, + "end": 984, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 966, + "end": 984, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 966, + "end": 984, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 879, + "end": 986, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 879, + "end": 986, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1010, + "end": 1011, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1007, + "end": 1008, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1003, + "end": 1012, + "name": "ADD", + "source": 1 + }, + { + "begin": 996, + "end": 1012, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 996, + "end": 1012, + "name": "POP", + "source": 1 + }, + { + "begin": 713, + "end": 1018, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 713, + "end": 1018, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 713, + "end": 1018, + "name": "POP", + "source": 1 + }, + { + "begin": 713, + "end": 1018, + "name": "POP", + "source": 1 + }, + { + "begin": 713, + "end": 1018, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1024, + "end": 1372, + "name": "tag", + "source": 1, + "value": "16" + }, + { + "begin": 1024, + "end": 1372, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1064, + "end": 1071, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1087, + "end": 1107, + "name": "PUSH [tag]", + "source": 1, + "value": "56" + }, + { + "begin": 1105, + "end": 1106, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1087, + "end": 1107, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 1087, + "end": 1107, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1087, + "end": 1107, + "name": "tag", + "source": 1, + "value": "56" + }, + { + "begin": 1087, + "end": 1107, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1082, + "end": 1107, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1082, + "end": 1107, + "name": "POP", + "source": 1 + }, + { + "begin": 1121, + "end": 1141, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 1139, + "end": 1140, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1121, + "end": 1141, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 1121, + "end": 1141, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1121, + "end": 1141, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 1121, + "end": 1141, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1116, + "end": 1141, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1116, + "end": 1141, + "name": "POP", + "source": 1 + }, + { + "begin": 1309, + "end": 1310, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1241, + "end": 1307, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1237, + "end": 1311, + "name": "DIV", + "source": 1 + }, + { + "begin": 1234, + "end": 1235, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1231, + "end": 1312, + "name": "GT", + "source": 1 + }, + { + "begin": 1226, + "end": 1227, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1219, + "end": 1228, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1212, + "end": 1229, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1208, + "end": 1313, + "name": "AND", + "source": 1 + }, + { + "begin": 1205, + "end": 1336, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1205, + "end": 1336, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1205, + "end": 1336, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1316, + "end": 1334, + "name": "PUSH [tag]", + "source": 1, + "value": "59" + }, + { + "begin": 1316, + "end": 1334, + "name": "PUSH [tag]", + "source": 1, + "value": "54" + }, + { + "begin": 1316, + "end": 1334, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1316, + "end": 1334, + "name": "tag", + "source": 1, + "value": "59" + }, + { + "begin": 1316, + "end": 1334, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1205, + "end": 1336, + "name": "tag", + "source": 1, + "value": "58" + }, + { + "begin": 1205, + "end": 1336, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1364, + "end": 1365, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1361, + "end": 1362, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1357, + "end": 1366, + "name": "MUL", + "source": 1 + }, + { + "begin": 1346, + "end": 1366, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1346, + "end": 1366, + "name": "POP", + "source": 1 + }, + { + "begin": 1024, + "end": 1372, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1024, + "end": 1372, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1024, + "end": 1372, + "name": "POP", + "source": 1 + }, + { + "begin": 1024, + "end": 1372, + "name": "POP", + "source": 1 + }, + { + "begin": 1024, + "end": 1372, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1378, + "end": 1455, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 1378, + "end": 1455, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1415, + "end": 1422, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1444, + "end": 1449, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1433, + "end": 1449, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1433, + "end": 1449, + "name": "POP", + "source": 1 + }, + { + "begin": 1378, + "end": 1455, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1378, + "end": 1455, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1378, + "end": 1455, + "name": "POP", + "source": 1 + }, + { + "begin": 1378, + "end": 1455, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1461, + "end": 1641, + "name": "tag", + "source": 1, + "value": "23" + }, + { + "begin": 1461, + "end": 1641, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1509, + "end": 1586, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1506, + "end": 1507, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1499, + "end": 1587, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 1606, + "end": 1610, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 1603, + "end": 1604, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 1596, + "end": 1611, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 1630, + "end": 1634, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 1627, + "end": 1628, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1620, + "end": 1635, + "name": "REVERT", + "source": 1 + }, + { + "begin": 1647, + "end": 1827, + "name": "tag", + "source": 1, + "value": "54" + }, + { + "begin": 1647, + "end": 1827, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1772, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1692, + "end": 1693, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1685, + "end": 1773, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 1792, + "end": 1796, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 1789, + "end": 1790, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 1782, + "end": 1797, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 1816, + "end": 1820, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 1813, + "end": 1814, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1806, + "end": 1821, + "name": "REVERT", + "source": 1 + }, + { + "begin": 1956, + "end": 2073, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 1956, + "end": 2073, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2065, + "end": 2066, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2062, + "end": 2063, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2055, + "end": 2067, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2079, + "end": 2201, + "name": "tag", + "source": 1, + "value": "39" + }, + { + "begin": 2079, + "end": 2201, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2152, + "end": 2176, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 2170, + "end": 2175, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2152, + "end": 2176, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 2152, + "end": 2176, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2152, + "end": 2176, + "name": "tag", + "source": 1, + "value": "67" + }, + { + "begin": 2152, + "end": 2176, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2145, + "end": 2150, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2142, + "end": 2177, + "name": "EQ", + "source": 1 + }, + { + "begin": 2132, + "end": 2195, + "name": "PUSH [tag]", + "source": 1, + "value": "68" + }, + { + "begin": 2132, + "end": 2195, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2191, + "end": 2192, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2188, + "end": 2189, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2181, + "end": 2193, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2132, + "end": 2195, + "name": "tag", + "source": 1, + "value": "68" + }, + { + "begin": 2132, + "end": 2195, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2079, + "end": 2201, + "name": "POP", + "source": 1 + }, + { + "begin": 2079, + "end": 2201, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "EtherUnitExample()": "822d0647", + "TimeUnitExample()": "9b92a9e8", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EtherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TimeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0x8002e781e52cb5c8bc695c145791626c2b2235734bfc6baeb103dfdd7cb60e9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ab7c435b96d2bdfa04ed50b88bc4319507a6d5444aa805c56cc60175211c55c\",\"dweb:/ipfs/QmYMngu8idpZbMoD689tHDCjtoQcwyP4P2tQr1maWL37eQ\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 64 + ] + }, + "id": 65, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7" + ], + "nodeType": "PragmaDirective", + "src": "33:23:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 64, + "linearizedBaseContracts": [ + 64 + ], + "name": "Example", + "nameLocation": "69:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 10, + "nodeType": "Block", + "src": "124:37:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "142:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "151:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "142:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "135:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "135:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "135:18:0" + } + ] + }, + "functionSelector": "822d0647", + "id": 11, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "EtherUnitExample", + "nameLocation": "93:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "109:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "124:0:0" + }, + "scope": 64, + "src": "84:77:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 44, + "nodeType": "Block", + "src": "208:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "243:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "256:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "243:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "236:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "236:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19, + "nodeType": "ExpressionStatement", + "src": "236:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "306:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "319:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "306:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 20, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "299:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "299:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25, + "nodeType": "ExpressionStatement", + "src": "299:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "381:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "392:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "381:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "374:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "374:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "374:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "449:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "459:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "449:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "442:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "442:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "442:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "512:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "523:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "512:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "505:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "505:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "505:25:0" + } + ] + }, + "functionSelector": "9b92a9e8", + "id": 45, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "TimeUnitExample", + "nameLocation": "178:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [], + "src": "193:2:0" + }, + "returnParameters": { + "id": 13, + "nodeType": "ParameterList", + "parameters": [], + "src": "208:0:0" + }, + "scope": 64, + "src": "169:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 62, + "nodeType": "Block", + "src": "607:168:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 52, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "683:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "683:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 58, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 54, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "702:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 57, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 55, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49, + "src": "710:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "725:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "710:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "702:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "683:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 61, + "nodeType": "IfStatement", + "src": "679:89:0", + "trueBody": { + "id": 60, + "nodeType": "Block", + "src": "736:32:0", + "statements": [] + } + } + ] + }, + "functionSelector": "19730b44", + "id": 63, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "555:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "start", + "nameLocation": "569:5:0", + "nodeType": "VariableDeclaration", + "scope": 63, + "src": "564:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 46, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "564:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "581:12:0", + "nodeType": "VariableDeclaration", + "scope": 63, + "src": "576:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 48, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "576:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "563:31:0" + }, + "returnParameters": { + "id": 51, + "nodeType": "ParameterList", + "parameters": [], + "src": "607:0:0" + }, + "scope": 64, + "src": "546:229:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 65, + "src": "60:718:0", + "usedErrors": [] + } + ], + "src": "33:745:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/55fab555c310d167a488726aff8bdb67.json b/Ep4/artifacts/build-info/55fab555c310d167a488726aff8bdb67.json new file mode 100644 index 0000000..67e411b --- /dev/null +++ b/Ep4/artifacts/build-info/55fab555c310d167a488726aff8bdb67.json @@ -0,0 +1,6457 @@ +{ + "id": "55fab555c310d167a488726aff8bdb67", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n function etherUnitExample() public pure {\r\n uint a = 5;\r\n if (a == 5) {\r\n // ...\r\n }\r\n\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 1);\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1277 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1277 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":820:1274 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":443:812 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":86:435 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":820:1274 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":889:893 bool */\n 0x00\n /* \"Ep4/example.sol\":906:922 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":925:930 false */\n 0x00\n /* \"Ep4/example.sol\":906:930 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1172:1181 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1157:1169 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1157:1181 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1149:1154 start */\n dup5\n /* \"Ep4/example.sol\":1149:1181 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1130:1145 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1130:1181 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1126:1228 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1212:1216 true */\n 0x01\n /* \"Ep4/example.sol\":1198:1216 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1126:1228 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1255:1266 isValidated */\n dup1\n /* \"Ep4/example.sol\":1248:1266 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":820:1274 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":443:812 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":530:531 1 */\n 0x01\n /* \"Ep4/example.sol\":517:526 1 seconds */\n dup1\n /* \"Ep4/example.sol\":517:531 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":510:532 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":593:603 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":580:589 1 minutes */\n dup1\n /* \"Ep4/example.sol\":580:603 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":573:604 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":666:676 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":655:662 1 hours */\n dup1\n /* \"Ep4/example.sol\":655:676 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":648:677 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":733:741 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":723:729 1 days */\n dup1\n /* \"Ep4/example.sol\":723:741 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":716:742 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":797:803 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":786:793 1 weeks */\n dup1\n /* \"Ep4/example.sol\":786:803 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":779:804 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":443:812 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":86:435 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":137:143 uint a */\n 0x00\n /* \"Ep4/example.sol\":146:147 5 */\n 0x05\n /* \"Ep4/example.sol\":137:147 uint a = 5 */\n swap1\n pop\n /* \"Ep4/example.sol\":273:274 1 */\n 0x01\n /* \"Ep4/example.sol\":264:269 1 wei */\n dup1\n /* \"Ep4/example.sol\":264:274 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":257:275 assert(1 wei == 1) */\n tag_36\n jumpi\n tag_37\n tag_25\n jump\t// in\n tag_37:\n tag_36:\n /* \"Ep4/example.sol\":345:348 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":335:341 1 gwei */\n dup1\n /* \"Ep4/example.sol\":335:348 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":328:349 assert(1 gwei == 1e9) */\n tag_38\n jumpi\n tag_39\n tag_25\n jump\t// in\n tag_39:\n tag_38:\n /* \"Ep4/example.sol\":422:426 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":411:418 1 ether */\n dup1\n /* \"Ep4/example.sol\":411:426 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":404:427 assert(1 ether == 1e18) */\n tag_40\n jumpi\n tag_41\n tag_25\n jump\t// in\n tag_41:\n tag_40:\n /* \"Ep4/example.sol\":126:435 {\r... */\n pop\n /* \"Ep4/example.sol\":86:435 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_43:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_45\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_46\n jump\t// in\n tag_45:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_48\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_49\n tag_50\n jump\t// in\n tag_49:\n /* \"#utility.yul\":245:364 */\n tag_48:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_51\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_43\n jump\t// in\n tag_51:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_52\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_43\n jump\t// in\n tag_52:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_53:\n /* \"#utility.yul\":713:734 */\n tag_55\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_56\n jump\t// in\n tag_55:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_58\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_53\n jump\t// in\n tag_58:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_62\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_63\n jump\t// in\n tag_62:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_64\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_63\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_65\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_66\n tag_67\n jump\t// in\n tag_66:\n /* \"#utility.yul\":1210:1317 */\n tag_65:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_69\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_63\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_70\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_63\n jump\t// in\n tag_70:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_71\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_72\n tag_67\n jump\t// in\n tag_72:\n /* \"#utility.yul\":1536:1667 */\n tag_71:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_56:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_63:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_67:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_50:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_46:\n /* \"#utility.yul\":2579:2603 */\n tag_81\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_63\n jump\t// in\n tag_81:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_82\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_82:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212201cf5df615a3c61e18157ce72e2f19d976c6d374c2ab9990eb71ab9e4a5916c0664736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610355806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610175565b61008a565b60405161006d91906101c4565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e9190610235565b846100a991906101df565b42106100b457600190505b8091505092915050565b600180146100cf576100ce6102a5565b5b603c80146100e0576100df6102a5565b5b610e1080146100f2576100f16102a5565b5b620151808014610105576101046102a5565b5b62093a808014610118576101176102a5565b5b565b60006005905060018014610131576101306102a5565b5b633b9aca008014610145576101446102a5565b5b670de0b6b3a7640000801461015d5761015c6102a5565b5b50565b60008135905061016f81610308565b92915050565b6000806040838503121561018c5761018b610303565b5b600061019a85828601610160565b92505060206101ab85828601610160565b9150509250929050565b6101be8161028f565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60006101ea8261029b565b91506101f58361029b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561022a576102296102d4565b5b828201905092915050565b60006102408261029b565b915061024b8361029b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610284576102836102d4565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6103118161029b565b811461031c57600080fd5b5056fea26469706673582212201cf5df615a3c61e18157ce72e2f19d976c6d374c2ab9990eb71ab9e4a5916c0664736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x235 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1DF JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SWAP1 POP PUSH1 0x1 DUP1 EQ PUSH2 0x131 JUMPI PUSH2 0x130 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x15D JUMPI PUSH2 0x15C PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F DUP2 PUSH2 0x308 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18C JUMPI PUSH2 0x18B PUSH2 0x303 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19A DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1AB DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BE DUP2 PUSH2 0x28F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x1F5 DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x22A JUMPI PUSH2 0x229 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x240 DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x24B DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x284 JUMPI PUSH2 0x283 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x311 DUP2 PUSH2 0x29B JUMP JUMPDEST DUP2 EQ PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHR CREATE2 0xDF PUSH2 0x5A3C PUSH2 0xE181 JUMPI 0xCE PUSH19 0xE2F19D976C6D374C2AB9990EB71AB9E4A5916C MOD PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1215:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_32": { + "entryPoint": 282, + "id": 32, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_66": { + "entryPoint": 190, + "id": 66, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_96": { + "entryPoint": 138, + "id": 96, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 352, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 373, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 437, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 452, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 479, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 565, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 655, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 667, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 677, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 724, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 771, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 776, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610175565b61008a565b60405161006d91906101c4565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e9190610235565b846100a991906101df565b42106100b457600190505b8091505092915050565b600180146100cf576100ce6102a5565b5b603c80146100e0576100df6102a5565b5b610e1080146100f2576100f16102a5565b5b620151808014610105576101046102a5565b5b62093a808014610118576101176102a5565b5b565b60006005905060018014610131576101306102a5565b5b633b9aca008014610145576101446102a5565b5b670de0b6b3a7640000801461015d5761015c6102a5565b5b50565b60008135905061016f81610308565b92915050565b6000806040838503121561018c5761018b610303565b5b600061019a85828601610160565b92505060206101ab85828601610160565b9150509250929050565b6101be8161028f565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60006101ea8261029b565b91506101f58361029b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561022a576102296102d4565b5b828201905092915050565b60006102408261029b565b915061024b8361029b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610284576102836102d4565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6103118161029b565b811461031c57600080fd5b5056fea26469706673582212201cf5df615a3c61e18157ce72e2f19d976c6d374c2ab9990eb71ab9e4a5916c0664736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x235 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1DF JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SWAP1 POP PUSH1 0x1 DUP1 EQ PUSH2 0x131 JUMPI PUSH2 0x130 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x15D JUMPI PUSH2 0x15C PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F DUP2 PUSH2 0x308 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18C JUMPI PUSH2 0x18B PUSH2 0x303 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19A DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1AB DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BE DUP2 PUSH2 0x28F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x1F5 DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x22A JUMPI PUSH2 0x229 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x240 DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x24B DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x284 JUMPI PUSH2 0x283 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x311 DUP2 PUSH2 0x29B JUMP JUMPDEST DUP2 EQ PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHR CREATE2 0xDF PUSH2 0x5A3C PUSH2 0xE181 JUMPI 0xCE PUSH19 0xE2F19D976C6D374C2AB9990EB71AB9E4A5916C MOD PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1215:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;443:369;;;:::i;:::-;;86:349;;;:::i;:::-;;820:454;889:4;906:16;925:5;906:24;;1172:9;1157:12;:24;;;;:::i;:::-;1149:5;:32;;;;:::i;:::-;1130:15;:51;1126:102;;1212:4;1198:18;;1126:102;1255:11;1248:18;;;820:454;;;;:::o;443:369::-;530:1;517:9;:14;510:22;;;;:::i;:::-;;593:10;580:9;:23;573:31;;;;:::i;:::-;;666:10;655:7;:21;648:29;;;;:::i;:::-;;733:8;723:6;:18;716:26;;;;:::i;:::-;;797:6;786:7;:17;779:25;;;;:::i;:::-;;443:369::o;86:349::-;137:6;146:1;137:10;;273:1;264:5;:10;257:18;;;;:::i;:::-;;345:3;335:6;:13;328:21;;;;:::i;:::-;;422:4;411:7;:15;404:23;;;;:::i;:::-;;126:309;86:349::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "170600", + "executionCost": "214", + "totalCost": "170814" + }, + "external": { + "etherUnitExample()": "248", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1277, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1277, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1277, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1277, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1277, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1277, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1277, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a26469706673582212201cf5df615a3c61e18157ce72e2f19d976c6d374c2ab9990eb71ab9e4a5916c0664736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1277, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1277, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1277, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1277, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1277, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1277, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1277, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1277, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1277, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1277, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1277, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1277, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1277, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1277, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1277, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1277, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1277, + "name": "REVERT", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 820, + "end": 1274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 820, + "end": 1274, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 820, + "end": 1274, + "name": "DUP1", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "SUB", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "DUP2", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "ADD", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 820, + "end": 1274, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 820, + "end": 1274, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 820, + "end": 1274, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 820, + "end": 1274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 820, + "end": 1274, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 820, + "end": 1274, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 820, + "end": 1274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 820, + "end": 1274, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 820, + "end": 1274, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 820, + "end": 1274, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 820, + "end": 1274, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 820, + "end": 1274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 820, + "end": 1274, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "DUP1", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "SUB", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "RETURN", + "source": 0 + }, + { + "begin": 443, + "end": 812, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 443, + "end": 812, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 443, + "end": 812, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 443, + "end": 812, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 443, + "end": 812, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 443, + "end": 812, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 443, + "end": 812, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 443, + "end": 812, + "name": "STOP", + "source": 0 + }, + { + "begin": 86, + "end": 435, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 86, + "end": 435, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 435, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 435, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 435, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 86, + "end": 435, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 435, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 435, + "name": "STOP", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 820, + "end": 1274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 889, + "end": 893, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 906, + "end": 922, + "name": "DUP1", + "source": 0 + }, + { + "begin": 925, + "end": 930, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 906, + "end": 930, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 906, + "end": 930, + "name": "POP", + "source": 0 + }, + { + "begin": 1172, + "end": 1181, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1157, + "end": 1169, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1157, + "end": 1181, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1157, + "end": 1181, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1157, + "end": 1181, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1157, + "end": 1181, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1157, + "end": 1181, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1157, + "end": 1181, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1157, + "end": 1181, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1149, + "end": 1154, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1149, + "end": 1181, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1149, + "end": 1181, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1149, + "end": 1181, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1149, + "end": 1181, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1149, + "end": 1181, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1149, + "end": 1181, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1149, + "end": 1181, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1130, + "end": 1145, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1130, + "end": 1181, + "name": "LT", + "source": 0 + }, + { + "begin": 1126, + "end": 1228, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1126, + "end": 1228, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1212, + "end": 1216, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1198, + "end": 1216, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1198, + "end": 1216, + "name": "POP", + "source": 0 + }, + { + "begin": 1126, + "end": 1228, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1126, + "end": 1228, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1255, + "end": 1266, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1248, + "end": 1266, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1248, + "end": 1266, + "name": "POP", + "source": 0 + }, + { + "begin": 1248, + "end": 1266, + "name": "POP", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "POP", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "POP", + "source": 0 + }, + { + "begin": 820, + "end": 1274, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 443, + "end": 812, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 443, + "end": 812, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 530, + "end": 531, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 517, + "end": 526, + "name": "DUP1", + "source": 0 + }, + { + "begin": 517, + "end": 531, + "name": "EQ", + "source": 0 + }, + { + "begin": 510, + "end": 532, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 510, + "end": 532, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 510, + "end": 532, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 510, + "end": 532, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 510, + "end": 532, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 510, + "end": 532, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 510, + "end": 532, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 510, + "end": 532, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 510, + "end": 532, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 593, + "end": 603, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 580, + "end": 589, + "name": "DUP1", + "source": 0 + }, + { + "begin": 580, + "end": 603, + "name": "EQ", + "source": 0 + }, + { + "begin": 573, + "end": 604, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 573, + "end": 604, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 573, + "end": 604, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 573, + "end": 604, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 573, + "end": 604, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 573, + "end": 604, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 573, + "end": 604, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 573, + "end": 604, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 573, + "end": 604, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 666, + "end": 676, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 655, + "end": 662, + "name": "DUP1", + "source": 0 + }, + { + "begin": 655, + "end": 676, + "name": "EQ", + "source": 0 + }, + { + "begin": 648, + "end": 677, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 648, + "end": 677, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 648, + "end": 677, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 648, + "end": 677, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 648, + "end": 677, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 648, + "end": 677, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 648, + "end": 677, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 648, + "end": 677, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 648, + "end": 677, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 733, + "end": 741, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 723, + "end": 729, + "name": "DUP1", + "source": 0 + }, + { + "begin": 723, + "end": 741, + "name": "EQ", + "source": 0 + }, + { + "begin": 716, + "end": 742, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 716, + "end": 742, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 716, + "end": 742, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 716, + "end": 742, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 716, + "end": 742, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 716, + "end": 742, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 716, + "end": 742, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 716, + "end": 742, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 716, + "end": 742, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 797, + "end": 803, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 786, + "end": 793, + "name": "DUP1", + "source": 0 + }, + { + "begin": 786, + "end": 803, + "name": "EQ", + "source": 0 + }, + { + "begin": 779, + "end": 804, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 779, + "end": 804, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 779, + "end": 804, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 779, + "end": 804, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 779, + "end": 804, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 779, + "end": 804, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 779, + "end": 804, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 779, + "end": 804, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 779, + "end": 804, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 443, + "end": 812, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 86, + "end": 435, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 435, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 137, + "end": 143, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 146, + "end": 147, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 137, + "end": 147, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 137, + "end": 147, + "name": "POP", + "source": 0 + }, + { + "begin": 273, + "end": 274, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 264, + "end": 269, + "name": "DUP1", + "source": 0 + }, + { + "begin": 264, + "end": 274, + "name": "EQ", + "source": 0 + }, + { + "begin": 257, + "end": 275, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 257, + "end": 275, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 257, + "end": 275, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 257, + "end": 275, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 257, + "end": 275, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 257, + "end": 275, + "name": "tag", + "source": 0, + "value": "37" + }, + { + "begin": 257, + "end": 275, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 257, + "end": 275, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 257, + "end": 275, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 345, + "end": 348, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 335, + "end": 341, + "name": "DUP1", + "source": 0 + }, + { + "begin": 335, + "end": 348, + "name": "EQ", + "source": 0 + }, + { + "begin": 328, + "end": 349, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 328, + "end": 349, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 328, + "end": 349, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 328, + "end": 349, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 328, + "end": 349, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 328, + "end": 349, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 328, + "end": 349, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 328, + "end": 349, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 328, + "end": 349, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 422, + "end": 426, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 411, + "end": 418, + "name": "DUP1", + "source": 0 + }, + { + "begin": 411, + "end": 426, + "name": "EQ", + "source": 0 + }, + { + "begin": 404, + "end": 427, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 404, + "end": 427, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 404, + "end": 427, + "name": "PUSH [tag]", + "source": 0, + "value": "41" + }, + { + "begin": 404, + "end": 427, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 404, + "end": 427, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 404, + "end": 427, + "name": "tag", + "source": 0, + "value": "41" + }, + { + "begin": 404, + "end": 427, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 404, + "end": 427, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 404, + "end": 427, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 126, + "end": 435, + "name": "POP", + "source": 0 + }, + { + "begin": 86, + "end": 435, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "56" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "58" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "70" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "70" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "72" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "56" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "67" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "82" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "82" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0xe0273a214919318984b8921e26307b302e7f269ecd7e9b05fb8ea3f6946d64b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d910fdee5b00db06ee17f0f04db285a4fea314e3124c3c6e80ac296ce5bef7d8\",\"dweb:/ipfs/QmYWnjhd9oXVnz1P9W7hMLitZQqZvSXWW2Xed4toxwDf4L\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 97 + ] + }, + "id": 98, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 97, + "linearizedBaseContracts": [ + 97 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 31, + "nodeType": "Block", + "src": "126:309:0", + "statements": [ + { + "assignments": [ + 5 + ], + "declarations": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "a", + "nameLocation": "142:1:0", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "137:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "137:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7, + "initialValue": { + "hexValue": "35", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "146:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "nodeType": "VariableDeclarationStatement", + "src": "137:10:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5, + "src": "162:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "35", + "id": 9, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "167:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "162:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12, + "nodeType": "IfStatement", + "src": "158:44:0", + "trueBody": { + "id": 11, + "nodeType": "Block", + "src": "170:32:0", + "statements": [] + } + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "264:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "273:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "264:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "257:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "257:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18, + "nodeType": "ExpressionStatement", + "src": "257:18:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "335:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "345:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "335:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 19, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "328:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "328:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 24, + "nodeType": "ExpressionStatement", + "src": "328:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 26, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "411:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "422:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "411:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 25, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "404:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "404:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30, + "nodeType": "ExpressionStatement", + "src": "404:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 32, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "95:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "111:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "126:0:0" + }, + "scope": 97, + "src": "86:349:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 65, + "nodeType": "Block", + "src": "482:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "517:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 37, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "530:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "517:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 35, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "510:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "510:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 40, + "nodeType": "ExpressionStatement", + "src": "510:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 44, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "580:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "593:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "580:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 41, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "573:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "573:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 46, + "nodeType": "ExpressionStatement", + "src": "573:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 50, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "655:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "666:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "655:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 47, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "648:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "648:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 52, + "nodeType": "ExpressionStatement", + "src": "648:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "723:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 55, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "733:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "723:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 53, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "716:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 57, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "716:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 58, + "nodeType": "ExpressionStatement", + "src": "716:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "786:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 61, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "797:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "786:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 59, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "779:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "779:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 64, + "nodeType": "ExpressionStatement", + "src": "779:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 66, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "452:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [], + "src": "467:2:0" + }, + "returnParameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [], + "src": "482:0:0" + }, + "scope": 97, + "src": "443:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 95, + "nodeType": "Block", + "src": "895:379:0", + "statements": [ + { + "assignments": [ + 76 + ], + "declarations": [ + { + "constant": false, + "id": 76, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "911:11:0", + "nodeType": "VariableDeclaration", + "scope": 95, + "src": "906:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 75, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "906:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 78, + "initialValue": { + "hexValue": "66616c7365", + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "925:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "906:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 86, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 79, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1130:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1130:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 85, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 81, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1149:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 82, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 70, + "src": "1157:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1172:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1157:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1149:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1130:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 92, + "nodeType": "IfStatement", + "src": "1126:102:0", + "trueBody": { + "id": 91, + "nodeType": "Block", + "src": "1183:45:0", + "statements": [ + { + "expression": { + "id": 89, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 87, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 76, + "src": "1198:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 88, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1212:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1198:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 90, + "nodeType": "ExpressionStatement", + "src": "1198:18:0" + } + ] + } + }, + { + "expression": { + "id": 93, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 76, + "src": "1255:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 74, + "id": 94, + "nodeType": "Return", + "src": "1248:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 96, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "829:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 71, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "start", + "nameLocation": "843:5:0", + "nodeType": "VariableDeclaration", + "scope": 96, + "src": "838:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 67, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "838:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 70, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "855:12:0", + "nodeType": "VariableDeclaration", + "scope": 96, + "src": "850:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 69, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "850:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "837:31:0" + }, + "returnParameters": { + "id": 74, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 73, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 96, + "src": "889:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 72, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "889:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "888:6:0" + }, + "scope": 97, + "src": "820:454:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 98, + "src": "62:1215:0", + "usedErrors": [] + } + ], + "src": "33:1244:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/61f5bedb6c08111e0cefee4762d33060.json b/Ep4/artifacts/build-info/61f5bedb6c08111e0cefee4762d33060.json new file mode 100644 index 0000000..b49f81d --- /dev/null +++ b/Ep4/artifacts/build-info/61f5bedb6c08111e0cefee4762d33060.json @@ -0,0 +1,6516 @@ +{ + "id": "61f5bedb6c08111e0cefee4762d33060", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n constructor() public {\r\n }\r\n\r\n function etherUnitExample() public pure {\r\n uint a = 5;\r\n if (a == 5) {\r\n // ...\r\n }\r\n\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 1);\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1314 contract Example {\r... */\n mstore(0x40, 0x80)\n /* \"Ep4/example.sol\":86:115 constructor() public {\r... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"Ep4/example.sol\":62:1314 contract Example {\r... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1314 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":857:1311 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":480:849 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":123:472 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":857:1311 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":926:930 bool */\n 0x00\n /* \"Ep4/example.sol\":943:959 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":962:967 false */\n 0x00\n /* \"Ep4/example.sol\":943:967 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1209:1218 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1194:1206 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1194:1218 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1186:1191 start */\n dup5\n /* \"Ep4/example.sol\":1186:1218 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1167:1182 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1167:1218 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1163:1265 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1249:1253 true */\n 0x01\n /* \"Ep4/example.sol\":1235:1253 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1163:1265 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1292:1303 isValidated */\n dup1\n /* \"Ep4/example.sol\":1285:1303 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":857:1311 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":480:849 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":567:568 1 */\n 0x01\n /* \"Ep4/example.sol\":554:563 1 seconds */\n dup1\n /* \"Ep4/example.sol\":554:568 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":547:569 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":630:640 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":617:626 1 minutes */\n dup1\n /* \"Ep4/example.sol\":617:640 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":610:641 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":703:713 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":692:699 1 hours */\n dup1\n /* \"Ep4/example.sol\":692:713 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":685:714 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":770:778 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":760:766 1 days */\n dup1\n /* \"Ep4/example.sol\":760:778 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":753:779 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":834:840 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":823:830 1 weeks */\n dup1\n /* \"Ep4/example.sol\":823:840 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":816:841 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":480:849 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":123:472 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":174:180 uint a */\n 0x00\n /* \"Ep4/example.sol\":183:184 5 */\n 0x05\n /* \"Ep4/example.sol\":174:184 uint a = 5 */\n swap1\n pop\n /* \"Ep4/example.sol\":310:311 1 */\n 0x01\n /* \"Ep4/example.sol\":301:306 1 wei */\n dup1\n /* \"Ep4/example.sol\":301:311 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":294:312 assert(1 wei == 1) */\n tag_36\n jumpi\n tag_37\n tag_25\n jump\t// in\n tag_37:\n tag_36:\n /* \"Ep4/example.sol\":382:385 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":372:378 1 gwei */\n dup1\n /* \"Ep4/example.sol\":372:385 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":365:386 assert(1 gwei == 1e9) */\n tag_38\n jumpi\n tag_39\n tag_25\n jump\t// in\n tag_39:\n tag_38:\n /* \"Ep4/example.sol\":459:463 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":448:455 1 ether */\n dup1\n /* \"Ep4/example.sol\":448:463 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":441:464 assert(1 ether == 1e18) */\n tag_40\n jumpi\n tag_41\n tag_25\n jump\t// in\n tag_41:\n tag_40:\n /* \"Ep4/example.sol\":163:472 {\r... */\n pop\n /* \"Ep4/example.sol\":123:472 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_43:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_45\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_46\n jump\t// in\n tag_45:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_48\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_49\n tag_50\n jump\t// in\n tag_49:\n /* \"#utility.yul\":245:364 */\n tag_48:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_51\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_43\n jump\t// in\n tag_51:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_52\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_43\n jump\t// in\n tag_52:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_53:\n /* \"#utility.yul\":713:734 */\n tag_55\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_56\n jump\t// in\n tag_55:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_58\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_53\n jump\t// in\n tag_58:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_62\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_63\n jump\t// in\n tag_62:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_64\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_63\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_65\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_66\n tag_67\n jump\t// in\n tag_66:\n /* \"#utility.yul\":1210:1317 */\n tag_65:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_69\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_63\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_70\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_63\n jump\t// in\n tag_70:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_71\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_72\n tag_67\n jump\t// in\n tag_72:\n /* \"#utility.yul\":1536:1667 */\n tag_71:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_56:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_63:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_67:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_50:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_46:\n /* \"#utility.yul\":2579:2603 */\n tag_81\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_63\n jump\t// in\n tag_81:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_82\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_82:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212203fed921b88862bd42b8d38ef71b3a08975d9f537f91723c4f7099ef4d28c952764736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": { + "@_5": { + "entryPoint": null, + "id": 5, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610355806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610175565b61008a565b60405161006d91906101c4565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e9190610235565b846100a991906101df565b42106100b457600190505b8091505092915050565b600180146100cf576100ce6102a5565b5b603c80146100e0576100df6102a5565b5b610e1080146100f2576100f16102a5565b5b620151808014610105576101046102a5565b5b62093a808014610118576101176102a5565b5b565b60006005905060018014610131576101306102a5565b5b633b9aca008014610145576101446102a5565b5b670de0b6b3a7640000801461015d5761015c6102a5565b5b50565b60008135905061016f81610308565b92915050565b6000806040838503121561018c5761018b610303565b5b600061019a85828601610160565b92505060206101ab85828601610160565b9150509250929050565b6101be8161028f565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60006101ea8261029b565b91506101f58361029b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561022a576102296102d4565b5b828201905092915050565b60006102408261029b565b915061024b8361029b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610284576102836102d4565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6103118161029b565b811461031c57600080fd5b5056fea26469706673582212203fed921b88862bd42b8d38ef71b3a08975d9f537f91723c4f7099ef4d28c952764736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x235 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1DF JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SWAP1 POP PUSH1 0x1 DUP1 EQ PUSH2 0x131 JUMPI PUSH2 0x130 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x15D JUMPI PUSH2 0x15C PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F DUP2 PUSH2 0x308 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18C JUMPI PUSH2 0x18B PUSH2 0x303 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19A DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1AB DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BE DUP2 PUSH2 0x28F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x1F5 DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x22A JUMPI PUSH2 0x229 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x240 DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x24B DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x284 JUMPI PUSH2 0x283 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x311 DUP2 PUSH2 0x29B JUMP JUMPDEST DUP2 EQ PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODEHASH 0xED SWAP3 SHL DUP9 DUP7 0x2B 0xD4 0x2B DUP14 CODESIZE 0xEF PUSH18 0xB3A08975D9F537F91723C4F7099EF4D28C95 0x27 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1252:0:-:0;;;86:29;;;;;;;;;;62:1252;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_36": { + "entryPoint": 282, + "id": 36, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_70": { + "entryPoint": 190, + "id": 70, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_100": { + "entryPoint": 138, + "id": 100, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 352, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 373, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 437, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 452, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 479, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 565, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 655, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 667, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 677, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 724, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 771, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 776, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610175565b61008a565b60405161006d91906101c4565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e9190610235565b846100a991906101df565b42106100b457600190505b8091505092915050565b600180146100cf576100ce6102a5565b5b603c80146100e0576100df6102a5565b5b610e1080146100f2576100f16102a5565b5b620151808014610105576101046102a5565b5b62093a808014610118576101176102a5565b5b565b60006005905060018014610131576101306102a5565b5b633b9aca008014610145576101446102a5565b5b670de0b6b3a7640000801461015d5761015c6102a5565b5b50565b60008135905061016f81610308565b92915050565b6000806040838503121561018c5761018b610303565b5b600061019a85828601610160565b92505060206101ab85828601610160565b9150509250929050565b6101be8161028f565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60006101ea8261029b565b91506101f58361029b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561022a576102296102d4565b5b828201905092915050565b60006102408261029b565b915061024b8361029b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610284576102836102d4565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6103118161029b565b811461031c57600080fd5b5056fea26469706673582212203fed921b88862bd42b8d38ef71b3a08975d9f537f91723c4f7099ef4d28c952764736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x235 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1DF JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SWAP1 POP PUSH1 0x1 DUP1 EQ PUSH2 0x131 JUMPI PUSH2 0x130 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x15D JUMPI PUSH2 0x15C PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F DUP2 PUSH2 0x308 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18C JUMPI PUSH2 0x18B PUSH2 0x303 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19A DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1AB DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BE DUP2 PUSH2 0x28F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x1F5 DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x22A JUMPI PUSH2 0x229 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x240 DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x24B DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x284 JUMPI PUSH2 0x283 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x311 DUP2 PUSH2 0x29B JUMP JUMPDEST DUP2 EQ PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODEHASH 0xED SWAP3 SHL DUP9 DUP7 0x2B 0xD4 0x2B DUP14 CODESIZE 0xEF PUSH18 0xB3A08975D9F537F91723C4F7099EF4D28C95 0x27 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1252:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;857:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;480:369;;;:::i;:::-;;123:349;;;:::i;:::-;;857:454;926:4;943:16;962:5;943:24;;1209:9;1194:12;:24;;;;:::i;:::-;1186:5;:32;;;;:::i;:::-;1167:15;:51;1163:102;;1249:4;1235:18;;1163:102;1292:11;1285:18;;;857:454;;;;:::o;480:369::-;567:1;554:9;:14;547:22;;;;:::i;:::-;;630:10;617:9;:23;610:31;;;;:::i;:::-;;703:10;692:7;:21;685:29;;;;:::i;:::-;;770:8;760:6;:18;753:26;;;;:::i;:::-;;834:6;823:7;:17;816:25;;;;:::i;:::-;;480:369::o;123:349::-;174:6;183:1;174:10;;310:1;301:5;:10;294:18;;;;:::i;:::-;;382:3;372:6;:13;365:21;;;;:::i;:::-;;459:4;448:7;:15;441:23;;;;:::i;:::-;;163:309;123:349::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "170600", + "executionCost": "214", + "totalCost": "170814" + }, + "external": { + "etherUnitExample()": "248", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1314, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1314, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 86, + "end": 115, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 86, + "end": 115, + "name": "DUP1", + "source": 0 + }, + { + "begin": 86, + "end": 115, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 86, + "end": 115, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 86, + "end": 115, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 86, + "end": 115, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 86, + "end": 115, + "name": "DUP1", + "source": 0 + }, + { + "begin": 86, + "end": 115, + "name": "REVERT", + "source": 0 + }, + { + "begin": 86, + "end": 115, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 86, + "end": 115, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 115, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1314, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1314, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1314, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a26469706673582212203fed921b88862bd42b8d38ef71b3a08975d9f537f91723c4f7099ef4d28c952764736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1314, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1314, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1314, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1314, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1314, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1314, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1314, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1314, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1314, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1314, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1314, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1314, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1314, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1314, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1314, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1314, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1314, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1314, + "name": "REVERT", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 857, + "end": 1311, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 857, + "end": 1311, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 857, + "end": 1311, + "name": "DUP1", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "SUB", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "DUP2", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "ADD", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 857, + "end": 1311, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 857, + "end": 1311, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 857, + "end": 1311, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 857, + "end": 1311, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 857, + "end": 1311, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 857, + "end": 1311, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 857, + "end": 1311, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 857, + "end": 1311, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 857, + "end": 1311, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 857, + "end": 1311, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 857, + "end": 1311, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 857, + "end": 1311, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 857, + "end": 1311, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "DUP1", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "SUB", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "RETURN", + "source": 0 + }, + { + "begin": 480, + "end": 849, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 480, + "end": 849, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 480, + "end": 849, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 480, + "end": 849, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 480, + "end": 849, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 480, + "end": 849, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 480, + "end": 849, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 480, + "end": 849, + "name": "STOP", + "source": 0 + }, + { + "begin": 123, + "end": 472, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 123, + "end": 472, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 123, + "end": 472, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 123, + "end": 472, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 123, + "end": 472, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 123, + "end": 472, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 123, + "end": 472, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 123, + "end": 472, + "name": "STOP", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 857, + "end": 1311, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 926, + "end": 930, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 943, + "end": 959, + "name": "DUP1", + "source": 0 + }, + { + "begin": 962, + "end": 967, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 943, + "end": 967, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 943, + "end": 967, + "name": "POP", + "source": 0 + }, + { + "begin": 1209, + "end": 1218, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1194, + "end": 1206, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1194, + "end": 1218, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1194, + "end": 1218, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1194, + "end": 1218, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1194, + "end": 1218, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1194, + "end": 1218, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1194, + "end": 1218, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1194, + "end": 1218, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1186, + "end": 1191, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1186, + "end": 1218, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1186, + "end": 1218, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1186, + "end": 1218, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1186, + "end": 1218, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1186, + "end": 1218, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1186, + "end": 1218, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1186, + "end": 1218, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1167, + "end": 1182, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1167, + "end": 1218, + "name": "LT", + "source": 0 + }, + { + "begin": 1163, + "end": 1265, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1163, + "end": 1265, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1249, + "end": 1253, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1235, + "end": 1253, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1235, + "end": 1253, + "name": "POP", + "source": 0 + }, + { + "begin": 1163, + "end": 1265, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1163, + "end": 1265, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1292, + "end": 1303, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1285, + "end": 1303, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1285, + "end": 1303, + "name": "POP", + "source": 0 + }, + { + "begin": 1285, + "end": 1303, + "name": "POP", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "POP", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "POP", + "source": 0 + }, + { + "begin": 857, + "end": 1311, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 480, + "end": 849, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 480, + "end": 849, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 567, + "end": 568, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 554, + "end": 563, + "name": "DUP1", + "source": 0 + }, + { + "begin": 554, + "end": 568, + "name": "EQ", + "source": 0 + }, + { + "begin": 547, + "end": 569, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 547, + "end": 569, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 547, + "end": 569, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 547, + "end": 569, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 547, + "end": 569, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 547, + "end": 569, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 547, + "end": 569, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 547, + "end": 569, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 547, + "end": 569, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 630, + "end": 640, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 617, + "end": 626, + "name": "DUP1", + "source": 0 + }, + { + "begin": 617, + "end": 640, + "name": "EQ", + "source": 0 + }, + { + "begin": 610, + "end": 641, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 610, + "end": 641, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 610, + "end": 641, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 610, + "end": 641, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 610, + "end": 641, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 610, + "end": 641, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 610, + "end": 641, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 610, + "end": 641, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 610, + "end": 641, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 703, + "end": 713, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 692, + "end": 699, + "name": "DUP1", + "source": 0 + }, + { + "begin": 692, + "end": 713, + "name": "EQ", + "source": 0 + }, + { + "begin": 685, + "end": 714, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 685, + "end": 714, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 685, + "end": 714, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 685, + "end": 714, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 685, + "end": 714, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 685, + "end": 714, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 685, + "end": 714, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 685, + "end": 714, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 685, + "end": 714, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 770, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 760, + "end": 766, + "name": "DUP1", + "source": 0 + }, + { + "begin": 760, + "end": 778, + "name": "EQ", + "source": 0 + }, + { + "begin": 753, + "end": 779, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 753, + "end": 779, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 753, + "end": 779, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 753, + "end": 779, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 753, + "end": 779, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 753, + "end": 779, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 753, + "end": 779, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 753, + "end": 779, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 753, + "end": 779, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 834, + "end": 840, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 823, + "end": 830, + "name": "DUP1", + "source": 0 + }, + { + "begin": 823, + "end": 840, + "name": "EQ", + "source": 0 + }, + { + "begin": 816, + "end": 841, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 816, + "end": 841, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 816, + "end": 841, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 816, + "end": 841, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 816, + "end": 841, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 816, + "end": 841, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 816, + "end": 841, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 816, + "end": 841, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 816, + "end": 841, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 480, + "end": 849, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 123, + "end": 472, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 123, + "end": 472, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 174, + "end": 180, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 183, + "end": 184, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 174, + "end": 184, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 174, + "end": 184, + "name": "POP", + "source": 0 + }, + { + "begin": 310, + "end": 311, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 301, + "end": 306, + "name": "DUP1", + "source": 0 + }, + { + "begin": 301, + "end": 311, + "name": "EQ", + "source": 0 + }, + { + "begin": 294, + "end": 312, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 294, + "end": 312, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 294, + "end": 312, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 294, + "end": 312, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 294, + "end": 312, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 294, + "end": 312, + "name": "tag", + "source": 0, + "value": "37" + }, + { + "begin": 294, + "end": 312, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 294, + "end": 312, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 294, + "end": 312, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 382, + "end": 385, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 372, + "end": 378, + "name": "DUP1", + "source": 0 + }, + { + "begin": 372, + "end": 385, + "name": "EQ", + "source": 0 + }, + { + "begin": 365, + "end": 386, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 365, + "end": 386, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 365, + "end": 386, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 365, + "end": 386, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 365, + "end": 386, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 365, + "end": 386, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 365, + "end": 386, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 365, + "end": 386, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 365, + "end": 386, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 459, + "end": 463, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 448, + "end": 455, + "name": "DUP1", + "source": 0 + }, + { + "begin": 448, + "end": 463, + "name": "EQ", + "source": 0 + }, + { + "begin": 441, + "end": 464, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 441, + "end": 464, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 441, + "end": 464, + "name": "PUSH [tag]", + "source": 0, + "value": "41" + }, + { + "begin": 441, + "end": 464, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 441, + "end": 464, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 441, + "end": 464, + "name": "tag", + "source": 0, + "value": "41" + }, + { + "begin": 441, + "end": 464, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 441, + "end": 464, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 441, + "end": 464, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 163, + "end": 472, + "name": "POP", + "source": 0 + }, + { + "begin": 123, + "end": 472, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "56" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "58" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "70" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "70" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "72" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "56" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "67" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "82" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "82" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0x9b59801004289aefb98a14f2b42a0103fe51e732bb8c8a0e530b3e95553f9c0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d029e9b113bbbe3f8daae452ff2407e6f8f9a46e99470425471f4a7d6dcf5b97\",\"dweb:/ipfs/QmRL958QTBb4NAnHKVGj246ooEknapGz71J1PA9V6FWWpN\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "errors": [ + { + "component": "general", + "errorCode": "2462", + "formattedMessage": "Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.\n --> Ep4/example.sol:5:5:\n |\n5 | constructor() public {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.", + "severity": "warning", + "sourceLocation": { + "end": 115, + "file": "Ep4/example.sol", + "start": 86 + }, + "type": "Warning" + } + ], + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 101 + ] + }, + "id": 102, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 101, + "linearizedBaseContracts": [ + 101 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4, + "nodeType": "Block", + "src": "107:8:0", + "statements": [] + }, + "id": 5, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "97:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "107:0:0" + }, + "scope": 101, + "src": "86:29:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 35, + "nodeType": "Block", + "src": "163:309:0", + "statements": [ + { + "assignments": [ + 9 + ], + "declarations": [ + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "a", + "nameLocation": "179:1:0", + "nodeType": "VariableDeclaration", + "scope": 35, + "src": "174:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "174:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 11, + "initialValue": { + "hexValue": "35", + "id": 10, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "183:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "nodeType": "VariableDeclarationStatement", + "src": "174:10:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "199:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "35", + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "204:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "199:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16, + "nodeType": "IfStatement", + "src": "195:44:0", + "trueBody": { + "id": 15, + "nodeType": "Block", + "src": "207:32:0", + "statements": [] + } + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "301:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "310:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "301:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 17, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "294:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "294:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 22, + "nodeType": "ExpressionStatement", + "src": "294:18:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 26, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "372:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 25, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "382:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "372:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 23, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "365:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "365:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28, + "nodeType": "ExpressionStatement", + "src": "365:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 32, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "448:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 31, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "459:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "448:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 29, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "441:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "441:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 34, + "nodeType": "ExpressionStatement", + "src": "441:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 36, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "132:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6, + "nodeType": "ParameterList", + "parameters": [], + "src": "148:2:0" + }, + "returnParameters": { + "id": 7, + "nodeType": "ParameterList", + "parameters": [], + "src": "163:0:0" + }, + "scope": 101, + "src": "123:349:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 69, + "nodeType": "Block", + "src": "519:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "554:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "567:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "554:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 39, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "547:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "547:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 44, + "nodeType": "ExpressionStatement", + "src": "547:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "617:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "630:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "617:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 45, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "610:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "610:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 50, + "nodeType": "ExpressionStatement", + "src": "610:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "692:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "703:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "692:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 51, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "685:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 55, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "685:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 56, + "nodeType": "ExpressionStatement", + "src": "685:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 58, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "760:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "770:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "760:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 57, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "753:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 61, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "753:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 62, + "nodeType": "ExpressionStatement", + "src": "753:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 66, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 64, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "823:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 65, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "834:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "823:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 63, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "816:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "816:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 68, + "nodeType": "ExpressionStatement", + "src": "816:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 70, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "489:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 37, + "nodeType": "ParameterList", + "parameters": [], + "src": "504:2:0" + }, + "returnParameters": { + "id": 38, + "nodeType": "ParameterList", + "parameters": [], + "src": "519:0:0" + }, + "scope": 101, + "src": "480:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 99, + "nodeType": "Block", + "src": "932:379:0", + "statements": [ + { + "assignments": [ + 80 + ], + "declarations": [ + { + "constant": false, + "id": 80, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "948:11:0", + "nodeType": "VariableDeclaration", + "scope": 99, + "src": "943:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 79, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "943:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 82, + "initialValue": { + "hexValue": "66616c7365", + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "962:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "943:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 83, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1167:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1167:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 89, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 85, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "1186:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 88, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 86, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 74, + "src": "1194:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 87, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1209:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1194:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1186:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1167:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 96, + "nodeType": "IfStatement", + "src": "1163:102:0", + "trueBody": { + "id": 95, + "nodeType": "Block", + "src": "1220:45:0", + "statements": [ + { + "expression": { + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 91, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 80, + "src": "1235:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 92, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1249:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1235:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 94, + "nodeType": "ExpressionStatement", + "src": "1235:18:0" + } + ] + } + }, + { + "expression": { + "id": 97, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 80, + "src": "1292:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 78, + "id": 98, + "nodeType": "Return", + "src": "1285:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 100, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "866:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 75, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 72, + "mutability": "mutable", + "name": "start", + "nameLocation": "880:5:0", + "nodeType": "VariableDeclaration", + "scope": 100, + "src": "875:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 71, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "875:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "892:12:0", + "nodeType": "VariableDeclaration", + "scope": 100, + "src": "887:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 73, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "887:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "874:31:0" + }, + "returnParameters": { + "id": 78, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 77, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 100, + "src": "926:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 76, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "926:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "925:6:0" + }, + "scope": 101, + "src": "857:454:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 102, + "src": "62:1252:0", + "usedErrors": [] + } + ], + "src": "33:1281:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/76ec21ca7332b7a135b9224a62140e8a.json b/Ep4/artifacts/build-info/76ec21ca7332b7a135b9224a62140e8a.json new file mode 100644 index 0000000..904467a --- /dev/null +++ b/Ep4/artifacts/build-info/76ec21ca7332b7a135b9224a62140e8a.json @@ -0,0 +1,7379 @@ +{ + "id": "76ec21ca7332b7a135b9224a62140e8a", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n function etherUnitExample() public pure {\r\n\r\n // wei是貨幣中的最小單位\r\n require(1 wei == 1, \"1 wei not equal to 1\");\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1227 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1227 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":770:1224 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":393:762 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":86:385 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":770:1224 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":839:843 bool */\n 0x00\n /* \"Ep4/example.sol\":856:872 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":875:880 false */\n 0x00\n /* \"Ep4/example.sol\":856:880 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1122:1131 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1107:1119 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1107:1131 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1099:1104 start */\n dup5\n /* \"Ep4/example.sol\":1099:1131 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1080:1095 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1080:1131 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1076:1178 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1162:1166 true */\n 0x01\n /* \"Ep4/example.sol\":1148:1166 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1076:1178 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1205:1216 isValidated */\n dup1\n /* \"Ep4/example.sol\":1198:1216 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":770:1224 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":393:762 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":480:481 1 */\n 0x01\n /* \"Ep4/example.sol\":467:476 1 seconds */\n dup1\n /* \"Ep4/example.sol\":467:481 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":460:482 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":543:553 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":530:539 1 minutes */\n dup1\n /* \"Ep4/example.sol\":530:553 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":523:554 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":616:626 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":605:612 1 hours */\n dup1\n /* \"Ep4/example.sol\":605:626 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":598:627 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":683:691 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":673:679 1 days */\n dup1\n /* \"Ep4/example.sol\":673:691 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":666:692 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":747:753 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":736:743 1 weeks */\n dup1\n /* \"Ep4/example.sol\":736:753 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":729:754 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":393:762 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":86:385 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":199:200 1 */\n 0x01\n /* \"Ep4/example.sol\":190:195 1 wei */\n dup1\n /* \"Ep4/example.sol\":190:200 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":182:225 require(1 wei == 1, \"1 wei not equal to 1\") */\n tag_35\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_36\n swap1\n tag_37\n jump\t// in\n tag_36:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_35:\n /* \"Ep4/example.sol\":295:298 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":285:291 1 gwei */\n dup1\n /* \"Ep4/example.sol\":285:298 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":278:299 assert(1 gwei == 1e9) */\n tag_38\n jumpi\n tag_39\n tag_25\n jump\t// in\n tag_39:\n tag_38:\n /* \"Ep4/example.sol\":372:376 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":361:368 1 ether */\n dup1\n /* \"Ep4/example.sol\":361:376 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":354:377 assert(1 ether == 1e18) */\n tag_40\n jumpi\n tag_41\n tag_25\n jump\t// in\n tag_41:\n tag_40:\n /* \"Ep4/example.sol\":86:385 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_43:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_45\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_46\n jump\t// in\n tag_45:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_48\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_49\n tag_50\n jump\t// in\n tag_49:\n /* \"#utility.yul\":245:364 */\n tag_48:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_51\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_43\n jump\t// in\n tag_51:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_52\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_43\n jump\t// in\n tag_52:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_53:\n /* \"#utility.yul\":713:734 */\n tag_55\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_56\n jump\t// in\n tag_55:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:1113 */\n tag_57:\n /* \"#utility.yul\":889:892 */\n 0x00\n /* \"#utility.yul\":910:977 */\n tag_59\n /* \"#utility.yul\":974:976 */\n 0x14\n /* \"#utility.yul\":969:972 */\n dup4\n /* \"#utility.yul\":910:977 */\n tag_60\n jump\t// in\n tag_59:\n /* \"#utility.yul\":903:977 */\n swap2\n pop\n /* \"#utility.yul\":986:1079 */\n tag_61\n /* \"#utility.yul\":1075:1078 */\n dup3\n /* \"#utility.yul\":986:1079 */\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1104:1106 */\n 0x20\n /* \"#utility.yul\":1099:1102 */\n dup3\n /* \"#utility.yul\":1095:1107 */\n add\n /* \"#utility.yul\":1088:1107 */\n swap1\n pop\n /* \"#utility.yul\":747:1113 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1119:1329 */\n tag_11:\n /* \"#utility.yul\":1206:1210 */\n 0x00\n /* \"#utility.yul\":1244:1246 */\n 0x20\n /* \"#utility.yul\":1233:1242 */\n dup3\n /* \"#utility.yul\":1229:1247 */\n add\n /* \"#utility.yul\":1221:1247 */\n swap1\n pop\n /* \"#utility.yul\":1257:1322 */\n tag_64\n /* \"#utility.yul\":1319:1320 */\n 0x00\n /* \"#utility.yul\":1308:1317 */\n dup4\n /* \"#utility.yul\":1304:1321 */\n add\n /* \"#utility.yul\":1295:1301 */\n dup5\n /* \"#utility.yul\":1257:1322 */\n tag_53\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1119:1329 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1335:1754 */\n tag_37:\n /* \"#utility.yul\":1501:1505 */\n 0x00\n /* \"#utility.yul\":1539:1541 */\n 0x20\n /* \"#utility.yul\":1528:1537 */\n dup3\n /* \"#utility.yul\":1524:1542 */\n add\n /* \"#utility.yul\":1516:1542 */\n swap1\n pop\n /* \"#utility.yul\":1588:1597 */\n dup2\n /* \"#utility.yul\":1582:1586 */\n dup2\n /* \"#utility.yul\":1578:1598 */\n sub\n /* \"#utility.yul\":1574:1575 */\n 0x00\n /* \"#utility.yul\":1563:1572 */\n dup4\n /* \"#utility.yul\":1559:1576 */\n add\n /* \"#utility.yul\":1552:1599 */\n mstore\n /* \"#utility.yul\":1616:1747 */\n tag_66\n /* \"#utility.yul\":1742:1746 */\n dup2\n /* \"#utility.yul\":1616:1747 */\n tag_57\n jump\t// in\n tag_66:\n /* \"#utility.yul\":1608:1747 */\n swap1\n pop\n /* \"#utility.yul\":1335:1754 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1841:2010 */\n tag_60:\n /* \"#utility.yul\":1925:1936 */\n 0x00\n /* \"#utility.yul\":1959:1965 */\n dup3\n /* \"#utility.yul\":1954:1957 */\n dup3\n /* \"#utility.yul\":1947:1966 */\n mstore\n /* \"#utility.yul\":1999:2003 */\n 0x20\n /* \"#utility.yul\":1994:1997 */\n dup3\n /* \"#utility.yul\":1990:2004 */\n add\n /* \"#utility.yul\":1975:2004 */\n swap1\n pop\n /* \"#utility.yul\":1841:2010 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2016:2321 */\n tag_20:\n /* \"#utility.yul\":2056:2059 */\n 0x00\n /* \"#utility.yul\":2075:2095 */\n tag_71\n /* \"#utility.yul\":2093:2094 */\n dup3\n /* \"#utility.yul\":2075:2095 */\n tag_72\n jump\t// in\n tag_71:\n /* \"#utility.yul\":2070:2095 */\n swap2\n pop\n /* \"#utility.yul\":2109:2129 */\n tag_73\n /* \"#utility.yul\":2127:2128 */\n dup4\n /* \"#utility.yul\":2109:2129 */\n tag_72\n jump\t// in\n tag_73:\n /* \"#utility.yul\":2104:2129 */\n swap3\n pop\n /* \"#utility.yul\":2263:2264 */\n dup3\n /* \"#utility.yul\":2195:2261 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":2191:2265 */\n sub\n /* \"#utility.yul\":2188:2189 */\n dup3\n /* \"#utility.yul\":2185:2266 */\n gt\n /* \"#utility.yul\":2182:2289 */\n iszero\n tag_74\n jumpi\n /* \"#utility.yul\":2269:2287 */\n tag_75\n tag_76\n jump\t// in\n tag_75:\n /* \"#utility.yul\":2182:2289 */\n tag_74:\n /* \"#utility.yul\":2313:2314 */\n dup3\n /* \"#utility.yul\":2310:2311 */\n dup3\n /* \"#utility.yul\":2306:2315 */\n add\n /* \"#utility.yul\":2299:2315 */\n swap1\n pop\n /* \"#utility.yul\":2016:2321 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2327:2675 */\n tag_18:\n /* \"#utility.yul\":2367:2374 */\n 0x00\n /* \"#utility.yul\":2390:2410 */\n tag_78\n /* \"#utility.yul\":2408:2409 */\n dup3\n /* \"#utility.yul\":2390:2410 */\n tag_72\n jump\t// in\n tag_78:\n /* \"#utility.yul\":2385:2410 */\n swap2\n pop\n /* \"#utility.yul\":2424:2444 */\n tag_79\n /* \"#utility.yul\":2442:2443 */\n dup4\n /* \"#utility.yul\":2424:2444 */\n tag_72\n jump\t// in\n tag_79:\n /* \"#utility.yul\":2419:2444 */\n swap3\n pop\n /* \"#utility.yul\":2612:2613 */\n dup2\n /* \"#utility.yul\":2544:2610 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":2540:2614 */\n div\n /* \"#utility.yul\":2537:2538 */\n dup4\n /* \"#utility.yul\":2534:2615 */\n gt\n /* \"#utility.yul\":2529:2530 */\n dup3\n /* \"#utility.yul\":2522:2531 */\n iszero\n /* \"#utility.yul\":2515:2532 */\n iszero\n /* \"#utility.yul\":2511:2616 */\n and\n /* \"#utility.yul\":2508:2639 */\n iszero\n tag_80\n jumpi\n /* \"#utility.yul\":2619:2637 */\n tag_81\n tag_76\n jump\t// in\n tag_81:\n /* \"#utility.yul\":2508:2639 */\n tag_80:\n /* \"#utility.yul\":2667:2668 */\n dup3\n /* \"#utility.yul\":2664:2665 */\n dup3\n /* \"#utility.yul\":2660:2669 */\n mul\n /* \"#utility.yul\":2649:2669 */\n swap1\n pop\n /* \"#utility.yul\":2327:2675 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2681:2771 */\n tag_56:\n /* \"#utility.yul\":2715:2722 */\n 0x00\n /* \"#utility.yul\":2758:2763 */\n dup2\n /* \"#utility.yul\":2751:2764 */\n iszero\n /* \"#utility.yul\":2744:2765 */\n iszero\n /* \"#utility.yul\":2733:2765 */\n swap1\n pop\n /* \"#utility.yul\":2681:2771 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2777:2854 */\n tag_72:\n /* \"#utility.yul\":2814:2821 */\n 0x00\n /* \"#utility.yul\":2843:2848 */\n dup2\n /* \"#utility.yul\":2832:2848 */\n swap1\n pop\n /* \"#utility.yul\":2777:2854 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2860:3040 */\n tag_25:\n /* \"#utility.yul\":2908:2985 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2905:2906 */\n 0x00\n /* \"#utility.yul\":2898:2986 */\n mstore\n /* \"#utility.yul\":3005:3009 */\n 0x01\n /* \"#utility.yul\":3002:3003 */\n 0x04\n /* \"#utility.yul\":2995:3010 */\n mstore\n /* \"#utility.yul\":3029:3033 */\n 0x24\n /* \"#utility.yul\":3026:3027 */\n 0x00\n /* \"#utility.yul\":3019:3034 */\n revert\n /* \"#utility.yul\":3046:3226 */\n tag_76:\n /* \"#utility.yul\":3094:3171 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":3091:3092 */\n 0x00\n /* \"#utility.yul\":3084:3172 */\n mstore\n /* \"#utility.yul\":3191:3195 */\n 0x11\n /* \"#utility.yul\":3188:3189 */\n 0x04\n /* \"#utility.yul\":3181:3196 */\n mstore\n /* \"#utility.yul\":3215:3219 */\n 0x24\n /* \"#utility.yul\":3212:3213 */\n 0x00\n /* \"#utility.yul\":3205:3220 */\n revert\n /* \"#utility.yul\":3355:3472 */\n tag_50:\n /* \"#utility.yul\":3464:3465 */\n 0x00\n /* \"#utility.yul\":3461:3462 */\n dup1\n /* \"#utility.yul\":3454:3466 */\n revert\n /* \"#utility.yul\":3478:3648 */\n tag_62:\n /* \"#utility.yul\":3618:3640 */\n 0x3120776569206e6f7420657175616c20746f2031000000000000000000000000\n /* \"#utility.yul\":3614:3615 */\n 0x00\n /* \"#utility.yul\":3606:3612 */\n dup3\n /* \"#utility.yul\":3602:3616 */\n add\n /* \"#utility.yul\":3595:3641 */\n mstore\n /* \"#utility.yul\":3478:3648 */\n pop\n jump\t// out\n /* \"#utility.yul\":3654:3776 */\n tag_46:\n /* \"#utility.yul\":3727:3751 */\n tag_91\n /* \"#utility.yul\":3745:3750 */\n dup2\n /* \"#utility.yul\":3727:3751 */\n tag_72\n jump\t// in\n tag_91:\n /* \"#utility.yul\":3720:3725 */\n dup2\n /* \"#utility.yul\":3717:3752 */\n eq\n /* \"#utility.yul\":3707:3770 */\n tag_92\n jumpi\n /* \"#utility.yul\":3766:3767 */\n 0x00\n /* \"#utility.yul\":3763:3764 */\n dup1\n /* \"#utility.yul\":3756:3768 */\n revert\n /* \"#utility.yul\":3707:3770 */\n tag_92:\n /* \"#utility.yul\":3654:3776 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220051310d57c220cac9bc375317679ffadc554414e1b47ebdf470dfb41c8823f9c64736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506103fd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b91906101a0565b61008a565b60405161006d9190610212565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e91906102b4565b846100a9919061025e565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610324565b5b603c80146100e0576100df610324565b5b610e1080146100f2576100f1610324565b5b62015180801461010557610104610324565b5b62093a80801461011857610117610324565b5b565b6001801461015d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101549061022d565b60405180910390fd5b633b9aca00801461017157610170610324565b5b670de0b6b3a7640000801461018957610188610324565b5b565b60008135905061019a816103b0565b92915050565b600080604083850312156101b7576101b6610382565b5b60006101c58582860161018b565b92505060206101d68582860161018b565b9150509250929050565b6101e98161030e565b82525050565b60006101fc60148361024d565b915061020782610387565b602082019050919050565b600060208201905061022760008301846101e0565b92915050565b60006020820190508181036000830152610246816101ef565b9050919050565b600082825260208201905092915050565b60006102698261031a565b91506102748361031a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156102a9576102a8610353565b5b828201905092915050565b60006102bf8261031a565b91506102ca8361031a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561030357610302610353565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b7f3120776569206e6f7420657175616c20746f2031000000000000000000000000600082015250565b6103b98161031a565b81146103c457600080fd5b5056fea2646970667358221220051310d57c220cac9bc375317679ffadc554414e1b47ebdf470dfb41c8823f9c64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1A0 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x212 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x2B4 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x25E JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x324 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x15D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154 SWAP1 PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x171 JUMPI PUSH2 0x170 PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x189 JUMPI PUSH2 0x188 PUSH2 0x324 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19A DUP2 PUSH2 0x3B0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7 JUMPI PUSH2 0x1B6 PUSH2 0x382 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C5 DUP6 DUP3 DUP7 ADD PUSH2 0x18B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D6 DUP6 DUP3 DUP7 ADD PUSH2 0x18B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E9 DUP2 PUSH2 0x30E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FC PUSH1 0x14 DUP4 PUSH2 0x24D JUMP JUMPDEST SWAP2 POP PUSH2 0x207 DUP3 PUSH2 0x387 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x227 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x246 DUP2 PUSH2 0x1EF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x269 DUP3 PUSH2 0x31A JUMP JUMPDEST SWAP2 POP PUSH2 0x274 DUP4 PUSH2 0x31A JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2A9 JUMPI PUSH2 0x2A8 PUSH2 0x353 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BF DUP3 PUSH2 0x31A JUMP JUMPDEST SWAP2 POP PUSH2 0x2CA DUP4 PUSH2 0x31A JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x303 JUMPI PUSH2 0x302 PUSH2 0x353 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x3120776569206E6F7420657175616C20746F2031000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x3B9 DUP2 PUSH2 0x31A JUMP JUMPDEST DUP2 EQ PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SDIV SGT LT 0xD5 PUSH29 0x220CAC9BC375317679FFADC554414E1B47EBDF470DFB41C8823F9C6473 PUSH16 0x6C634300080700330000000000000000 ", + "sourceMap": "62:1165:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_24": { + "entryPoint": 282, + "id": 24, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_58": { + "entryPoint": 190, + "id": 58, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_88": { + "entryPoint": 138, + "id": 88, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 395, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 416, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 480, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd_to_t_string_memory_ptr_fromStack": { + "entryPoint": 495, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 530, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 557, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 589, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 606, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 692, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 782, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 794, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 804, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 851, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 898, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "store_literal_in_memory_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd": { + "entryPoint": 903, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 944, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:3779:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "893:220:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "903:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "969:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "974:2:1", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "910:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "910:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "903:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1075:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd", + "nodeType": "YulIdentifier", + "src": "986:88:1" + }, + "nodeType": "YulFunctionCall", + "src": "986:93:1" + }, + "nodeType": "YulExpressionStatement", + "src": "986:93:1" + }, + { + "nodeType": "YulAssignment", + "src": "1088:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1099:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1104:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1095:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1095:12:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1088:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "881:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "889:3:1", + "type": "" + } + ], + "src": "747:366:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1211:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1221:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1233:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1244:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1229:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1229:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1221:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1295:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1308:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1319:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1304:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1304:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1257:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "1257:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1257:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1183:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1195:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1206:4:1", + "type": "" + } + ], + "src": "1119:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1506:248:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1516:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1528:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1524:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1524:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1516:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1563:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1574:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1559:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1559:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1582:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1588:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1578:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1578:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1552:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1552:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1552:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "1608:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1742:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1616:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "1616:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1608:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1486:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1501:4:1", + "type": "" + } + ], + "src": "1335:419:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1800:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1810:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1826:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1820:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1820:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1810:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1793:6:1", + "type": "" + } + ], + "src": "1760:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1937:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1954:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1959:6:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1947:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1947:19:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1947:19:1" + }, + { + "nodeType": "YulAssignment", + "src": "1975:29:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1994:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1999:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1990:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1990:14:1" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "1975:11:1" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1909:3:1", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1914:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "1925:11:1", + "type": "" + } + ], + "src": "1841:169:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2060:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2070:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2093:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2075:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2075:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2070:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2104:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2127:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2109:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2104:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2267:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "2269:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "2269:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2269:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2188:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2195:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2263:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2191:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2191:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2185:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2185:81:1" + }, + "nodeType": "YulIf", + "src": "2182:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "2299:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2310:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2313:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2306:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2306:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "2299:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "2047:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "2050:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "2056:3:1", + "type": "" + } + ], + "src": "2016:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2375:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2385:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2408:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2390:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2390:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2385:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2419:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2442:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2424:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2424:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2419:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2617:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "2619:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "2619:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2619:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2529:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2522:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2522:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2515:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2515:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2537:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2544:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2612:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "2540:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2540:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2534:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2534:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2511:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2511:105:1" + }, + "nodeType": "YulIf", + "src": "2508:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "2649:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2664:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2667:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "2660:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2660:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "2649:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "2358:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "2361:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "2367:7:1", + "type": "" + } + ], + "src": "2327:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2723:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2733:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2758:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2751:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2751:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2744:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2744:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2733:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2705:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2715:7:1", + "type": "" + } + ], + "src": "2681:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2822:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2832:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2843:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2832:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2804:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2814:7:1", + "type": "" + } + ], + "src": "2777:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2888:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2905:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2908:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2898:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2898:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2898:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3002:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3005:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2995:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2995:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2995:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3026:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3029:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3019:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3019:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3019:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "2860:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3074:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3091:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3094:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3084:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3084:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3084:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3188:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3191:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3181:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3181:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3181:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3212:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3215:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3205:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3205:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3205:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "3046:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3321:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3338:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3341:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3331:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3331:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3331:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "3232:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3444:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3461:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3464:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3454:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3454:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3454:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "3355:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3584:64:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "3606:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3614:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3602:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3602:14:1" + }, + { + "hexValue": "3120776569206e6f7420657175616c20746f2031", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3618:22:1", + "type": "", + "value": "1 wei not equal to 1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3595:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3595:46:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3595:46:1" + } + ] + }, + "name": "store_literal_in_memory_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "3576:6:1", + "type": "" + } + ], + "src": "3478:170:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3697:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3754:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3763:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3766:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3756:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3756:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3756:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3720:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3745:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3727:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "3727:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "3717:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "3717:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3710:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3710:43:1" + }, + "nodeType": "YulIf", + "src": "3707:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3690:5:1", + "type": "" + } + ], + "src": "3654:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function store_literal_in_memory_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd(memPtr) {\n\n mstore(add(memPtr, 0), \"1 wei not equal to 1\")\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b91906101a0565b61008a565b60405161006d9190610212565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e91906102b4565b846100a9919061025e565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610324565b5b603c80146100e0576100df610324565b5b610e1080146100f2576100f1610324565b5b62015180801461010557610104610324565b5b62093a80801461011857610117610324565b5b565b6001801461015d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101549061022d565b60405180910390fd5b633b9aca00801461017157610170610324565b5b670de0b6b3a7640000801461018957610188610324565b5b565b60008135905061019a816103b0565b92915050565b600080604083850312156101b7576101b6610382565b5b60006101c58582860161018b565b92505060206101d68582860161018b565b9150509250929050565b6101e98161030e565b82525050565b60006101fc60148361024d565b915061020782610387565b602082019050919050565b600060208201905061022760008301846101e0565b92915050565b60006020820190508181036000830152610246816101ef565b9050919050565b600082825260208201905092915050565b60006102698261031a565b91506102748361031a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156102a9576102a8610353565b5b828201905092915050565b60006102bf8261031a565b91506102ca8361031a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561030357610302610353565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b7f3120776569206e6f7420657175616c20746f2031000000000000000000000000600082015250565b6103b98161031a565b81146103c457600080fd5b5056fea2646970667358221220051310d57c220cac9bc375317679ffadc554414e1b47ebdf470dfb41c8823f9c64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1A0 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x212 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x2B4 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x25E JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x324 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x15D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154 SWAP1 PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x171 JUMPI PUSH2 0x170 PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x189 JUMPI PUSH2 0x188 PUSH2 0x324 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19A DUP2 PUSH2 0x3B0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7 JUMPI PUSH2 0x1B6 PUSH2 0x382 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C5 DUP6 DUP3 DUP7 ADD PUSH2 0x18B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D6 DUP6 DUP3 DUP7 ADD PUSH2 0x18B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E9 DUP2 PUSH2 0x30E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FC PUSH1 0x14 DUP4 PUSH2 0x24D JUMP JUMPDEST SWAP2 POP PUSH2 0x207 DUP3 PUSH2 0x387 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x227 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x246 DUP2 PUSH2 0x1EF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x269 DUP3 PUSH2 0x31A JUMP JUMPDEST SWAP2 POP PUSH2 0x274 DUP4 PUSH2 0x31A JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2A9 JUMPI PUSH2 0x2A8 PUSH2 0x353 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BF DUP3 PUSH2 0x31A JUMP JUMPDEST SWAP2 POP PUSH2 0x2CA DUP4 PUSH2 0x31A JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x303 JUMPI PUSH2 0x302 PUSH2 0x353 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x3120776569206E6F7420657175616C20746F2031000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x3B9 DUP2 PUSH2 0x31A JUMP JUMPDEST DUP2 EQ PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SDIV SGT LT 0xD5 PUSH29 0x220CAC9BC375317679FFADC554414E1B47EBDF470DFB41C8823F9C6473 PUSH16 0x6C634300080700330000000000000000 ", + "sourceMap": "62:1165:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;770:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;393:369;;;:::i;:::-;;86:299;;;:::i;:::-;;770:454;839:4;856:16;875:5;856:24;;1122:9;1107:12;:24;;;;:::i;:::-;1099:5;:32;;;;:::i;:::-;1080:15;:51;1076:102;;1162:4;1148:18;;1076:102;1205:11;1198:18;;;770:454;;;;:::o;393:369::-;480:1;467:9;:14;460:22;;;;:::i;:::-;;543:10;530:9;:23;523:31;;;;:::i;:::-;;616:10;605:7;:21;598:29;;;;:::i;:::-;;683:8;673:6;:18;666:26;;;;:::i;:::-;;747:6;736:7;:17;729:25;;;;:::i;:::-;;393:369::o;86:299::-;199:1;190:5;:10;182:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;295:3;285:6;:13;278:21;;;;:::i;:::-;;372:4;361:7;:15;354:23;;;;:::i;:::-;;86:299::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:366::-;889:3;910:67;974:2;969:3;910:67;:::i;:::-;903:74;;986:93;1075:3;986:93;:::i;:::-;1104:2;1099:3;1095:12;1088:19;;747:366;;;:::o;1119:210::-;1206:4;1244:2;1233:9;1229:18;1221:26;;1257:65;1319:1;1308:9;1304:17;1295:6;1257:65;:::i;:::-;1119:210;;;;:::o;1335:419::-;1501:4;1539:2;1528:9;1524:18;1516:26;;1588:9;1582:4;1578:20;1574:1;1563:9;1559:17;1552:47;1616:131;1742:4;1616:131;:::i;:::-;1608:139;;1335:419;;;:::o;1841:169::-;1925:11;1959:6;1954:3;1947:19;1999:4;1994:3;1990:14;1975:29;;1841:169;;;;:::o;2016:305::-;2056:3;2075:20;2093:1;2075:20;:::i;:::-;2070:25;;2109:20;2127:1;2109:20;:::i;:::-;2104:25;;2263:1;2195:66;2191:74;2188:1;2185:81;2182:107;;;2269:18;;:::i;:::-;2182:107;2313:1;2310;2306:9;2299:16;;2016:305;;;;:::o;2327:348::-;2367:7;2390:20;2408:1;2390:20;:::i;:::-;2385:25;;2424:20;2442:1;2424:20;:::i;:::-;2419:25;;2612:1;2544:66;2540:74;2537:1;2534:81;2529:1;2522:9;2515:17;2511:105;2508:131;;;2619:18;;:::i;:::-;2508:131;2667:1;2664;2660:9;2649:20;;2327:348;;;;:::o;2681:90::-;2715:7;2758:5;2751:13;2744:21;2733:32;;2681:90;;;:::o;2777:77::-;2814:7;2843:5;2832:16;;2777:77;;;:::o;2860:180::-;2908:77;2905:1;2898:88;3005:4;3002:1;2995:15;3029:4;3026:1;3019:15;3046:180;3094:77;3091:1;3084:88;3191:4;3188:1;3181:15;3215:4;3212:1;3205:15;3355:117;3464:1;3461;3454:12;3478:170;3618:22;3614:1;3606:6;3602:14;3595:46;3478:170;:::o;3654:122::-;3727:24;3745:5;3727:24;:::i;:::-;3720:5;3717:35;3707:63;;3766:1;3763;3756:12;3707:63;3654:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "204200", + "executionCost": "245", + "totalCost": "204445" + }, + "external": { + "etherUnitExample()": "235", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1227, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1227, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1227, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220051310d57c220cac9bc375317679ffadc554414e1b47ebdf470dfb41c8823f9c64736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1227, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1227, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1227, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1227, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1227, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1227, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1227, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "REVERT", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 770, + "end": 1224, + "name": "DUP1", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SUB", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "DUP2", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "ADD", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 770, + "end": 1224, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 770, + "end": 1224, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 770, + "end": 1224, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 770, + "end": 1224, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 770, + "end": 1224, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "DUP1", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SUB", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "RETURN", + "source": 0 + }, + { + "begin": 393, + "end": 762, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 393, + "end": 762, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 393, + "end": 762, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 393, + "end": 762, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 393, + "end": 762, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 393, + "end": 762, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 393, + "end": 762, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 393, + "end": 762, + "name": "STOP", + "source": 0 + }, + { + "begin": 86, + "end": 385, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 86, + "end": 385, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 385, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 385, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 385, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 86, + "end": 385, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 385, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 385, + "name": "STOP", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 839, + "end": 843, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 856, + "end": 872, + "name": "DUP1", + "source": 0 + }, + { + "begin": 875, + "end": 880, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 856, + "end": 880, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 856, + "end": 880, + "name": "POP", + "source": 0 + }, + { + "begin": 1122, + "end": 1131, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1107, + "end": 1119, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1107, + "end": 1131, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1107, + "end": 1131, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1107, + "end": 1131, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1107, + "end": 1131, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1107, + "end": 1131, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1107, + "end": 1131, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1107, + "end": 1131, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1099, + "end": 1104, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1099, + "end": 1131, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1099, + "end": 1131, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1099, + "end": 1131, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1099, + "end": 1131, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1099, + "end": 1131, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1099, + "end": 1131, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1099, + "end": 1131, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1080, + "end": 1095, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1080, + "end": 1131, + "name": "LT", + "source": 0 + }, + { + "begin": 1076, + "end": 1178, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1076, + "end": 1178, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1162, + "end": 1166, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1148, + "end": 1166, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1148, + "end": 1166, + "name": "POP", + "source": 0 + }, + { + "begin": 1076, + "end": 1178, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1076, + "end": 1178, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1205, + "end": 1216, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1198, + "end": 1216, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1198, + "end": 1216, + "name": "POP", + "source": 0 + }, + { + "begin": 1198, + "end": 1216, + "name": "POP", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "POP", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "POP", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 393, + "end": 762, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 393, + "end": 762, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 480, + "end": 481, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 467, + "end": 476, + "name": "DUP1", + "source": 0 + }, + { + "begin": 467, + "end": 481, + "name": "EQ", + "source": 0 + }, + { + "begin": 460, + "end": 482, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 460, + "end": 482, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 460, + "end": 482, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 460, + "end": 482, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 460, + "end": 482, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 460, + "end": 482, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 460, + "end": 482, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 460, + "end": 482, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 460, + "end": 482, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 543, + "end": 553, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 530, + "end": 539, + "name": "DUP1", + "source": 0 + }, + { + "begin": 530, + "end": 553, + "name": "EQ", + "source": 0 + }, + { + "begin": 523, + "end": 554, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 523, + "end": 554, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 523, + "end": 554, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 523, + "end": 554, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 523, + "end": 554, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 523, + "end": 554, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 523, + "end": 554, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 523, + "end": 554, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 523, + "end": 554, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 616, + "end": 626, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 605, + "end": 612, + "name": "DUP1", + "source": 0 + }, + { + "begin": 605, + "end": 626, + "name": "EQ", + "source": 0 + }, + { + "begin": 598, + "end": 627, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 598, + "end": 627, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 598, + "end": 627, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 598, + "end": 627, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 598, + "end": 627, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 598, + "end": 627, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 598, + "end": 627, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 598, + "end": 627, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 598, + "end": 627, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 683, + "end": 691, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 673, + "end": 679, + "name": "DUP1", + "source": 0 + }, + { + "begin": 673, + "end": 691, + "name": "EQ", + "source": 0 + }, + { + "begin": 666, + "end": 692, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 666, + "end": 692, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 666, + "end": 692, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 666, + "end": 692, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 666, + "end": 692, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 666, + "end": 692, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 666, + "end": 692, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 666, + "end": 692, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 666, + "end": 692, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 747, + "end": 753, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 736, + "end": 743, + "name": "DUP1", + "source": 0 + }, + { + "begin": 736, + "end": 753, + "name": "EQ", + "source": 0 + }, + { + "begin": 729, + "end": 754, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 729, + "end": 754, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 729, + "end": 754, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 729, + "end": 754, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 729, + "end": 754, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 729, + "end": 754, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 729, + "end": 754, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 729, + "end": 754, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 729, + "end": 754, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 393, + "end": 762, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 86, + "end": 385, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 385, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 199, + "end": 200, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 190, + "end": 195, + "name": "DUP1", + "source": 0 + }, + { + "begin": 190, + "end": 200, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 225, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 182, + "end": 225, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "PUSH", + "source": 0, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 182, + "end": 225, + "name": "DUP2", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 182, + "end": 225, + "name": "ADD", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 225, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 182, + "end": 225, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 225, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 225, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 182, + "end": 225, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "DUP1", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "SUB", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "REVERT", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 225, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 295, + "end": 298, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 285, + "end": 291, + "name": "DUP1", + "source": 0 + }, + { + "begin": 285, + "end": 298, + "name": "EQ", + "source": 0 + }, + { + "begin": 278, + "end": 299, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 278, + "end": 299, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 278, + "end": 299, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 278, + "end": 299, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 278, + "end": 299, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 278, + "end": 299, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 278, + "end": 299, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 278, + "end": 299, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 278, + "end": 299, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 372, + "end": 376, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 361, + "end": 368, + "name": "DUP1", + "source": 0 + }, + { + "begin": 361, + "end": 376, + "name": "EQ", + "source": 0 + }, + { + "begin": 354, + "end": 377, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 354, + "end": 377, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 354, + "end": 377, + "name": "PUSH [tag]", + "source": 0, + "value": "41" + }, + { + "begin": 354, + "end": 377, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 354, + "end": 377, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 354, + "end": 377, + "name": "tag", + "source": 0, + "value": "41" + }, + { + "begin": 354, + "end": 377, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 354, + "end": 377, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 354, + "end": 377, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 385, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "56" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 1113, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 747, + "end": 1113, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 889, + "end": 892, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 910, + "end": 977, + "name": "PUSH [tag]", + "source": 1, + "value": "59" + }, + { + "begin": 974, + "end": 976, + "name": "PUSH", + "source": 1, + "value": "14" + }, + { + "begin": 969, + "end": 972, + "name": "DUP4", + "source": 1 + }, + { + "begin": 910, + "end": 977, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 910, + "end": 977, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 910, + "end": 977, + "name": "tag", + "source": 1, + "value": "59" + }, + { + "begin": 910, + "end": 977, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 903, + "end": 977, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 903, + "end": 977, + "name": "POP", + "source": 1 + }, + { + "begin": 986, + "end": 1079, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1075, + "end": 1078, + "name": "DUP3", + "source": 1 + }, + { + "begin": 986, + "end": 1079, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 986, + "end": 1079, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 986, + "end": 1079, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 986, + "end": 1079, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1104, + "end": 1106, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1099, + "end": 1102, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1095, + "end": 1107, + "name": "ADD", + "source": 1 + }, + { + "begin": 1088, + "end": 1107, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1088, + "end": 1107, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1119, + "end": 1329, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 1119, + "end": 1329, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1206, + "end": 1210, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1244, + "end": 1246, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1233, + "end": 1242, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1229, + "end": 1247, + "name": "ADD", + "source": 1 + }, + { + "begin": 1221, + "end": 1247, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1221, + "end": 1247, + "name": "POP", + "source": 1 + }, + { + "begin": 1257, + "end": 1322, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1319, + "end": 1320, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1308, + "end": 1317, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1304, + "end": 1321, + "name": "ADD", + "source": 1 + }, + { + "begin": 1295, + "end": 1301, + "name": "DUP5", + "source": 1 + }, + { + "begin": 1257, + "end": 1322, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 1257, + "end": 1322, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1257, + "end": 1322, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1257, + "end": 1322, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "POP", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "POP", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1335, + "end": 1754, + "name": "tag", + "source": 1, + "value": "37" + }, + { + "begin": 1335, + "end": 1754, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1501, + "end": 1505, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1539, + "end": 1541, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1528, + "end": 1537, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1524, + "end": 1542, + "name": "ADD", + "source": 1 + }, + { + "begin": 1516, + "end": 1542, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1516, + "end": 1542, + "name": "POP", + "source": 1 + }, + { + "begin": 1588, + "end": 1597, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1582, + "end": 1586, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1578, + "end": 1598, + "name": "SUB", + "source": 1 + }, + { + "begin": 1574, + "end": 1575, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1563, + "end": 1572, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1559, + "end": 1576, + "name": "ADD", + "source": 1 + }, + { + "begin": 1552, + "end": 1599, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 1616, + "end": 1747, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1742, + "end": 1746, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1616, + "end": 1747, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 1616, + "end": 1747, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1616, + "end": 1747, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1616, + "end": 1747, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1608, + "end": 1747, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1608, + "end": 1747, + "name": "POP", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "POP", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1841, + "end": 2010, + "name": "tag", + "source": 1, + "value": "60" + }, + { + "begin": 1841, + "end": 2010, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1925, + "end": 1936, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1959, + "end": 1965, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1954, + "end": 1957, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1947, + "end": 1966, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 1999, + "end": 2003, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1994, + "end": 1997, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1990, + "end": 2004, + "name": "ADD", + "source": 1 + }, + { + "begin": 1975, + "end": 2004, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1975, + "end": 2004, + "name": "POP", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "POP", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "POP", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2016, + "end": 2321, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 2016, + "end": 2321, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2056, + "end": 2059, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2075, + "end": 2095, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 2093, + "end": 2094, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2075, + "end": 2095, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2075, + "end": 2095, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2075, + "end": 2095, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 2075, + "end": 2095, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2070, + "end": 2095, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2070, + "end": 2095, + "name": "POP", + "source": 1 + }, + { + "begin": 2109, + "end": 2129, + "name": "PUSH [tag]", + "source": 1, + "value": "73" + }, + { + "begin": 2127, + "end": 2128, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2109, + "end": 2129, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2109, + "end": 2129, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2109, + "end": 2129, + "name": "tag", + "source": 1, + "value": "73" + }, + { + "begin": 2109, + "end": 2129, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2104, + "end": 2129, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2104, + "end": 2129, + "name": "POP", + "source": 1 + }, + { + "begin": 2263, + "end": 2264, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2195, + "end": 2261, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2191, + "end": 2265, + "name": "SUB", + "source": 1 + }, + { + "begin": 2188, + "end": 2189, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2185, + "end": 2266, + "name": "GT", + "source": 1 + }, + { + "begin": 2182, + "end": 2289, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2182, + "end": 2289, + "name": "PUSH [tag]", + "source": 1, + "value": "74" + }, + { + "begin": 2182, + "end": 2289, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2269, + "end": 2287, + "name": "PUSH [tag]", + "source": 1, + "value": "75" + }, + { + "begin": 2269, + "end": 2287, + "name": "PUSH [tag]", + "source": 1, + "value": "76" + }, + { + "begin": 2269, + "end": 2287, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2269, + "end": 2287, + "name": "tag", + "source": 1, + "value": "75" + }, + { + "begin": 2269, + "end": 2287, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2182, + "end": 2289, + "name": "tag", + "source": 1, + "value": "74" + }, + { + "begin": 2182, + "end": 2289, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2313, + "end": 2314, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2310, + "end": 2311, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2306, + "end": 2315, + "name": "ADD", + "source": 1 + }, + { + "begin": 2299, + "end": 2315, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2299, + "end": 2315, + "name": "POP", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "POP", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "POP", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2327, + "end": 2675, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 2327, + "end": 2675, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2367, + "end": 2374, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2390, + "end": 2410, + "name": "PUSH [tag]", + "source": 1, + "value": "78" + }, + { + "begin": 2408, + "end": 2409, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2390, + "end": 2410, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2390, + "end": 2410, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2390, + "end": 2410, + "name": "tag", + "source": 1, + "value": "78" + }, + { + "begin": 2390, + "end": 2410, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2385, + "end": 2410, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2385, + "end": 2410, + "name": "POP", + "source": 1 + }, + { + "begin": 2424, + "end": 2444, + "name": "PUSH [tag]", + "source": 1, + "value": "79" + }, + { + "begin": 2442, + "end": 2443, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2424, + "end": 2444, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2424, + "end": 2444, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2424, + "end": 2444, + "name": "tag", + "source": 1, + "value": "79" + }, + { + "begin": 2424, + "end": 2444, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2419, + "end": 2444, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2419, + "end": 2444, + "name": "POP", + "source": 1 + }, + { + "begin": 2612, + "end": 2613, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2544, + "end": 2610, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2540, + "end": 2614, + "name": "DIV", + "source": 1 + }, + { + "begin": 2537, + "end": 2538, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2534, + "end": 2615, + "name": "GT", + "source": 1 + }, + { + "begin": 2529, + "end": 2530, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2522, + "end": 2531, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2515, + "end": 2532, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2511, + "end": 2616, + "name": "AND", + "source": 1 + }, + { + "begin": 2508, + "end": 2639, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2508, + "end": 2639, + "name": "PUSH [tag]", + "source": 1, + "value": "80" + }, + { + "begin": 2508, + "end": 2639, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2619, + "end": 2637, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2619, + "end": 2637, + "name": "PUSH [tag]", + "source": 1, + "value": "76" + }, + { + "begin": 2619, + "end": 2637, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2619, + "end": 2637, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2619, + "end": 2637, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2508, + "end": 2639, + "name": "tag", + "source": 1, + "value": "80" + }, + { + "begin": 2508, + "end": 2639, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2667, + "end": 2668, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2664, + "end": 2665, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2660, + "end": 2669, + "name": "MUL", + "source": 1 + }, + { + "begin": 2649, + "end": 2669, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2649, + "end": 2669, + "name": "POP", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "POP", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "POP", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2681, + "end": 2771, + "name": "tag", + "source": 1, + "value": "56" + }, + { + "begin": 2681, + "end": 2771, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2715, + "end": 2722, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2758, + "end": 2763, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2751, + "end": 2764, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2744, + "end": 2765, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2733, + "end": 2765, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2733, + "end": 2765, + "name": "POP", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "POP", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2777, + "end": 2854, + "name": "tag", + "source": 1, + "value": "72" + }, + { + "begin": 2777, + "end": 2854, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2814, + "end": 2821, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2843, + "end": 2848, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2832, + "end": 2848, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2832, + "end": 2848, + "name": "POP", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "POP", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2860, + "end": 3040, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 2860, + "end": 3040, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2908, + "end": 2985, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2905, + "end": 2906, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2898, + "end": 2986, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3005, + "end": 3009, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 3002, + "end": 3003, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2995, + "end": 3010, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3029, + "end": 3033, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 3026, + "end": 3027, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3019, + "end": 3034, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3046, + "end": 3226, + "name": "tag", + "source": 1, + "value": "76" + }, + { + "begin": 3046, + "end": 3226, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3094, + "end": 3171, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 3091, + "end": 3092, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3084, + "end": 3172, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3191, + "end": 3195, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 3188, + "end": 3189, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 3181, + "end": 3196, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3215, + "end": 3219, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 3212, + "end": 3213, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3205, + "end": 3220, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3355, + "end": 3472, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 3355, + "end": 3472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3464, + "end": 3465, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3461, + "end": 3462, + "name": "DUP1", + "source": 1 + }, + { + "begin": 3454, + "end": 3466, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3478, + "end": 3648, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 3478, + "end": 3648, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3618, + "end": 3640, + "name": "PUSH", + "source": 1, + "value": "3120776569206E6F7420657175616C20746F2031000000000000000000000000" + }, + { + "begin": 3614, + "end": 3615, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3606, + "end": 3612, + "name": "DUP3", + "source": 1 + }, + { + "begin": 3602, + "end": 3616, + "name": "ADD", + "source": 1 + }, + { + "begin": 3595, + "end": 3641, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3478, + "end": 3648, + "name": "POP", + "source": 1 + }, + { + "begin": 3478, + "end": 3648, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 3654, + "end": 3776, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 3654, + "end": 3776, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3727, + "end": 3751, + "name": "PUSH [tag]", + "source": 1, + "value": "91" + }, + { + "begin": 3745, + "end": 3750, + "name": "DUP2", + "source": 1 + }, + { + "begin": 3727, + "end": 3751, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 3727, + "end": 3751, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 3727, + "end": 3751, + "name": "tag", + "source": 1, + "value": "91" + }, + { + "begin": 3727, + "end": 3751, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3720, + "end": 3725, + "name": "DUP2", + "source": 1 + }, + { + "begin": 3717, + "end": 3752, + "name": "EQ", + "source": 1 + }, + { + "begin": 3707, + "end": 3770, + "name": "PUSH [tag]", + "source": 1, + "value": "92" + }, + { + "begin": 3707, + "end": 3770, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 3766, + "end": 3767, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3763, + "end": 3764, + "name": "DUP1", + "source": 1 + }, + { + "begin": 3756, + "end": 3768, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3707, + "end": 3770, + "name": "tag", + "source": 1, + "value": "92" + }, + { + "begin": 3707, + "end": 3770, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3654, + "end": 3776, + "name": "POP", + "source": 1 + }, + { + "begin": 3654, + "end": 3776, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0x366b97b4f4d483deeb40c0795dc05dcd366b0005bcdd9e8b2fc7e4e29e464690\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://889a25a7f7c984043b4aeb1a33c06436ae831e7fb96aad2bf9aab9c302605ae5\",\"dweb:/ipfs/QmePNbHJcKgkRHqTpT9gxy1j3i3gTMEpLM9B27KhhqgFiZ\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 89 + ] + }, + "id": 90, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 89, + "linearizedBaseContracts": [ + 89 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 23, + "nodeType": "Block", + "src": "126:259:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "190:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "199:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "190:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "3120776569206e6f7420657175616c20746f2031", + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "202:22:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd", + "typeString": "literal_string \"1 wei not equal to 1\"" + }, + "value": "1 wei not equal to 1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_37811ba8135deb450a12435775c35dfc4c86db6328e411e8fc3ee540bb4ab9fd", + "typeString": "literal_string \"1 wei not equal to 1\"" + } + ], + "id": 4, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "182:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10, + "nodeType": "ExpressionStatement", + "src": "182:43:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "285:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "295:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "285:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 11, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "278:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "278:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16, + "nodeType": "ExpressionStatement", + "src": "278:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "361:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "372:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "361:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 17, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "354:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "354:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 22, + "nodeType": "ExpressionStatement", + "src": "354:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 24, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "95:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "111:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "126:0:0" + }, + "scope": 89, + "src": "86:299:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 57, + "nodeType": "Block", + "src": "432:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "467:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "480:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "467:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 27, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "460:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 31, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "460:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32, + "nodeType": "ExpressionStatement", + "src": "460:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "530:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "543:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "530:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 33, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "523:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 37, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "523:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38, + "nodeType": "ExpressionStatement", + "src": "523:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "605:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "616:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "605:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 39, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "598:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "598:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 44, + "nodeType": "ExpressionStatement", + "src": "598:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "673:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "683:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "673:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 45, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "666:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "666:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 50, + "nodeType": "ExpressionStatement", + "src": "666:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "736:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "747:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "736:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 51, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "729:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 55, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "729:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 56, + "nodeType": "ExpressionStatement", + "src": "729:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 58, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "402:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "417:2:0" + }, + "returnParameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [], + "src": "432:0:0" + }, + "scope": 89, + "src": "393:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 87, + "nodeType": "Block", + "src": "845:379:0", + "statements": [ + { + "assignments": [ + 68 + ], + "declarations": [ + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "861:11:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "856:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 67, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "856:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 70, + "initialValue": { + "hexValue": "66616c7365", + "id": 69, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "875:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "856:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 71, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1080:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1080:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 73, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "1099:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 74, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "1107:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1122:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1107:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1099:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1080:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 84, + "nodeType": "IfStatement", + "src": "1076:102:0", + "trueBody": { + "id": 83, + "nodeType": "Block", + "src": "1133:45:0", + "statements": [ + { + "expression": { + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 79, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1148:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1162:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1148:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 82, + "nodeType": "ExpressionStatement", + "src": "1148:18:0" + } + ] + } + }, + { + "expression": { + "id": 85, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1205:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 66, + "id": 86, + "nodeType": "Return", + "src": "1198:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 88, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "779:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 63, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 60, + "mutability": "mutable", + "name": "start", + "nameLocation": "793:5:0", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "788:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 59, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "788:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "805:12:0", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "800:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 61, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "800:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "787:31:0" + }, + "returnParameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 65, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "839:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 64, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "839:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "838:6:0" + }, + "scope": 89, + "src": "770:454:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 90, + "src": "62:1165:0", + "usedErrors": [] + } + ], + "src": "33:1194:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/7e222a9ee7f4b67476e23bf401ad6ace.json b/Ep4/artifacts/build-info/7e222a9ee7f4b67476e23bf401ad6ace.json new file mode 100644 index 0000000..f6e0867 --- /dev/null +++ b/Ep4/artifacts/build-info/7e222a9ee7f4b67476e23bf401ad6ace.json @@ -0,0 +1,6143 @@ +{ + "id": "7e222a9ee7f4b67476e23bf401ad6ace", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n\r\n function etherUnitExample() public pure {\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 1);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\t\t// 區塊的時間戳記至少在3秒以前, 才算有效\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1004 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1004 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":671:1001 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":294:663 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":88:286 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":671:1001 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":740:744 bool */\n 0x00\n /* \"Ep4/example.sol\":757:773 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":776:781 false */\n 0x00\n /* \"Ep4/example.sol\":757:781 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":899:908 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":884:896 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":884:908 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":876:881 start */\n dup5\n /* \"Ep4/example.sol\":876:908 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":857:872 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":857:908 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":853:955 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":939:943 true */\n 0x01\n /* \"Ep4/example.sol\":925:943 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":853:955 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":982:993 isValidated */\n dup1\n /* \"Ep4/example.sol\":975:993 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":671:1001 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":294:663 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":381:382 1 */\n 0x01\n /* \"Ep4/example.sol\":368:377 1 seconds */\n dup1\n /* \"Ep4/example.sol\":368:382 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":361:383 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":444:454 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":431:440 1 minutes */\n dup1\n /* \"Ep4/example.sol\":431:454 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":424:455 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":517:527 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":506:513 1 hours */\n dup1\n /* \"Ep4/example.sol\":506:527 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":499:528 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":584:592 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":574:580 1 days */\n dup1\n /* \"Ep4/example.sol\":574:592 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":567:593 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":648:654 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":637:644 1 weeks */\n dup1\n /* \"Ep4/example.sol\":637:654 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":630:655 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":294:663 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":88:286 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":198:199 1 */\n 0x01\n /* \"Ep4/example.sol\":189:194 1 wei */\n dup1\n /* \"Ep4/example.sol\":189:199 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":182:200 assert(1 wei == 1) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":273:277 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":262:269 1 ether */\n dup1\n /* \"Ep4/example.sol\":262:277 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":255:278 assert(1 ether == 1e18) */\n tag_37\n jumpi\n tag_38\n tag_25\n jump\t// in\n tag_38:\n tag_37:\n /* \"Ep4/example.sol\":88:286 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_40:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_42\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_43\n jump\t// in\n tag_42:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_45\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_46\n tag_47\n jump\t// in\n tag_46:\n /* \"#utility.yul\":245:364 */\n tag_45:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_48\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_40\n jump\t// in\n tag_48:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_49\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_40\n jump\t// in\n tag_49:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_50:\n /* \"#utility.yul\":713:734 */\n tag_52\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_53\n jump\t// in\n tag_52:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_55\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_50\n jump\t// in\n tag_55:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_59\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_60\n jump\t// in\n tag_59:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_61\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_60\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_62\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_63\n tag_64\n jump\t// in\n tag_63:\n /* \"#utility.yul\":1210:1317 */\n tag_62:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_66\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_60\n jump\t// in\n tag_66:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_67\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_60\n jump\t// in\n tag_67:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_68\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_69\n tag_64\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1536:1667 */\n tag_68:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_53:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_60:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_64:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_47:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_43:\n /* \"#utility.yul\":2579:2603 */\n tag_78\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_60\n jump\t// in\n tag_78:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_79\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_79:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220df38a06adc2f4f50ef8b81472591c0abea7a790286c7c88d4b87799a780e7aea64736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5061033a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061015a565b61008a565b60405161006d91906101a9565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061021a565b846100a991906101c4565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61028a565b5b603c80146100e0576100df61028a565b5b610e1080146100f2576100f161028a565b5b6201518080146101055761010461028a565b5b62093a8080146101185761011761028a565b5b565b6001801461012b5761012a61028a565b5b670de0b6b3a764000080146101435761014261028a565b5b565b600081359050610154816102ed565b92915050565b60008060408385031215610171576101706102e8565b5b600061017f85828601610145565b925050602061019085828601610145565b9150509250929050565b6101a381610274565b82525050565b60006020820190506101be600083018461019a565b92915050565b60006101cf82610280565b91506101da83610280565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561020f5761020e6102b9565b5b828201905092915050565b600061022582610280565b915061023083610280565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610269576102686102b9565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6102f681610280565b811461030157600080fd5b5056fea2646970667358221220df38a06adc2f4f50ef8b81472591c0abea7a790286c7c88d4b87799a780e7aea64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33A DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x15A JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x21A JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x28A JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x143 JUMPI PUSH2 0x142 PUSH2 0x28A JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x154 DUP2 PUSH2 0x2ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x171 JUMPI PUSH2 0x170 PUSH2 0x2E8 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17F DUP6 DUP3 DUP7 ADD PUSH2 0x145 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x190 DUP6 DUP3 DUP7 ADD PUSH2 0x145 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A3 DUP2 PUSH2 0x274 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1BE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x19A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CF DUP3 PUSH2 0x280 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DA DUP4 PUSH2 0x280 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x20F JUMPI PUSH2 0x20E PUSH2 0x2B9 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x225 DUP3 PUSH2 0x280 JUMP JUMPDEST SWAP2 POP PUSH2 0x230 DUP4 PUSH2 0x280 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x269 JUMPI PUSH2 0x268 PUSH2 0x2B9 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F6 DUP2 PUSH2 0x280 JUMP JUMPDEST DUP2 EQ PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDF CODESIZE LOG0 PUSH11 0xDC2F4F50EF8B81472591C0 0xAB 0xEA PUSH27 0x790286C7C88D4B87799A780E7AEA64736F6C634300080700330000 ", + "sourceMap": "62:942:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_17": { + "entryPoint": 282, + "id": 17, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_51": { + "entryPoint": 190, + "id": 51, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_81": { + "entryPoint": 138, + "id": 81, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 325, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 346, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 410, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 425, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 452, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 538, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 628, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 640, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 650, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 697, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 744, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 749, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061015a565b61008a565b60405161006d91906101a9565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061021a565b846100a991906101c4565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61028a565b5b603c80146100e0576100df61028a565b5b610e1080146100f2576100f161028a565b5b6201518080146101055761010461028a565b5b62093a8080146101185761011761028a565b5b565b6001801461012b5761012a61028a565b5b670de0b6b3a764000080146101435761014261028a565b5b565b600081359050610154816102ed565b92915050565b60008060408385031215610171576101706102e8565b5b600061017f85828601610145565b925050602061019085828601610145565b9150509250929050565b6101a381610274565b82525050565b60006020820190506101be600083018461019a565b92915050565b60006101cf82610280565b91506101da83610280565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561020f5761020e6102b9565b5b828201905092915050565b600061022582610280565b915061023083610280565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610269576102686102b9565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6102f681610280565b811461030157600080fd5b5056fea2646970667358221220df38a06adc2f4f50ef8b81472591c0abea7a790286c7c88d4b87799a780e7aea64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x15A JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x21A JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x28A JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x28A JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x143 JUMPI PUSH2 0x142 PUSH2 0x28A JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x154 DUP2 PUSH2 0x2ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x171 JUMPI PUSH2 0x170 PUSH2 0x2E8 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17F DUP6 DUP3 DUP7 ADD PUSH2 0x145 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x190 DUP6 DUP3 DUP7 ADD PUSH2 0x145 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A3 DUP2 PUSH2 0x274 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1BE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x19A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CF DUP3 PUSH2 0x280 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DA DUP4 PUSH2 0x280 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x20F JUMPI PUSH2 0x20E PUSH2 0x2B9 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x225 DUP3 PUSH2 0x280 JUMP JUMPDEST SWAP2 POP PUSH2 0x230 DUP4 PUSH2 0x280 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x269 JUMPI PUSH2 0x268 PUSH2 0x2B9 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F6 DUP2 PUSH2 0x280 JUMP JUMPDEST DUP2 EQ PUSH2 0x301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDF CODESIZE LOG0 PUSH11 0xDC2F4F50EF8B81472591C0 0xAB 0xEA PUSH27 0x790286C7C88D4B87799A780E7AEA64736F6C634300080700330000 ", + "sourceMap": "62:942:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;671:330;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;294:369;;;:::i;:::-;;88:198;;;:::i;:::-;;671:330;740:4;757:16;776:5;757:24;;899:9;884:12;:24;;;;:::i;:::-;876:5;:32;;;;:::i;:::-;857:15;:51;853:102;;939:4;925:18;;853:102;982:11;975:18;;;671:330;;;;:::o;294:369::-;381:1;368:9;:14;361:22;;;;:::i;:::-;;444:10;431:9;:23;424:31;;;;:::i;:::-;;517:10;506:7;:21;499:29;;;;:::i;:::-;;584:8;574:6;:18;567:26;;;;:::i;:::-;;648:6;637:7;:17;630:25;;;;:::i;:::-;;294:369::o;88:198::-;198:1;189:5;:10;182:18;;;;:::i;:::-;;273:4;262:7;:15;255:23;;;;:::i;:::-;;88:198::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "165200", + "executionCost": "208", + "totalCost": "165408" + }, + "external": { + "etherUnitExample()": "212", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1004, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1004, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1004, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1004, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1004, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1004, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1004, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220df38a06adc2f4f50ef8b81472591c0abea7a790286c7c88d4b87799a780e7aea64736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1004, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1004, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1004, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1004, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1004, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1004, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1004, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1004, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1004, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1004, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1004, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1004, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1004, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1004, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1004, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1004, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1004, + "name": "REVERT", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 671, + "end": 1001, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 671, + "end": 1001, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 671, + "end": 1001, + "name": "DUP1", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "SUB", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "DUP2", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "ADD", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 671, + "end": 1001, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 671, + "end": 1001, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 671, + "end": 1001, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 671, + "end": 1001, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 671, + "end": 1001, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 671, + "end": 1001, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 671, + "end": 1001, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 671, + "end": 1001, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 671, + "end": 1001, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 671, + "end": 1001, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 671, + "end": 1001, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 671, + "end": 1001, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 671, + "end": 1001, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "DUP1", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "SUB", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "RETURN", + "source": 0 + }, + { + "begin": 294, + "end": 663, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 294, + "end": 663, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 294, + "end": 663, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 294, + "end": 663, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 294, + "end": 663, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 294, + "end": 663, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 294, + "end": 663, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 294, + "end": 663, + "name": "STOP", + "source": 0 + }, + { + "begin": 88, + "end": 286, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 88, + "end": 286, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 286, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 286, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 286, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 88, + "end": 286, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 286, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 286, + "name": "STOP", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 671, + "end": 1001, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 740, + "end": 744, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 757, + "end": 773, + "name": "DUP1", + "source": 0 + }, + { + "begin": 776, + "end": 781, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 757, + "end": 781, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 757, + "end": 781, + "name": "POP", + "source": 0 + }, + { + "begin": 899, + "end": 908, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 884, + "end": 896, + "name": "DUP4", + "source": 0 + }, + { + "begin": 884, + "end": 908, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 884, + "end": 908, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 884, + "end": 908, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 884, + "end": 908, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 884, + "end": 908, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 884, + "end": 908, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 884, + "end": 908, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 876, + "end": 881, + "name": "DUP5", + "source": 0 + }, + { + "begin": 876, + "end": 908, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 876, + "end": 908, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 876, + "end": 908, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 876, + "end": 908, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 876, + "end": 908, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 876, + "end": 908, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 876, + "end": 908, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 857, + "end": 872, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 857, + "end": 908, + "name": "LT", + "source": 0 + }, + { + "begin": 853, + "end": 955, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 853, + "end": 955, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 939, + "end": 943, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 925, + "end": 943, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 925, + "end": 943, + "name": "POP", + "source": 0 + }, + { + "begin": 853, + "end": 955, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 853, + "end": 955, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 982, + "end": 993, + "name": "DUP1", + "source": 0 + }, + { + "begin": 975, + "end": 993, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 975, + "end": 993, + "name": "POP", + "source": 0 + }, + { + "begin": 975, + "end": 993, + "name": "POP", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "POP", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "POP", + "source": 0 + }, + { + "begin": 671, + "end": 1001, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 294, + "end": 663, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 294, + "end": 663, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 381, + "end": 382, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 368, + "end": 377, + "name": "DUP1", + "source": 0 + }, + { + "begin": 368, + "end": 382, + "name": "EQ", + "source": 0 + }, + { + "begin": 361, + "end": 383, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 361, + "end": 383, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 361, + "end": 383, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 361, + "end": 383, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 361, + "end": 383, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 361, + "end": 383, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 361, + "end": 383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 361, + "end": 383, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 361, + "end": 383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 444, + "end": 454, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 431, + "end": 440, + "name": "DUP1", + "source": 0 + }, + { + "begin": 431, + "end": 454, + "name": "EQ", + "source": 0 + }, + { + "begin": 424, + "end": 455, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 424, + "end": 455, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 424, + "end": 455, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 424, + "end": 455, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 424, + "end": 455, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 424, + "end": 455, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 424, + "end": 455, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 424, + "end": 455, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 424, + "end": 455, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 517, + "end": 527, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 506, + "end": 513, + "name": "DUP1", + "source": 0 + }, + { + "begin": 506, + "end": 527, + "name": "EQ", + "source": 0 + }, + { + "begin": 499, + "end": 528, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 499, + "end": 528, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 499, + "end": 528, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 499, + "end": 528, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 499, + "end": 528, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 499, + "end": 528, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 499, + "end": 528, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 499, + "end": 528, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 499, + "end": 528, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 584, + "end": 592, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 574, + "end": 580, + "name": "DUP1", + "source": 0 + }, + { + "begin": 574, + "end": 592, + "name": "EQ", + "source": 0 + }, + { + "begin": 567, + "end": 593, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 567, + "end": 593, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 567, + "end": 593, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 567, + "end": 593, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 567, + "end": 593, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 567, + "end": 593, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 567, + "end": 593, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 567, + "end": 593, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 567, + "end": 593, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 648, + "end": 654, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 637, + "end": 644, + "name": "DUP1", + "source": 0 + }, + { + "begin": 637, + "end": 654, + "name": "EQ", + "source": 0 + }, + { + "begin": 630, + "end": 655, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 630, + "end": 655, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 630, + "end": 655, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 630, + "end": 655, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 630, + "end": 655, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 630, + "end": 655, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 630, + "end": 655, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 630, + "end": 655, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 630, + "end": 655, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 294, + "end": 663, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 88, + "end": 286, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 286, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 198, + "end": 199, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 189, + "end": 194, + "name": "DUP1", + "source": 0 + }, + { + "begin": 189, + "end": 199, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 182, + "end": 200, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 273, + "end": 277, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 262, + "end": 269, + "name": "DUP1", + "source": 0 + }, + { + "begin": 262, + "end": 277, + "name": "EQ", + "source": 0 + }, + { + "begin": 255, + "end": 278, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 255, + "end": 278, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 255, + "end": 278, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 255, + "end": 278, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 255, + "end": 278, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 255, + "end": 278, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 255, + "end": 278, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 255, + "end": 278, + "name": "tag", + "source": 0, + "value": "37" + }, + { + "begin": 255, + "end": 278, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 286, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "40" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "42" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "40" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "40" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "59" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "59" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "67" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "68" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "68" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "60" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "78" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "78" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "79" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "79" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0x1f067f05b2545ad326ca5512762f95cf92da5c81cbb754001961402371b698a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2bab8eea5130eb419b03ca3be9224d484b3a80861fc165eef90bb3aaedd5ffa3\",\"dweb:/ipfs/QmQGv9pq5ryMjhTrzhvYrmZwPMDyQF51u77vXkkjtTeaYH\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 82 + ] + }, + "id": 83, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 82, + "linearizedBaseContracts": [ + 82 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 16, + "nodeType": "Block", + "src": "128:158:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "189:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "198:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "189:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "182:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "182:18:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "262:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "273:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "262:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "255:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "255:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15, + "nodeType": "ExpressionStatement", + "src": "255:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 17, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "97:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "128:0:0" + }, + "scope": 82, + "src": "88:198:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 50, + "nodeType": "Block", + "src": "333:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "368:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "381:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "368:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 20, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "361:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "361:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25, + "nodeType": "ExpressionStatement", + "src": "361:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "431:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "444:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "431:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "424:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "424:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "424:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "506:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "517:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "506:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "499:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "499:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "499:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "574:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "584:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "574:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "567:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "567:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "567:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "637:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "648:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "637:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 44, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "630:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "630:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 49, + "nodeType": "ExpressionStatement", + "src": "630:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 51, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "303:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [], + "src": "318:2:0" + }, + "returnParameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [], + "src": "333:0:0" + }, + "scope": 82, + "src": "294:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 80, + "nodeType": "Block", + "src": "746:255:0", + "statements": [ + { + "assignments": [ + 61 + ], + "declarations": [ + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "762:11:0", + "nodeType": "VariableDeclaration", + "scope": 80, + "src": "757:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 60, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "757:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 63, + "initialValue": { + "hexValue": "66616c7365", + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "776:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "757:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 64, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "857:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 65, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "857:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 70, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 66, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "876:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 69, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 67, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "884:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "899:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "884:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "876:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "857:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 77, + "nodeType": "IfStatement", + "src": "853:102:0", + "trueBody": { + "id": 76, + "nodeType": "Block", + "src": "910:45:0", + "statements": [ + { + "expression": { + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 72, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "925:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 73, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "939:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "925:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 75, + "nodeType": "ExpressionStatement", + "src": "925:18:0" + } + ] + } + }, + { + "expression": { + "id": 78, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "982:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 59, + "id": 79, + "nodeType": "Return", + "src": "975:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 81, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "680:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 56, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 53, + "mutability": "mutable", + "name": "start", + "nameLocation": "694:5:0", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "689:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 52, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "689:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "706:12:0", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "701:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 54, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "701:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "688:31:0" + }, + "returnParameters": { + "id": 59, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 58, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "740:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 57, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "740:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "739:6:0" + }, + "scope": 82, + "src": "671:330:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 83, + "src": "62:942:0", + "usedErrors": [] + } + ], + "src": "33:971:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/83b5b193e23a2ac14252f3c3de84510b.json b/Ep4/artifacts/build-info/83b5b193e23a2ac14252f3c3de84510b.json new file mode 100644 index 0000000..b73343e --- /dev/null +++ b/Ep4/artifacts/build-info/83b5b193e23a2ac14252f3c3de84510b.json @@ -0,0 +1,6316 @@ +{ + "id": "83b5b193e23a2ac14252f3c3de84510b", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n function etherUnitExample() public pure {\r\n\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 2);\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1202 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1202 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":745:1199 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":86:360 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":745:1199 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":814:818 bool */\n 0x00\n /* \"Ep4/example.sol\":831:847 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":850:855 false */\n 0x00\n /* \"Ep4/example.sol\":831:855 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1097:1106 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1082:1094 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1082:1106 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1074:1079 start */\n dup5\n /* \"Ep4/example.sol\":1074:1106 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1055:1070 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1055:1106 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1051:1153 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1137:1141 true */\n 0x01\n /* \"Ep4/example.sol\":1123:1141 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1051:1153 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1180:1191 isValidated */\n dup1\n /* \"Ep4/example.sol\":1173:1191 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":745:1199 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":455:456 1 */\n 0x01\n /* \"Ep4/example.sol\":442:451 1 seconds */\n dup1\n /* \"Ep4/example.sol\":442:456 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":435:457 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":518:528 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":505:514 1 minutes */\n dup1\n /* \"Ep4/example.sol\":505:528 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":498:529 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":591:601 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":580:587 1 hours */\n dup1\n /* \"Ep4/example.sol\":580:601 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":573:602 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":658:666 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":648:654 1 days */\n dup1\n /* \"Ep4/example.sol\":648:666 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":641:667 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":722:728 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":711:718 1 weeks */\n dup1\n /* \"Ep4/example.sol\":711:728 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":704:729 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":86:360 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":198:199 2 */\n 0x02\n /* \"Ep4/example.sol\":189:194 1 wei */\n 0x01\n /* \"Ep4/example.sol\":189:199 1 wei == 2 */\n eq\n /* \"Ep4/example.sol\":182:200 assert(1 wei == 2) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":270:273 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":260:266 1 gwei */\n dup1\n /* \"Ep4/example.sol\":260:273 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":253:274 assert(1 gwei == 1e9) */\n tag_37\n jumpi\n tag_38\n tag_25\n jump\t// in\n tag_38:\n tag_37:\n /* \"Ep4/example.sol\":347:351 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":336:343 1 ether */\n dup1\n /* \"Ep4/example.sol\":336:351 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":329:352 assert(1 ether == 1e18) */\n tag_39\n jumpi\n tag_40\n tag_25\n jump\t// in\n tag_40:\n tag_39:\n /* \"Ep4/example.sol\":86:360 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_42:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_44\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_45\n jump\t// in\n tag_44:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_47\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_48\n tag_49\n jump\t// in\n tag_48:\n /* \"#utility.yul\":245:364 */\n tag_47:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_50\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_42\n jump\t// in\n tag_50:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_51\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_42\n jump\t// in\n tag_51:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_52:\n /* \"#utility.yul\":713:734 */\n tag_54\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_55\n jump\t// in\n tag_54:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_57\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_52\n jump\t// in\n tag_57:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_61\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_63\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_62\n jump\t// in\n tag_63:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_64\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_65\n tag_66\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1210:1317 */\n tag_64:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_68\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_62\n jump\t// in\n tag_68:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_69\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_62\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_70\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_71\n tag_66\n jump\t// in\n tag_71:\n /* \"#utility.yul\":1536:1667 */\n tag_70:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_55:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_62:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_66:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_49:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_45:\n /* \"#utility.yul\":2579:2603 */\n tag_80\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_62\n jump\t// in\n tag_80:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_81\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_81:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220b74a70ac6f78f026e8b665b8aa24bf198c37d53dc5d0896705fa84e7e87a02b564736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5061034f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061016f565b61008a565b60405161006d91906101be565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061022f565b846100a991906101d9565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61029f565b5b603c80146100e0576100df61029f565b5b610e1080146100f2576100f161029f565b5b6201518080146101055761010461029f565b5b62093a8080146101185761011761029f565b5b565b600260011461012c5761012b61029f565b5b633b9aca0080146101405761013f61029f565b5b670de0b6b3a764000080146101585761015761029f565b5b565b60008135905061016981610302565b92915050565b60008060408385031215610186576101856102fd565b5b60006101948582860161015a565b92505060206101a58582860161015a565b9150509250929050565b6101b881610289565b82525050565b60006020820190506101d360008301846101af565b92915050565b60006101e482610295565b91506101ef83610295565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610224576102236102ce565b5b828201905092915050565b600061023a82610295565b915061024583610295565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561027e5761027d6102ce565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61030b81610295565b811461031657600080fd5b5056fea2646970667358221220b74a70ac6f78f026e8b665b8aa24bf198c37d53dc5d0896705fa84e7e87a02b564736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34F DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x16F JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1D9 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x29F JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 EQ PUSH2 0x12C JUMPI PUSH2 0x12B PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x140 JUMPI PUSH2 0x13F PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x158 JUMPI PUSH2 0x157 PUSH2 0x29F JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x169 DUP2 PUSH2 0x302 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x186 JUMPI PUSH2 0x185 PUSH2 0x2FD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x194 DUP6 DUP3 DUP7 ADD PUSH2 0x15A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A5 DUP6 DUP3 DUP7 ADD PUSH2 0x15A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B8 DUP2 PUSH2 0x289 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E4 DUP3 PUSH2 0x295 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EF DUP4 PUSH2 0x295 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x224 JUMPI PUSH2 0x223 PUSH2 0x2CE JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23A DUP3 PUSH2 0x295 JUMP JUMPDEST SWAP2 POP PUSH2 0x245 DUP4 PUSH2 0x295 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x27E JUMPI PUSH2 0x27D PUSH2 0x2CE JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30B DUP2 PUSH2 0x295 JUMP JUMPDEST DUP2 EQ PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB7 0x4A PUSH17 0xAC6F78F026E8B665B8AA24BF198C37D53D 0xC5 0xD0 DUP10 PUSH8 0x5FA84E7E87A02B5 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1140:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_23": { + "entryPoint": 282, + "id": 23, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_57": { + "entryPoint": 190, + "id": 57, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_87": { + "entryPoint": 138, + "id": 87, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 346, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 367, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 431, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 446, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 473, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 559, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 649, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 661, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 671, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 718, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 765, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 770, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061016f565b61008a565b60405161006d91906101be565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061022f565b846100a991906101d9565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61029f565b5b603c80146100e0576100df61029f565b5b610e1080146100f2576100f161029f565b5b6201518080146101055761010461029f565b5b62093a8080146101185761011761029f565b5b565b600260011461012c5761012b61029f565b5b633b9aca0080146101405761013f61029f565b5b670de0b6b3a764000080146101585761015761029f565b5b565b60008135905061016981610302565b92915050565b60008060408385031215610186576101856102fd565b5b60006101948582860161015a565b92505060206101a58582860161015a565b9150509250929050565b6101b881610289565b82525050565b60006020820190506101d360008301846101af565b92915050565b60006101e482610295565b91506101ef83610295565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610224576102236102ce565b5b828201905092915050565b600061023a82610295565b915061024583610295565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561027e5761027d6102ce565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61030b81610295565b811461031657600080fd5b5056fea2646970667358221220b74a70ac6f78f026e8b665b8aa24bf198c37d53dc5d0896705fa84e7e87a02b564736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x16F JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1D9 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x29F JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 EQ PUSH2 0x12C JUMPI PUSH2 0x12B PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x140 JUMPI PUSH2 0x13F PUSH2 0x29F JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x158 JUMPI PUSH2 0x157 PUSH2 0x29F JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x169 DUP2 PUSH2 0x302 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x186 JUMPI PUSH2 0x185 PUSH2 0x2FD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x194 DUP6 DUP3 DUP7 ADD PUSH2 0x15A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A5 DUP6 DUP3 DUP7 ADD PUSH2 0x15A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B8 DUP2 PUSH2 0x289 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E4 DUP3 PUSH2 0x295 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EF DUP4 PUSH2 0x295 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x224 JUMPI PUSH2 0x223 PUSH2 0x2CE JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23A DUP3 PUSH2 0x295 JUMP JUMPDEST SWAP2 POP PUSH2 0x245 DUP4 PUSH2 0x295 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x27E JUMPI PUSH2 0x27D PUSH2 0x2CE JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30B DUP2 PUSH2 0x295 JUMP JUMPDEST DUP2 EQ PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB7 0x4A PUSH17 0xAC6F78F026E8B665B8AA24BF198C37D53D 0xC5 0xD0 DUP10 PUSH8 0x5FA84E7E87A02B5 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1140:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;745:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;368:369;;;:::i;:::-;;86:274;;;:::i;:::-;;745:454;814:4;831:16;850:5;831:24;;1097:9;1082:12;:24;;;;:::i;:::-;1074:5;:32;;;;:::i;:::-;1055:15;:51;1051:102;;1137:4;1123:18;;1051:102;1180:11;1173:18;;;745:454;;;;:::o;368:369::-;455:1;442:9;:14;435:22;;;;:::i;:::-;;518:10;505:9;:23;498:31;;;;:::i;:::-;;591:10;580:7;:21;573:29;;;;:::i;:::-;;658:8;648:6;:18;641:26;;;;:::i;:::-;;722:6;711:7;:17;704:25;;;;:::i;:::-;;368:369::o;86:274::-;198:1;189:5;:10;182:18;;;;:::i;:::-;;270:3;260:6;:13;253:21;;;;:::i;:::-;;347:4;336:7;:15;329:23;;;;:::i;:::-;;86:274::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "169400", + "executionCost": "214", + "totalCost": "169614" + }, + "external": { + "etherUnitExample()": "218", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1202, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1202, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1202, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220b74a70ac6f78f026e8b665b8aa24bf198c37d53dc5d0896705fa84e7e87a02b564736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1202, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1202, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1202, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1202, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1202, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1202, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1202, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "REVERT", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 745, + "end": 1199, + "name": "DUP1", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SUB", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "DUP2", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "ADD", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1199, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1199, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 745, + "end": 1199, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1199, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 745, + "end": 1199, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "DUP1", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SUB", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "RETURN", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 368, + "end": 737, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 368, + "end": 737, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "STOP", + "source": 0 + }, + { + "begin": 86, + "end": 360, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 86, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 360, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 360, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 360, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 86, + "end": 360, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 360, + "name": "STOP", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 814, + "end": 818, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 831, + "end": 847, + "name": "DUP1", + "source": 0 + }, + { + "begin": 850, + "end": 855, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 831, + "end": 855, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 831, + "end": 855, + "name": "POP", + "source": 0 + }, + { + "begin": 1097, + "end": 1106, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1082, + "end": 1094, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1082, + "end": 1106, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1082, + "end": 1106, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1082, + "end": 1106, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1082, + "end": 1106, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1082, + "end": 1106, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1082, + "end": 1106, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1082, + "end": 1106, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1074, + "end": 1079, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1074, + "end": 1106, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1074, + "end": 1106, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1074, + "end": 1106, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1074, + "end": 1106, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1074, + "end": 1106, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1074, + "end": 1106, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1074, + "end": 1106, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1055, + "end": 1070, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1055, + "end": 1106, + "name": "LT", + "source": 0 + }, + { + "begin": 1051, + "end": 1153, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1051, + "end": 1153, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1137, + "end": 1141, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1123, + "end": 1141, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1123, + "end": 1141, + "name": "POP", + "source": 0 + }, + { + "begin": 1051, + "end": 1153, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1051, + "end": 1153, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1180, + "end": 1191, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1173, + "end": 1191, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1173, + "end": 1191, + "name": "POP", + "source": 0 + }, + { + "begin": 1173, + "end": 1191, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 455, + "end": 456, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 442, + "end": 451, + "name": "DUP1", + "source": 0 + }, + { + "begin": 442, + "end": 456, + "name": "EQ", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 435, + "end": 457, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 435, + "end": 457, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 518, + "end": 528, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 505, + "end": 514, + "name": "DUP1", + "source": 0 + }, + { + "begin": 505, + "end": 528, + "name": "EQ", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 498, + "end": 529, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 498, + "end": 529, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 591, + "end": 601, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 580, + "end": 587, + "name": "DUP1", + "source": 0 + }, + { + "begin": 580, + "end": 601, + "name": "EQ", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 573, + "end": 602, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 573, + "end": 602, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 658, + "end": 666, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 648, + "end": 654, + "name": "DUP1", + "source": 0 + }, + { + "begin": 648, + "end": 666, + "name": "EQ", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 641, + "end": 667, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 641, + "end": 667, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 722, + "end": 728, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 711, + "end": 718, + "name": "DUP1", + "source": 0 + }, + { + "begin": 711, + "end": 728, + "name": "EQ", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 704, + "end": 729, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 704, + "end": 729, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 86, + "end": 360, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 198, + "end": 199, + "name": "PUSH", + "source": 0, + "value": "2" + }, + { + "begin": 189, + "end": 194, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 189, + "end": 199, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 182, + "end": 200, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 270, + "end": 273, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 260, + "end": 266, + "name": "DUP1", + "source": 0 + }, + { + "begin": 260, + "end": 273, + "name": "EQ", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 253, + "end": 274, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 253, + "end": 274, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "tag", + "source": 0, + "value": "37" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 347, + "end": 351, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 336, + "end": 343, + "name": "DUP1", + "source": 0 + }, + { + "begin": 336, + "end": 351, + "name": "EQ", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 329, + "end": 352, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 329, + "end": 352, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 360, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "42" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "54" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "54" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "68" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "68" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "80" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "80" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0xa20eacedcedb8fafe5e0ce5d1d881d92bc614f82921c954f8ebf439d6b71d2aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b726c70086ae57ae0e01c54703741a6996fec0730c978e1210d5f10605a5c0d6\",\"dweb:/ipfs/QmT4Ay2G8BERXQRgxVWXN6E5gZpMR6zARe3pHKDUViJbmB\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 88 + ] + }, + "id": 89, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 88, + "linearizedBaseContracts": [ + 88 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 22, + "nodeType": "Block", + "src": "126:234:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "189:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "32", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "198:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "189:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "182:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "182:18:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "260:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "270:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "260:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "253:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "253:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15, + "nodeType": "ExpressionStatement", + "src": "253:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "336:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "347:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "336:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 16, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "329:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "329:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21, + "nodeType": "ExpressionStatement", + "src": "329:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 23, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "95:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "111:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "126:0:0" + }, + "scope": 88, + "src": "86:274:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 56, + "nodeType": "Block", + "src": "407:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "442:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "455:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "442:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "435:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "435:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "435:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "505:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "518:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "505:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "498:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "498:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "498:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "580:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "591:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "580:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "573:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "573:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "573:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "648:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "658:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "648:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 44, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "641:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 49, + "nodeType": "ExpressionStatement", + "src": "641:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "711:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "722:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "711:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 50, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "704:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "704:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "704:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 57, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "377:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 24, + "nodeType": "ParameterList", + "parameters": [], + "src": "392:2:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "407:0:0" + }, + "scope": 88, + "src": "368:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 86, + "nodeType": "Block", + "src": "820:379:0", + "statements": [ + { + "assignments": [ + 67 + ], + "declarations": [ + { + "constant": false, + "id": 67, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "836:11:0", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "831:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 66, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "831:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 69, + "initialValue": { + "hexValue": "66616c7365", + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "850:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "831:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 70, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1055:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1055:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 72, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "1074:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 73, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "1082:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1097:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1082:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1074:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1055:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 83, + "nodeType": "IfStatement", + "src": "1051:102:0", + "trueBody": { + "id": 82, + "nodeType": "Block", + "src": "1108:45:0", + "statements": [ + { + "expression": { + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 78, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1123:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1137:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1123:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 81, + "nodeType": "ExpressionStatement", + "src": "1123:18:0" + } + ] + } + }, + { + "expression": { + "id": 84, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1180:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 65, + "id": 85, + "nodeType": "Return", + "src": "1173:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 87, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "754:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "start", + "nameLocation": "768:5:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "763:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 58, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "763:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "780:12:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "775:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 60, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "775:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "762:31:0" + }, + "returnParameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "814:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 63, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "814:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "813:6:0" + }, + "scope": 88, + "src": "745:454:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 89, + "src": "62:1140:0", + "usedErrors": [] + } + ], + "src": "33:1169:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/8843910820b7cdb2ffdb0e5d93d33360.json b/Ep4/artifacts/build-info/8843910820b7cdb2ffdb0e5d93d33360.json new file mode 100644 index 0000000..829cf29 --- /dev/null +++ b/Ep4/artifacts/build-info/8843910820b7cdb2ffdb0e5d93d33360.json @@ -0,0 +1,6315 @@ +{ + "id": "8843910820b7cdb2ffdb0e5d93d33360", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n\r\n function etherUnitExample() public pure {\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 1);\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1200 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1200 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":745:1197 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":88:360 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":745:1197 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":814:818 bool */\n 0x00\n /* \"Ep4/example.sol\":831:847 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":850:855 false */\n 0x00\n /* \"Ep4/example.sol\":831:855 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1095:1104 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1080:1092 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1080:1104 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1072:1077 start */\n dup5\n /* \"Ep4/example.sol\":1072:1104 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1053:1068 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1053:1104 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1049:1151 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1135:1139 true */\n 0x01\n /* \"Ep4/example.sol\":1121:1139 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1049:1151 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1178:1189 isValidated */\n dup1\n /* \"Ep4/example.sol\":1171:1189 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":745:1197 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":455:456 1 */\n 0x01\n /* \"Ep4/example.sol\":442:451 1 seconds */\n dup1\n /* \"Ep4/example.sol\":442:456 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":435:457 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":518:528 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":505:514 1 minutes */\n dup1\n /* \"Ep4/example.sol\":505:528 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":498:529 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":591:601 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":580:587 1 hours */\n dup1\n /* \"Ep4/example.sol\":580:601 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":573:602 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":658:666 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":648:654 1 days */\n dup1\n /* \"Ep4/example.sol\":648:666 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":641:667 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":722:728 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":711:718 1 weeks */\n dup1\n /* \"Ep4/example.sol\":711:728 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":704:729 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":88:360 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":198:199 1 */\n 0x01\n /* \"Ep4/example.sol\":189:194 1 wei */\n dup1\n /* \"Ep4/example.sol\":189:199 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":182:200 assert(1 wei == 1) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":270:273 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":260:266 1 gwei */\n dup1\n /* \"Ep4/example.sol\":260:273 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":253:274 assert(1 gwei == 1e9) */\n tag_37\n jumpi\n tag_38\n tag_25\n jump\t// in\n tag_38:\n tag_37:\n /* \"Ep4/example.sol\":347:351 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":336:343 1 ether */\n dup1\n /* \"Ep4/example.sol\":336:351 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":329:352 assert(1 ether == 1e18) */\n tag_39\n jumpi\n tag_40\n tag_25\n jump\t// in\n tag_40:\n tag_39:\n /* \"Ep4/example.sol\":88:360 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_42:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_44\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_45\n jump\t// in\n tag_44:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_47\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_48\n tag_49\n jump\t// in\n tag_48:\n /* \"#utility.yul\":245:364 */\n tag_47:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_50\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_42\n jump\t// in\n tag_50:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_51\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_42\n jump\t// in\n tag_51:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_52:\n /* \"#utility.yul\":713:734 */\n tag_54\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_55\n jump\t// in\n tag_54:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_57\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_52\n jump\t// in\n tag_57:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_61\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_63\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_62\n jump\t// in\n tag_63:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_64\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_65\n tag_66\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1210:1317 */\n tag_64:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_68\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_62\n jump\t// in\n tag_68:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_69\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_62\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_70\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_71\n tag_66\n jump\t// in\n tag_71:\n /* \"#utility.yul\":1536:1667 */\n tag_70:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_55:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_62:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_66:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_49:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_45:\n /* \"#utility.yul\":2579:2603 */\n tag_80\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_62\n jump\t// in\n tag_80:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_81\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_81:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212200bdfa0cd865c4ddcd96cb16175073e5c095674bcc62928981fbb214ffe25222e64736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5061034e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061016e565b61008a565b60405161006d91906101bd565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061022e565b846100a991906101d8565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61029e565b5b603c80146100e0576100df61029e565b5b610e1080146100f2576100f161029e565b5b6201518080146101055761010461029e565b5b62093a8080146101185761011761029e565b5b565b6001801461012b5761012a61029e565b5b633b9aca00801461013f5761013e61029e565b5b670de0b6b3a764000080146101575761015661029e565b5b565b60008135905061016881610301565b92915050565b60008060408385031215610185576101846102fc565b5b600061019385828601610159565b92505060206101a485828601610159565b9150509250929050565b6101b781610288565b82525050565b60006020820190506101d260008301846101ae565b92915050565b60006101e382610294565b91506101ee83610294565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610223576102226102cd565b5b828201905092915050565b600061023982610294565b915061024483610294565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561027d5761027c6102cd565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61030a81610294565b811461031557600080fd5b5056fea26469706673582212200bdfa0cd865c4ddcd96cb16175073e5c095674bcc62928981fbb214ffe25222e64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34E DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x16E JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x22E JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1D8 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x13F JUMPI PUSH2 0x13E PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x157 JUMPI PUSH2 0x156 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x168 DUP2 PUSH2 0x301 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x185 JUMPI PUSH2 0x184 PUSH2 0x2FC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x193 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A4 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B7 DUP2 PUSH2 0x288 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E3 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EE DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x223 JUMPI PUSH2 0x222 PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x239 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x244 DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x27D JUMPI PUSH2 0x27C PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30A DUP2 PUSH2 0x294 JUMP JUMPDEST DUP2 EQ PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SIGNEXTEND 0xDF LOG0 0xCD DUP7 0x5C 0x4D 0xDC 0xD9 PUSH13 0xB16175073E5C095674BCC62928 SWAP9 0x1F 0xBB 0x21 0x4F INVALID 0x25 0x22 0x2E PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1138:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_23": { + "entryPoint": 282, + "id": 23, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_57": { + "entryPoint": 190, + "id": 57, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_87": { + "entryPoint": 138, + "id": 87, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 345, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 366, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 430, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 445, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 472, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 558, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 648, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 660, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 670, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 717, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 764, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 769, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061016e565b61008a565b60405161006d91906101bd565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061022e565b846100a991906101d8565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61029e565b5b603c80146100e0576100df61029e565b5b610e1080146100f2576100f161029e565b5b6201518080146101055761010461029e565b5b62093a8080146101185761011761029e565b5b565b6001801461012b5761012a61029e565b5b633b9aca00801461013f5761013e61029e565b5b670de0b6b3a764000080146101575761015661029e565b5b565b60008135905061016881610301565b92915050565b60008060408385031215610185576101846102fc565b5b600061019385828601610159565b92505060206101a485828601610159565b9150509250929050565b6101b781610288565b82525050565b60006020820190506101d260008301846101ae565b92915050565b60006101e382610294565b91506101ee83610294565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610223576102226102cd565b5b828201905092915050565b600061023982610294565b915061024483610294565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561027d5761027c6102cd565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61030a81610294565b811461031557600080fd5b5056fea26469706673582212200bdfa0cd865c4ddcd96cb16175073e5c095674bcc62928981fbb214ffe25222e64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x16E JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x22E JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1D8 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x13F JUMPI PUSH2 0x13E PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x157 JUMPI PUSH2 0x156 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x168 DUP2 PUSH2 0x301 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x185 JUMPI PUSH2 0x184 PUSH2 0x2FC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x193 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A4 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B7 DUP2 PUSH2 0x288 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E3 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EE DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x223 JUMPI PUSH2 0x222 PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x239 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x244 DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x27D JUMPI PUSH2 0x27C PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30A DUP2 PUSH2 0x294 JUMP JUMPDEST DUP2 EQ PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SIGNEXTEND 0xDF LOG0 0xCD DUP7 0x5C 0x4D 0xDC 0xD9 PUSH13 0xB16175073E5C095674BCC62928 SWAP9 0x1F 0xBB 0x21 0x4F INVALID 0x25 0x22 0x2E PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1138:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;745:452;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;368:369;;;:::i;:::-;;88:272;;;:::i;:::-;;745:452;814:4;831:16;850:5;831:24;;1095:9;1080:12;:24;;;;:::i;:::-;1072:5;:32;;;;:::i;:::-;1053:15;:51;1049:102;;1135:4;1121:18;;1049:102;1178:11;1171:18;;;745:452;;;;:::o;368:369::-;455:1;442:9;:14;435:22;;;;:::i;:::-;;518:10;505:9;:23;498:31;;;;:::i;:::-;;591:10;580:7;:21;573:29;;;;:::i;:::-;;658:8;648:6;:18;641:26;;;;:::i;:::-;;722:6;711:7;:17;704:25;;;;:::i;:::-;;368:369::o;88:272::-;198:1;189:5;:10;182:18;;;;:::i;:::-;;270:3;260:6;:13;253:21;;;;:::i;:::-;;347:4;336:7;:15;329:23;;;;:::i;:::-;;88:272::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "169200", + "executionCost": "214", + "totalCost": "169414" + }, + "external": { + "etherUnitExample()": "235", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1200, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1200, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1200, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1200, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1200, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a26469706673582212200bdfa0cd865c4ddcd96cb16175073e5c095674bcc62928981fbb214ffe25222e64736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1200, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1200, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1200, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1200, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1200, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1200, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1200, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1200, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1200, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1200, + "name": "REVERT", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 745, + "end": 1197, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 745, + "end": 1197, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 745, + "end": 1197, + "name": "DUP1", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "SUB", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "DUP2", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "ADD", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 745, + "end": 1197, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 745, + "end": 1197, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1197, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 745, + "end": 1197, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 745, + "end": 1197, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1197, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 745, + "end": 1197, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 745, + "end": 1197, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 745, + "end": 1197, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 745, + "end": 1197, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1197, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 745, + "end": 1197, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 745, + "end": 1197, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "DUP1", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "SUB", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "RETURN", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 368, + "end": 737, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 368, + "end": 737, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "STOP", + "source": 0 + }, + { + "begin": 88, + "end": 360, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 88, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 360, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 360, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 360, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 88, + "end": 360, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 360, + "name": "STOP", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 745, + "end": 1197, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 814, + "end": 818, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 831, + "end": 847, + "name": "DUP1", + "source": 0 + }, + { + "begin": 850, + "end": 855, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 831, + "end": 855, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 831, + "end": 855, + "name": "POP", + "source": 0 + }, + { + "begin": 1095, + "end": 1104, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1080, + "end": 1092, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1080, + "end": 1104, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1080, + "end": 1104, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1080, + "end": 1104, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1080, + "end": 1104, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1080, + "end": 1104, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1080, + "end": 1104, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1080, + "end": 1104, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1072, + "end": 1077, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1072, + "end": 1104, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1072, + "end": 1104, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1072, + "end": 1104, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1072, + "end": 1104, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1072, + "end": 1104, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1072, + "end": 1104, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1072, + "end": 1104, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1053, + "end": 1068, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1053, + "end": 1104, + "name": "LT", + "source": 0 + }, + { + "begin": 1049, + "end": 1151, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1049, + "end": 1151, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1135, + "end": 1139, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1121, + "end": 1139, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1121, + "end": 1139, + "name": "POP", + "source": 0 + }, + { + "begin": 1049, + "end": 1151, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1049, + "end": 1151, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1178, + "end": 1189, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1171, + "end": 1189, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1171, + "end": 1189, + "name": "POP", + "source": 0 + }, + { + "begin": 1171, + "end": 1189, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1197, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 455, + "end": 456, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 442, + "end": 451, + "name": "DUP1", + "source": 0 + }, + { + "begin": 442, + "end": 456, + "name": "EQ", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 435, + "end": 457, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 435, + "end": 457, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 518, + "end": 528, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 505, + "end": 514, + "name": "DUP1", + "source": 0 + }, + { + "begin": 505, + "end": 528, + "name": "EQ", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 498, + "end": 529, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 498, + "end": 529, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 591, + "end": 601, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 580, + "end": 587, + "name": "DUP1", + "source": 0 + }, + { + "begin": 580, + "end": 601, + "name": "EQ", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 573, + "end": 602, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 573, + "end": 602, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 658, + "end": 666, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 648, + "end": 654, + "name": "DUP1", + "source": 0 + }, + { + "begin": 648, + "end": 666, + "name": "EQ", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 641, + "end": 667, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 641, + "end": 667, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 722, + "end": 728, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 711, + "end": 718, + "name": "DUP1", + "source": 0 + }, + { + "begin": 711, + "end": 728, + "name": "EQ", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 704, + "end": 729, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 704, + "end": 729, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 88, + "end": 360, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 198, + "end": 199, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 189, + "end": 194, + "name": "DUP1", + "source": 0 + }, + { + "begin": 189, + "end": 199, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 182, + "end": 200, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 270, + "end": 273, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 260, + "end": 266, + "name": "DUP1", + "source": 0 + }, + { + "begin": 260, + "end": 273, + "name": "EQ", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 253, + "end": 274, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 253, + "end": 274, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "tag", + "source": 0, + "value": "37" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 347, + "end": 351, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 336, + "end": 343, + "name": "DUP1", + "source": 0 + }, + { + "begin": 336, + "end": 351, + "name": "EQ", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 329, + "end": 352, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 329, + "end": 352, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 360, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "42" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "54" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "54" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "68" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "68" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "80" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "80" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0x62aab341efc5d4fa8d8b76f8a45c9fd4221cfefa18c36c6ec5d617d0e13a6a8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dccd24d3c32f4ecb2c54b768336aff13934f16d5d55d8776652055f5a90415d2\",\"dweb:/ipfs/QmSPL7gno11SVRzVhcYM5qKusEGxzpuWq3PxkjmULKeFAw\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 88 + ] + }, + "id": 89, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 88, + "linearizedBaseContracts": [ + 88 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 22, + "nodeType": "Block", + "src": "128:232:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "189:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "198:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "189:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "182:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "182:18:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "260:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "270:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "260:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "253:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "253:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15, + "nodeType": "ExpressionStatement", + "src": "253:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "336:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "347:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "336:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 16, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "329:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "329:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21, + "nodeType": "ExpressionStatement", + "src": "329:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 23, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "97:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "128:0:0" + }, + "scope": 88, + "src": "88:272:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 56, + "nodeType": "Block", + "src": "407:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "442:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "455:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "442:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "435:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "435:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "435:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "505:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "518:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "505:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "498:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "498:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "498:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "580:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "591:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "580:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "573:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "573:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "573:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "648:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "658:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "648:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 44, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "641:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 49, + "nodeType": "ExpressionStatement", + "src": "641:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "711:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "722:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "711:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 50, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "704:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "704:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "704:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 57, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "377:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 24, + "nodeType": "ParameterList", + "parameters": [], + "src": "392:2:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "407:0:0" + }, + "scope": 88, + "src": "368:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 86, + "nodeType": "Block", + "src": "820:377:0", + "statements": [ + { + "assignments": [ + 67 + ], + "declarations": [ + { + "constant": false, + "id": 67, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "836:11:0", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "831:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 66, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "831:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 69, + "initialValue": { + "hexValue": "66616c7365", + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "850:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "831:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 70, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1053:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1053:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 72, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "1072:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 73, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "1080:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1095:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1080:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1072:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1053:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 83, + "nodeType": "IfStatement", + "src": "1049:102:0", + "trueBody": { + "id": 82, + "nodeType": "Block", + "src": "1106:45:0", + "statements": [ + { + "expression": { + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 78, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1121:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1135:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1121:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 81, + "nodeType": "ExpressionStatement", + "src": "1121:18:0" + } + ] + } + }, + { + "expression": { + "id": 84, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1178:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 65, + "id": 85, + "nodeType": "Return", + "src": "1171:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 87, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "754:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "start", + "nameLocation": "768:5:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "763:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 58, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "763:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "780:12:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "775:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 60, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "775:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "762:31:0" + }, + "returnParameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "814:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 63, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "814:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "813:6:0" + }, + "scope": 88, + "src": "745:452:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 89, + "src": "62:1138:0", + "usedErrors": [] + } + ], + "src": "33:1167:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/90b16064731ab3dc561267b13a750164.json b/Ep4/artifacts/build-info/90b16064731ab3dc561267b13a750164.json new file mode 100644 index 0000000..1fd1b54 --- /dev/null +++ b/Ep4/artifacts/build-info/90b16064731ab3dc561267b13a750164.json @@ -0,0 +1,6535 @@ +{ + "id": "90b16064731ab3dc561267b13a750164", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n uint private p = 5;\r\n\r\n function etherUnitExample() public pure {\r\n uint a = 5;\r\n if (a == 5) {\r\n // ...\r\n }\r\n\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 1);\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1304 contract Example {\r... */\n mstore(0x40, 0x80)\n /* \"Ep4/example.sol\":103:104 5 */\n 0x05\n /* \"Ep4/example.sol\":86:104 uint private p = 5 */\n 0x00\n sstore\n /* \"Ep4/example.sol\":62:1304 contract Example {\r... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1304 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":847:1301 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":470:839 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":113:462 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":847:1301 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":916:920 bool */\n 0x00\n /* \"Ep4/example.sol\":933:949 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":952:957 false */\n 0x00\n /* \"Ep4/example.sol\":933:957 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1199:1208 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1184:1196 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1184:1208 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1176:1181 start */\n dup5\n /* \"Ep4/example.sol\":1176:1208 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1157:1172 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1157:1208 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1153:1255 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1239:1243 true */\n 0x01\n /* \"Ep4/example.sol\":1225:1243 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1153:1255 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1282:1293 isValidated */\n dup1\n /* \"Ep4/example.sol\":1275:1293 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":847:1301 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":470:839 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":557:558 1 */\n 0x01\n /* \"Ep4/example.sol\":544:553 1 seconds */\n dup1\n /* \"Ep4/example.sol\":544:558 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":537:559 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":620:630 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":607:616 1 minutes */\n dup1\n /* \"Ep4/example.sol\":607:630 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":600:631 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":693:703 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":682:689 1 hours */\n dup1\n /* \"Ep4/example.sol\":682:703 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":675:704 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":760:768 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":750:756 1 days */\n dup1\n /* \"Ep4/example.sol\":750:768 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":743:769 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":824:830 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":813:820 1 weeks */\n dup1\n /* \"Ep4/example.sol\":813:830 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":806:831 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":470:839 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":113:462 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":164:170 uint a */\n 0x00\n /* \"Ep4/example.sol\":173:174 5 */\n 0x05\n /* \"Ep4/example.sol\":164:174 uint a = 5 */\n swap1\n pop\n /* \"Ep4/example.sol\":300:301 1 */\n 0x01\n /* \"Ep4/example.sol\":291:296 1 wei */\n dup1\n /* \"Ep4/example.sol\":291:301 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":284:302 assert(1 wei == 1) */\n tag_36\n jumpi\n tag_37\n tag_25\n jump\t// in\n tag_37:\n tag_36:\n /* \"Ep4/example.sol\":372:375 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":362:368 1 gwei */\n dup1\n /* \"Ep4/example.sol\":362:375 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":355:376 assert(1 gwei == 1e9) */\n tag_38\n jumpi\n tag_39\n tag_25\n jump\t// in\n tag_39:\n tag_38:\n /* \"Ep4/example.sol\":449:453 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":438:445 1 ether */\n dup1\n /* \"Ep4/example.sol\":438:453 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":431:454 assert(1 ether == 1e18) */\n tag_40\n jumpi\n tag_41\n tag_25\n jump\t// in\n tag_41:\n tag_40:\n /* \"Ep4/example.sol\":153:462 {\r... */\n pop\n /* \"Ep4/example.sol\":113:462 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_43:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_45\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_46\n jump\t// in\n tag_45:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_48\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_49\n tag_50\n jump\t// in\n tag_49:\n /* \"#utility.yul\":245:364 */\n tag_48:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_51\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_43\n jump\t// in\n tag_51:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_52\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_43\n jump\t// in\n tag_52:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_53:\n /* \"#utility.yul\":713:734 */\n tag_55\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_56\n jump\t// in\n tag_55:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_58\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_53\n jump\t// in\n tag_58:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_62\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_63\n jump\t// in\n tag_62:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_64\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_63\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_65\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_66\n tag_67\n jump\t// in\n tag_66:\n /* \"#utility.yul\":1210:1317 */\n tag_65:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_69\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_63\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_70\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_63\n jump\t// in\n tag_70:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_71\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_72\n tag_67\n jump\t// in\n tag_72:\n /* \"#utility.yul\":1536:1667 */\n tag_71:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_56:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_63:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_67:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_50:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_46:\n /* \"#utility.yul\":2579:2603 */\n tag_81\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_63\n jump\t// in\n tag_81:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_82\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_82:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220919626de2f0643fe3c709b1a9d5578e6d5f983f55451ac8af6782813cefec4ed64736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "6080604052600560005534801561001557600080fd5b50610355806100256000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610175565b61008a565b60405161006d91906101c4565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e9190610235565b846100a991906101df565b42106100b457600190505b8091505092915050565b600180146100cf576100ce6102a5565b5b603c80146100e0576100df6102a5565b5b610e1080146100f2576100f16102a5565b5b620151808014610105576101046102a5565b5b62093a808014610118576101176102a5565b5b565b60006005905060018014610131576101306102a5565b5b633b9aca008014610145576101446102a5565b5b670de0b6b3a7640000801461015d5761015c6102a5565b5b50565b60008135905061016f81610308565b92915050565b6000806040838503121561018c5761018b610303565b5b600061019a85828601610160565b92505060206101ab85828601610160565b9150509250929050565b6101be8161028f565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60006101ea8261029b565b91506101f58361029b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561022a576102296102d4565b5b828201905092915050565b60006102408261029b565b915061024b8361029b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610284576102836102d4565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6103118161029b565b811461031c57600080fd5b5056fea2646970667358221220919626de2f0643fe3c709b1a9d5578e6d5f983f55451ac8af6782813cefec4ed64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x5 PUSH1 0x0 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 DUP1 PUSH2 0x25 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x235 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1DF JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SWAP1 POP PUSH1 0x1 DUP1 EQ PUSH2 0x131 JUMPI PUSH2 0x130 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x15D JUMPI PUSH2 0x15C PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F DUP2 PUSH2 0x308 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18C JUMPI PUSH2 0x18B PUSH2 0x303 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19A DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1AB DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BE DUP2 PUSH2 0x28F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x1F5 DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x22A JUMPI PUSH2 0x229 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x240 DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x24B DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x284 JUMPI PUSH2 0x283 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x311 DUP2 PUSH2 0x29B JUMP JUMPDEST DUP2 EQ PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP2 SWAP7 0x26 0xDE 0x2F MOD NUMBER INVALID EXTCODECOPY PUSH17 0x9B1A9D5578E6D5F983F55451AC8AF67828 SGT 0xCE INVALID 0xC4 0xED PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1242:0:-:0;;;103:1;86:18;;62:1242;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_35": { + "entryPoint": 282, + "id": 35, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_69": { + "entryPoint": 190, + "id": 69, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_99": { + "entryPoint": 138, + "id": 99, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 352, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 373, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 437, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 452, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 479, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 565, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 655, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 667, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 677, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 724, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 771, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 776, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610175565b61008a565b60405161006d91906101c4565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e9190610235565b846100a991906101df565b42106100b457600190505b8091505092915050565b600180146100cf576100ce6102a5565b5b603c80146100e0576100df6102a5565b5b610e1080146100f2576100f16102a5565b5b620151808014610105576101046102a5565b5b62093a808014610118576101176102a5565b5b565b60006005905060018014610131576101306102a5565b5b633b9aca008014610145576101446102a5565b5b670de0b6b3a7640000801461015d5761015c6102a5565b5b50565b60008135905061016f81610308565b92915050565b6000806040838503121561018c5761018b610303565b5b600061019a85828601610160565b92505060206101ab85828601610160565b9150509250929050565b6101be8161028f565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60006101ea8261029b565b91506101f58361029b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561022a576102296102d4565b5b828201905092915050565b60006102408261029b565b915061024b8361029b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610284576102836102d4565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6103118161029b565b811461031c57600080fd5b5056fea2646970667358221220919626de2f0643fe3c709b1a9d5578e6d5f983f55451ac8af6782813cefec4ed64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x235 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1DF JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SWAP1 POP PUSH1 0x1 DUP1 EQ PUSH2 0x131 JUMPI PUSH2 0x130 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x15D JUMPI PUSH2 0x15C PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F DUP2 PUSH2 0x308 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18C JUMPI PUSH2 0x18B PUSH2 0x303 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19A DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1AB DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BE DUP2 PUSH2 0x28F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x1F5 DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x22A JUMPI PUSH2 0x229 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x240 DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x24B DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x284 JUMPI PUSH2 0x283 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x311 DUP2 PUSH2 0x29B JUMP JUMPDEST DUP2 EQ PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP2 SWAP7 0x26 0xDE 0x2F MOD NUMBER INVALID EXTCODECOPY PUSH17 0x9B1A9D5578E6D5F983F55451AC8AF67828 SGT 0xCE INVALID 0xC4 0xED PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1242:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;847:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;470:369;;;:::i;:::-;;113:349;;;:::i;:::-;;847:454;916:4;933:16;952:5;933:24;;1199:9;1184:12;:24;;;;:::i;:::-;1176:5;:32;;;;:::i;:::-;1157:15;:51;1153:102;;1239:4;1225:18;;1153:102;1282:11;1275:18;;;847:454;;;;:::o;470:369::-;557:1;544:9;:14;537:22;;;;:::i;:::-;;620:10;607:9;:23;600:31;;;;:::i;:::-;;693:10;682:7;:21;675:29;;;;:::i;:::-;;760:8;750:6;:18;743:26;;;;:::i;:::-;;824:6;813:7;:17;806:25;;;;:::i;:::-;;470:369::o;113:349::-;164:6;173:1;164:10;;300:1;291:5;:10;284:18;;;;:::i;:::-;;372:3;362:6;:13;355:21;;;;:::i;:::-;;449:4;438:7;:15;431:23;;;;:::i;:::-;;153:309;113:349::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "170600", + "executionCost": "22320", + "totalCost": "192920" + }, + "external": { + "etherUnitExample()": "248", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1304, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 103, + "end": 104, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 86, + "end": 104, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 86, + "end": 104, + "name": "SSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1304, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1304, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1304, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1304, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1304, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1304, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220919626de2f0643fe3c709b1a9d5578e6d5f983f55451ac8af6782813cefec4ed64736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1304, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1304, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1304, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1304, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1304, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1304, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1304, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1304, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1304, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1304, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1304, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1304, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1304, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1304, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1304, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1304, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1304, + "name": "REVERT", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 847, + "end": 1301, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 847, + "end": 1301, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 847, + "end": 1301, + "name": "DUP1", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "SUB", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "DUP2", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "ADD", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 847, + "end": 1301, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 847, + "end": 1301, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 847, + "end": 1301, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 847, + "end": 1301, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 847, + "end": 1301, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 847, + "end": 1301, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 847, + "end": 1301, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 847, + "end": 1301, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 847, + "end": 1301, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 847, + "end": 1301, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 847, + "end": 1301, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 847, + "end": 1301, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 847, + "end": 1301, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "DUP1", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "SUB", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "RETURN", + "source": 0 + }, + { + "begin": 470, + "end": 839, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 470, + "end": 839, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 470, + "end": 839, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 470, + "end": 839, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 470, + "end": 839, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 470, + "end": 839, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 470, + "end": 839, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 470, + "end": 839, + "name": "STOP", + "source": 0 + }, + { + "begin": 113, + "end": 462, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 113, + "end": 462, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 113, + "end": 462, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 113, + "end": 462, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 113, + "end": 462, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 113, + "end": 462, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 113, + "end": 462, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 113, + "end": 462, + "name": "STOP", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 847, + "end": 1301, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 916, + "end": 920, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 933, + "end": 949, + "name": "DUP1", + "source": 0 + }, + { + "begin": 952, + "end": 957, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 933, + "end": 957, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 933, + "end": 957, + "name": "POP", + "source": 0 + }, + { + "begin": 1199, + "end": 1208, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1184, + "end": 1196, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1184, + "end": 1208, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1184, + "end": 1208, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1184, + "end": 1208, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1184, + "end": 1208, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1184, + "end": 1208, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1184, + "end": 1208, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1184, + "end": 1208, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1176, + "end": 1181, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1176, + "end": 1208, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1176, + "end": 1208, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1176, + "end": 1208, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1176, + "end": 1208, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1176, + "end": 1208, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1176, + "end": 1208, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1176, + "end": 1208, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1157, + "end": 1172, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1157, + "end": 1208, + "name": "LT", + "source": 0 + }, + { + "begin": 1153, + "end": 1255, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1153, + "end": 1255, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1239, + "end": 1243, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1225, + "end": 1243, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1225, + "end": 1243, + "name": "POP", + "source": 0 + }, + { + "begin": 1153, + "end": 1255, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1153, + "end": 1255, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1282, + "end": 1293, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1275, + "end": 1293, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1275, + "end": 1293, + "name": "POP", + "source": 0 + }, + { + "begin": 1275, + "end": 1293, + "name": "POP", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "POP", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "POP", + "source": 0 + }, + { + "begin": 847, + "end": 1301, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 470, + "end": 839, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 470, + "end": 839, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 557, + "end": 558, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 544, + "end": 553, + "name": "DUP1", + "source": 0 + }, + { + "begin": 544, + "end": 558, + "name": "EQ", + "source": 0 + }, + { + "begin": 537, + "end": 559, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 537, + "end": 559, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 537, + "end": 559, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 537, + "end": 559, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 537, + "end": 559, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 537, + "end": 559, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 537, + "end": 559, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 537, + "end": 559, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 537, + "end": 559, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 620, + "end": 630, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 607, + "end": 616, + "name": "DUP1", + "source": 0 + }, + { + "begin": 607, + "end": 630, + "name": "EQ", + "source": 0 + }, + { + "begin": 600, + "end": 631, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 600, + "end": 631, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 600, + "end": 631, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 600, + "end": 631, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 600, + "end": 631, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 600, + "end": 631, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 600, + "end": 631, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 600, + "end": 631, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 600, + "end": 631, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 693, + "end": 703, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 682, + "end": 689, + "name": "DUP1", + "source": 0 + }, + { + "begin": 682, + "end": 703, + "name": "EQ", + "source": 0 + }, + { + "begin": 675, + "end": 704, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 675, + "end": 704, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 675, + "end": 704, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 675, + "end": 704, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 675, + "end": 704, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 675, + "end": 704, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 675, + "end": 704, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 675, + "end": 704, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 675, + "end": 704, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 760, + "end": 768, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 750, + "end": 756, + "name": "DUP1", + "source": 0 + }, + { + "begin": 750, + "end": 768, + "name": "EQ", + "source": 0 + }, + { + "begin": 743, + "end": 769, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 743, + "end": 769, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 743, + "end": 769, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 743, + "end": 769, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 743, + "end": 769, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 743, + "end": 769, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 743, + "end": 769, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 743, + "end": 769, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 743, + "end": 769, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 824, + "end": 830, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 813, + "end": 820, + "name": "DUP1", + "source": 0 + }, + { + "begin": 813, + "end": 830, + "name": "EQ", + "source": 0 + }, + { + "begin": 806, + "end": 831, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 806, + "end": 831, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 806, + "end": 831, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 806, + "end": 831, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 806, + "end": 831, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 806, + "end": 831, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 806, + "end": 831, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 806, + "end": 831, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 806, + "end": 831, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 470, + "end": 839, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 113, + "end": 462, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 113, + "end": 462, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 164, + "end": 170, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 173, + "end": 174, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 164, + "end": 174, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 164, + "end": 174, + "name": "POP", + "source": 0 + }, + { + "begin": 300, + "end": 301, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 291, + "end": 296, + "name": "DUP1", + "source": 0 + }, + { + "begin": 291, + "end": 301, + "name": "EQ", + "source": 0 + }, + { + "begin": 284, + "end": 302, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 284, + "end": 302, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 284, + "end": 302, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 284, + "end": 302, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 284, + "end": 302, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 284, + "end": 302, + "name": "tag", + "source": 0, + "value": "37" + }, + { + "begin": 284, + "end": 302, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 284, + "end": 302, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 284, + "end": 302, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 372, + "end": 375, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 362, + "end": 368, + "name": "DUP1", + "source": 0 + }, + { + "begin": 362, + "end": 375, + "name": "EQ", + "source": 0 + }, + { + "begin": 355, + "end": 376, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 355, + "end": 376, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 355, + "end": 376, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 355, + "end": 376, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 355, + "end": 376, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 355, + "end": 376, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 355, + "end": 376, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 355, + "end": 376, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 355, + "end": 376, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 449, + "end": 453, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 438, + "end": 445, + "name": "DUP1", + "source": 0 + }, + { + "begin": 438, + "end": 453, + "name": "EQ", + "source": 0 + }, + { + "begin": 431, + "end": 454, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 431, + "end": 454, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 431, + "end": 454, + "name": "PUSH [tag]", + "source": 0, + "value": "41" + }, + { + "begin": 431, + "end": 454, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 431, + "end": 454, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 431, + "end": 454, + "name": "tag", + "source": 0, + "value": "41" + }, + { + "begin": 431, + "end": 454, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 431, + "end": 454, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 431, + "end": 454, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 153, + "end": 462, + "name": "POP", + "source": 0 + }, + { + "begin": 113, + "end": 462, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "56" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "58" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "70" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "70" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "72" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "56" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "67" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "82" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "82" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0x8edd1cf34e3a8565467d62b15ad57f462a845686aac55b65da7adb52c68783ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://134837b64e2de9577bca08575b98ef0e06d6aabfba18ca6e60d045227f6fa8ea\",\"dweb:/ipfs/QmSH7C2NvRTUd2LD71ZKrN1q81udhWJ91TKY8abFKxFtH7\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 4, + "contract": "Ep4/example.sol:Example", + "label": "p", + "offset": 0, + "slot": "0", + "type": "t_uint256" + } + ], + "types": { + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 100 + ] + }, + "id": 101, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 100, + "linearizedBaseContracts": [ + 100 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "p", + "nameLocation": "99:1:0", + "nodeType": "VariableDeclaration", + "scope": 100, + "src": "86:18:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "86:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "35", + "id": 3, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "103:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "visibility": "private" + }, + { + "body": { + "id": 34, + "nodeType": "Block", + "src": "153:309:0", + "statements": [ + { + "assignments": [ + 8 + ], + "declarations": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "a", + "nameLocation": "169:1:0", + "nodeType": "VariableDeclaration", + "scope": 34, + "src": "164:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "164:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 10, + "initialValue": { + "hexValue": "35", + "id": 9, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "173:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "nodeType": "VariableDeclarationStatement", + "src": "164:10:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "189:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "35", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "194:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "189:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15, + "nodeType": "IfStatement", + "src": "185:44:0", + "trueBody": { + "id": 14, + "nodeType": "Block", + "src": "197:32:0", + "statements": [] + } + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "291:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "300:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "291:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 16, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "284:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "284:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21, + "nodeType": "ExpressionStatement", + "src": "284:18:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 25, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "362:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "372:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "362:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 22, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "355:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 26, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "355:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27, + "nodeType": "ExpressionStatement", + "src": "355:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 31, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "438:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "449:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "438:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 28, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "431:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 32, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "431:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33, + "nodeType": "ExpressionStatement", + "src": "431:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 35, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "122:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [], + "src": "138:2:0" + }, + "returnParameters": { + "id": 6, + "nodeType": "ParameterList", + "parameters": [], + "src": "153:0:0" + }, + "scope": 100, + "src": "113:349:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 68, + "nodeType": "Block", + "src": "509:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "544:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "557:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "544:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "537:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "537:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "537:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "607:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "620:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "607:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 44, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "600:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "600:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 49, + "nodeType": "ExpressionStatement", + "src": "600:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "682:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "693:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "682:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 50, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "675:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "675:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "675:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 57, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "750:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 58, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "760:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "750:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 56, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "743:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "743:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 61, + "nodeType": "ExpressionStatement", + "src": "743:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 65, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "813:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 64, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "824:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "813:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 62, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "806:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 66, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "806:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 67, + "nodeType": "ExpressionStatement", + "src": "806:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 69, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "479:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 36, + "nodeType": "ParameterList", + "parameters": [], + "src": "494:2:0" + }, + "returnParameters": { + "id": 37, + "nodeType": "ParameterList", + "parameters": [], + "src": "509:0:0" + }, + "scope": 100, + "src": "470:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 98, + "nodeType": "Block", + "src": "922:379:0", + "statements": [ + { + "assignments": [ + 79 + ], + "declarations": [ + { + "constant": false, + "id": 79, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "938:11:0", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "933:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 78, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "933:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 81, + "initialValue": { + "hexValue": "66616c7365", + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "933:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 89, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 82, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1157:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1157:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 88, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 84, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "1176:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 87, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 85, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 73, + "src": "1184:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 86, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1199:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1184:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1176:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1157:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 95, + "nodeType": "IfStatement", + "src": "1153:102:0", + "trueBody": { + "id": 94, + "nodeType": "Block", + "src": "1210:45:0", + "statements": [ + { + "expression": { + "id": 92, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 90, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 79, + "src": "1225:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1239:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1225:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 93, + "nodeType": "ExpressionStatement", + "src": "1225:18:0" + } + ] + } + }, + { + "expression": { + "id": 96, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 79, + "src": "1282:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 77, + "id": 97, + "nodeType": "Return", + "src": "1275:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 99, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "856:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 74, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 71, + "mutability": "mutable", + "name": "start", + "nameLocation": "870:5:0", + "nodeType": "VariableDeclaration", + "scope": 99, + "src": "865:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 70, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "865:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 73, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "882:12:0", + "nodeType": "VariableDeclaration", + "scope": 99, + "src": "877:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 72, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "877:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "864:31:0" + }, + "returnParameters": { + "id": 77, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 76, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 99, + "src": "916:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 75, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "916:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "915:6:0" + }, + "scope": 100, + "src": "847:454:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 101, + "src": "62:1242:0", + "usedErrors": [] + } + ], + "src": "33:1271:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/9840c087314abb57f5706d95d56ae343.json b/Ep4/artifacts/build-info/9840c087314abb57f5706d95d56ae343.json new file mode 100644 index 0000000..627391f --- /dev/null +++ b/Ep4/artifacts/build-info/9840c087314abb57f5706d95d56ae343.json @@ -0,0 +1,5972 @@ +{ + "id": "9840c087314abb57f5706d95d56ae343", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n\r\n function EtherUnitExample() public pure {\r\n assert(1 wei == 1);\r\n }\r\n\r\n function TimeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\t\t// 區塊的時間戳記至少在3秒以前, 才算有效\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "EtherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "TimeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:883 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:883 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x822d0647\n eq\n tag_4\n jumpi\n dup1\n 0x9b92a9e8\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":550:880 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":88:165 function EtherUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":173:542 function TimeUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":550:880 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":619:623 bool */\n 0x00\n /* \"Ep4/example.sol\":636:652 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":655:660 false */\n 0x00\n /* \"Ep4/example.sol\":636:660 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":778:787 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":763:775 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":763:787 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":755:760 start */\n dup5\n /* \"Ep4/example.sol\":755:787 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":736:751 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":736:787 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":732:834 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":818:822 true */\n 0x01\n /* \"Ep4/example.sol\":804:822 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":732:834 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":861:872 isValidated */\n dup1\n /* \"Ep4/example.sol\":854:872 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":550:880 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":88:165 function EtherUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":155:156 1 */\n 0x01\n /* \"Ep4/example.sol\":146:151 1 wei */\n dup1\n /* \"Ep4/example.sol\":146:156 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":139:157 assert(1 wei == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":88:165 function EtherUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":173:542 function TimeUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":260:261 1 */\n 0x01\n /* \"Ep4/example.sol\":247:256 1 seconds */\n dup1\n /* \"Ep4/example.sol\":247:261 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":240:262 assert(1 seconds == 1) */\n tag_27\n jumpi\n tag_28\n tag_25\n jump\t// in\n tag_28:\n tag_27:\n /* \"Ep4/example.sol\":323:333 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":310:319 1 minutes */\n dup1\n /* \"Ep4/example.sol\":310:333 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":303:334 assert(1 minutes == 60 seconds) */\n tag_29\n jumpi\n tag_30\n tag_25\n jump\t// in\n tag_30:\n tag_29:\n /* \"Ep4/example.sol\":396:406 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":385:392 1 hours */\n dup1\n /* \"Ep4/example.sol\":385:406 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":378:407 assert(1 hours == 60 minutes) */\n tag_31\n jumpi\n tag_32\n tag_25\n jump\t// in\n tag_32:\n tag_31:\n /* \"Ep4/example.sol\":463:471 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":453:459 1 days */\n dup1\n /* \"Ep4/example.sol\":453:471 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":446:472 assert(1 days == 24 hours) */\n tag_33\n jumpi\n tag_34\n tag_25\n jump\t// in\n tag_34:\n tag_33:\n /* \"Ep4/example.sol\":527:533 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":516:523 1 weeks */\n dup1\n /* \"Ep4/example.sol\":516:533 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":509:534 assert(1 weeks == 7 days) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":173:542 function TimeUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_38:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_40\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_41\n jump\t// in\n tag_40:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_43\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_44\n tag_45\n jump\t// in\n tag_44:\n /* \"#utility.yul\":245:364 */\n tag_43:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_46\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_38\n jump\t// in\n tag_46:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_47\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_38\n jump\t// in\n tag_47:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_48:\n /* \"#utility.yul\":713:734 */\n tag_50\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_51\n jump\t// in\n tag_50:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_53\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_48\n jump\t// in\n tag_53:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_57\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_58\n jump\t// in\n tag_57:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_59\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_58\n jump\t// in\n tag_59:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_60\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_61\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1210:1317 */\n tag_60:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_64\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_58\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_65\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_58\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_66\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_67\n tag_62\n jump\t// in\n tag_67:\n /* \"#utility.yul\":1536:1667 */\n tag_66:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_51:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_58:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_62:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_45:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_41:\n /* \"#utility.yul\":2579:2603 */\n tag_76\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_58\n jump\t// in\n tag_76:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_77\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_77:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220b8e9b73581e19e1d104ca4ecf36bf6d5844191c05c1540221b170736625ebd4864736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610322806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b4414610046578063822d0647146100765780639b92a9e814610080575b600080fd5b610060600480360381019061005b9190610142565b61008a565b60405161006d9190610191565b60405180910390f35b61007e6100be565b005b6100886100d1565b005b6000806000905060038361009e9190610202565b846100a991906101ac565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610272565b5b565b600180146100e2576100e1610272565b5b603c80146100f3576100f2610272565b5b610e10801461010557610104610272565b5b62015180801461011857610117610272565b5b62093a80801461012b5761012a610272565b5b565b60008135905061013c816102d5565b92915050565b60008060408385031215610159576101586102d0565b5b60006101678582860161012d565b92505060206101788582860161012d565b9150509250929050565b61018b8161025c565b82525050565b60006020820190506101a66000830184610182565b92915050565b60006101b782610268565b91506101c283610268565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f7576101f66102a1565b5b828201905092915050565b600061020d82610268565b915061021883610268565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610251576102506102a1565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6102de81610268565b81146102e957600080fd5b5056fea2646970667358221220b8e9b73581e19e1d104ca4ecf36bf6d5844191c05c1540221b170736625ebd4864736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x322 DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x822D0647 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x9B92A9E8 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x142 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x191 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0xD1 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x202 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1AC JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xE2 JUMPI PUSH2 0xE1 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xF3 JUMPI PUSH2 0xF2 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13C DUP2 PUSH2 0x2D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x159 JUMPI PUSH2 0x158 PUSH2 0x2D0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x178 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x18B DUP2 PUSH2 0x25C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x182 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B7 DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C2 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F7 JUMPI PUSH2 0x1F6 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20D DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x218 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x251 JUMPI PUSH2 0x250 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DE DUP2 PUSH2 0x268 JUMP JUMPDEST DUP2 EQ PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 0xE9 0xB7 CALLDATALOAD DUP2 0xE1 SWAP15 SAR LT 0x4C LOG4 0xEC RETURN PUSH12 0xF6D5844191C05C1540221B17 SMOD CALLDATASIZE PUSH3 0x5EBD48 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:821:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@EtherUnitExample_11": { + "entryPoint": 190, + "id": 11, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@TimeUnitExample_45": { + "entryPoint": 209, + "id": 45, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_75": { + "entryPoint": 138, + "id": 75, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 301, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 322, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 386, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 401, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 428, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 514, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 604, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 616, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 626, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 673, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 720, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 725, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b4414610046578063822d0647146100765780639b92a9e814610080575b600080fd5b610060600480360381019061005b9190610142565b61008a565b60405161006d9190610191565b60405180910390f35b61007e6100be565b005b6100886100d1565b005b6000806000905060038361009e9190610202565b846100a991906101ac565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610272565b5b565b600180146100e2576100e1610272565b5b603c80146100f3576100f2610272565b5b610e10801461010557610104610272565b5b62015180801461011857610117610272565b5b62093a80801461012b5761012a610272565b5b565b60008135905061013c816102d5565b92915050565b60008060408385031215610159576101586102d0565b5b60006101678582860161012d565b92505060206101788582860161012d565b9150509250929050565b61018b8161025c565b82525050565b60006020820190506101a66000830184610182565b92915050565b60006101b782610268565b91506101c283610268565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f7576101f66102a1565b5b828201905092915050565b600061020d82610268565b915061021883610268565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610251576102506102a1565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6102de81610268565b81146102e957600080fd5b5056fea2646970667358221220b8e9b73581e19e1d104ca4ecf36bf6d5844191c05c1540221b170736625ebd4864736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x822D0647 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x9B92A9E8 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x142 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x191 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0xD1 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x202 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1AC JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xE2 JUMPI PUSH2 0xE1 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xF3 JUMPI PUSH2 0xF2 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13C DUP2 PUSH2 0x2D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x159 JUMPI PUSH2 0x158 PUSH2 0x2D0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x178 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x18B DUP2 PUSH2 0x25C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x182 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B7 DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C2 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F7 JUMPI PUSH2 0x1F6 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20D DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x218 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x251 JUMPI PUSH2 0x250 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DE DUP2 PUSH2 0x268 JUMP JUMPDEST DUP2 EQ PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 0xE9 0xB7 CALLDATALOAD DUP2 0xE1 SWAP15 SAR LT 0x4C LOG4 0xEC RETURN PUSH12 0xF6D5844191C05C1540221B17 SMOD CALLDATASIZE PUSH3 0x5EBD48 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:821:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;550:330;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;88:77;;;:::i;:::-;;173:369;;;:::i;:::-;;550:330;619:4;636:16;655:5;636:24;;778:9;763:12;:24;;;;:::i;:::-;755:5;:32;;;;:::i;:::-;736:15;:51;732:102;;818:4;804:18;;732:102;861:11;854:18;;;550:330;;;;:::o;88:77::-;155:1;146:5;:10;139:18;;;;:::i;:::-;;88:77::o;173:369::-;260:1;247:9;:14;240:22;;;;:::i;:::-;;323:10;310:9;:23;303:31;;;;:::i;:::-;;396:10;385:7;:21;378:29;;;;:::i;:::-;;463:8;453:6;:18;446:26;;;;:::i;:::-;;527:6;516:7;:17;509:25;;;;:::i;:::-;;173:369::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "160400", + "executionCost": "208", + "totalCost": "160608" + }, + "external": { + "EtherUnitExample()": "167", + "TimeUnitExample()": "281", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 883, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 883, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 883, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220b8e9b73581e19e1d104ca4ecf36bf6d5844191c05c1540221b170736625ebd4864736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 883, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 883, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 883, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 883, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 883, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "822D0647" + }, + { + "begin": 62, + "end": 883, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "9B92A9E8" + }, + { + "begin": 62, + "end": 883, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 883, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 883, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 883, + "name": "REVERT", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 550, + "end": 880, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 550, + "end": 880, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 550, + "end": 880, + "name": "DUP1", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SUB", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "DUP2", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "ADD", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 550, + "end": 880, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 550, + "end": 880, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 550, + "end": 880, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 550, + "end": 880, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 550, + "end": 880, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 550, + "end": 880, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 550, + "end": 880, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 550, + "end": 880, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 550, + "end": 880, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 550, + "end": 880, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 550, + "end": 880, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 550, + "end": 880, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 550, + "end": 880, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "DUP1", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SUB", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "RETURN", + "source": 0 + }, + { + "begin": 88, + "end": 165, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 88, + "end": 165, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 165, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 88, + "end": 165, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 88, + "end": 165, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 88, + "end": 165, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 88, + "end": 165, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 165, + "name": "STOP", + "source": 0 + }, + { + "begin": 173, + "end": 542, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 173, + "end": 542, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 173, + "end": 542, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 173, + "end": 542, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 173, + "end": 542, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 173, + "end": 542, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 173, + "end": 542, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 173, + "end": 542, + "name": "STOP", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 550, + "end": 880, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 619, + "end": 623, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 636, + "end": 652, + "name": "DUP1", + "source": 0 + }, + { + "begin": 655, + "end": 660, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 636, + "end": 660, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 636, + "end": 660, + "name": "POP", + "source": 0 + }, + { + "begin": 778, + "end": 787, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 763, + "end": 775, + "name": "DUP4", + "source": 0 + }, + { + "begin": 763, + "end": 787, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 763, + "end": 787, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 763, + "end": 787, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 763, + "end": 787, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 763, + "end": 787, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 763, + "end": 787, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 763, + "end": 787, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 755, + "end": 760, + "name": "DUP5", + "source": 0 + }, + { + "begin": 755, + "end": 787, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 755, + "end": 787, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 755, + "end": 787, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 755, + "end": 787, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 755, + "end": 787, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 755, + "end": 787, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 755, + "end": 787, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 736, + "end": 751, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 736, + "end": 787, + "name": "LT", + "source": 0 + }, + { + "begin": 732, + "end": 834, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 732, + "end": 834, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 818, + "end": 822, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 804, + "end": 822, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 804, + "end": 822, + "name": "POP", + "source": 0 + }, + { + "begin": 732, + "end": 834, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 732, + "end": 834, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 861, + "end": 872, + "name": "DUP1", + "source": 0 + }, + { + "begin": 854, + "end": 872, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 854, + "end": 872, + "name": "POP", + "source": 0 + }, + { + "begin": 854, + "end": 872, + "name": "POP", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "POP", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "POP", + "source": 0 + }, + { + "begin": 550, + "end": 880, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 88, + "end": 165, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 88, + "end": 165, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 155, + "end": 156, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 146, + "end": 151, + "name": "DUP1", + "source": 0 + }, + { + "begin": 146, + "end": 156, + "name": "EQ", + "source": 0 + }, + { + "begin": 139, + "end": 157, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 139, + "end": 157, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 139, + "end": 157, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 139, + "end": 157, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 139, + "end": 157, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 139, + "end": 157, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 139, + "end": 157, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 139, + "end": 157, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 139, + "end": 157, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 165, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 173, + "end": 542, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 173, + "end": 542, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 260, + "end": 261, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 247, + "end": 256, + "name": "DUP1", + "source": 0 + }, + { + "begin": 247, + "end": 261, + "name": "EQ", + "source": 0 + }, + { + "begin": 240, + "end": 262, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 240, + "end": 262, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 240, + "end": 262, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 240, + "end": 262, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 240, + "end": 262, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 240, + "end": 262, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 240, + "end": 262, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 240, + "end": 262, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 240, + "end": 262, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 323, + "end": 333, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 310, + "end": 319, + "name": "DUP1", + "source": 0 + }, + { + "begin": 310, + "end": 333, + "name": "EQ", + "source": 0 + }, + { + "begin": 303, + "end": 334, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 303, + "end": 334, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 303, + "end": 334, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 303, + "end": 334, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 303, + "end": 334, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 303, + "end": 334, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 303, + "end": 334, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 303, + "end": 334, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 303, + "end": 334, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 396, + "end": 406, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 385, + "end": 392, + "name": "DUP1", + "source": 0 + }, + { + "begin": 385, + "end": 406, + "name": "EQ", + "source": 0 + }, + { + "begin": 378, + "end": 407, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 378, + "end": 407, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 378, + "end": 407, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 378, + "end": 407, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 378, + "end": 407, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 378, + "end": 407, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 378, + "end": 407, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 378, + "end": 407, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 378, + "end": 407, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 463, + "end": 471, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 453, + "end": 459, + "name": "DUP1", + "source": 0 + }, + { + "begin": 453, + "end": 471, + "name": "EQ", + "source": 0 + }, + { + "begin": 446, + "end": 472, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 446, + "end": 472, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 446, + "end": 472, + "name": "PUSH [tag]", + "source": 0, + "value": "34" + }, + { + "begin": 446, + "end": 472, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 446, + "end": 472, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 446, + "end": 472, + "name": "tag", + "source": 0, + "value": "34" + }, + { + "begin": 446, + "end": 472, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 446, + "end": 472, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 446, + "end": 472, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 527, + "end": 533, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 516, + "end": 523, + "name": "DUP1", + "source": 0 + }, + { + "begin": 516, + "end": 533, + "name": "EQ", + "source": 0 + }, + { + "begin": 509, + "end": 534, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 509, + "end": 534, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 509, + "end": 534, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 509, + "end": 534, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 509, + "end": 534, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 509, + "end": 534, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 509, + "end": 534, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 509, + "end": 534, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 509, + "end": 534, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 173, + "end": 542, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "38" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "40" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "41" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "40" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "59" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "59" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "60" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "67" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "58" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "41" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "76" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "76" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "77" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "77" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "EtherUnitExample()": "822d0647", + "TimeUnitExample()": "9b92a9e8", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EtherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TimeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0x0789f914b23217913b71a57953aefeec4c07d519a2ca532c84dc42ffccf87a17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://10c20f1d3deeac7559d6cfa47440a5591f8ad89bb310ab6431523678ba8b2762\",\"dweb:/ipfs/QmVMDJ1YXbHo8jvEXeMYZBzPu36ehb4tuvoHfzoEHwFQqM\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 76 + ] + }, + "id": 77, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 76, + "linearizedBaseContracts": [ + 76 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 10, + "nodeType": "Block", + "src": "128:37:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "146:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "155:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "146:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "139:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "139:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "139:18:0" + } + ] + }, + "functionSelector": "822d0647", + "id": 11, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "EtherUnitExample", + "nameLocation": "97:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "128:0:0" + }, + "scope": 76, + "src": "88:77:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 44, + "nodeType": "Block", + "src": "212:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "247:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "260:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "247:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "240:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "240:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19, + "nodeType": "ExpressionStatement", + "src": "240:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "310:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "323:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "310:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 20, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "303:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "303:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25, + "nodeType": "ExpressionStatement", + "src": "303:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "385:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "396:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "385:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "378:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "378:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "378:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "453:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "463:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "453:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "446:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "446:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "446:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "516:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "527:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "516:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "509:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "509:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "509:25:0" + } + ] + }, + "functionSelector": "9b92a9e8", + "id": 45, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "TimeUnitExample", + "nameLocation": "182:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [], + "src": "197:2:0" + }, + "returnParameters": { + "id": 13, + "nodeType": "ParameterList", + "parameters": [], + "src": "212:0:0" + }, + "scope": 76, + "src": "173:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 74, + "nodeType": "Block", + "src": "625:255:0", + "statements": [ + { + "assignments": [ + 55 + ], + "declarations": [ + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "641:11:0", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "636:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 54, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "636:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 57, + "initialValue": { + "hexValue": "66616c7365", + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "655:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "636:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 65, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 58, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "736:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "736:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 64, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 60, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "755:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 61, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49, + "src": "763:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "778:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "763:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "755:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "736:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 71, + "nodeType": "IfStatement", + "src": "732:102:0", + "trueBody": { + "id": 70, + "nodeType": "Block", + "src": "789:45:0", + "statements": [ + { + "expression": { + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 66, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "804:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "818:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "804:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 69, + "nodeType": "ExpressionStatement", + "src": "804:18:0" + } + ] + } + }, + { + "expression": { + "id": 72, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "861:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 53, + "id": 73, + "nodeType": "Return", + "src": "854:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 75, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "559:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "start", + "nameLocation": "573:5:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "568:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 46, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "568:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "585:12:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "580:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 48, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "580:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "567:31:0" + }, + "returnParameters": { + "id": 53, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 52, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "619:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 51, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "619:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "618:6:0" + }, + "scope": 76, + "src": "550:330:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 77, + "src": "62:821:0", + "usedErrors": [] + } + ], + "src": "33:850:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/ab89075d9088cfbdc2dadf634eb6ce6e.json b/Ep4/artifacts/build-info/ab89075d9088cfbdc2dadf634eb6ce6e.json new file mode 100644 index 0000000..0a93222 --- /dev/null +++ b/Ep4/artifacts/build-info/ab89075d9088cfbdc2dadf634eb6ce6e.json @@ -0,0 +1,5972 @@ +{ + "id": "ab89075d9088cfbdc2dadf634eb6ce6e", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n\r\n function etherUnitExample() public pure {\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 1);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\t\t// 區塊的時間戳記至少在3秒以前, 才算有效\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:926 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:926 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":593:923 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":216:585 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":88:208 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":593:923 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":662:666 bool */\n 0x00\n /* \"Ep4/example.sol\":679:695 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":698:703 false */\n 0x00\n /* \"Ep4/example.sol\":679:703 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":821:830 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":806:818 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":806:830 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":798:803 start */\n dup5\n /* \"Ep4/example.sol\":798:830 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":779:794 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":779:830 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":775:877 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":861:865 true */\n 0x01\n /* \"Ep4/example.sol\":847:865 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":775:877 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":904:915 isValidated */\n dup1\n /* \"Ep4/example.sol\":897:915 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":593:923 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":216:585 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":303:304 1 */\n 0x01\n /* \"Ep4/example.sol\":290:299 1 seconds */\n dup1\n /* \"Ep4/example.sol\":290:304 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":283:305 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":366:376 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":353:362 1 minutes */\n dup1\n /* \"Ep4/example.sol\":353:376 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":346:377 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":439:449 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":428:435 1 hours */\n dup1\n /* \"Ep4/example.sol\":428:449 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":421:450 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":506:514 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":496:502 1 days */\n dup1\n /* \"Ep4/example.sol\":496:514 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":489:515 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":570:576 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":559:566 1 weeks */\n dup1\n /* \"Ep4/example.sol\":559:576 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":552:577 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":216:585 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":88:208 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":198:199 1 */\n 0x01\n /* \"Ep4/example.sol\":189:194 1 wei */\n dup1\n /* \"Ep4/example.sol\":189:199 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":182:200 assert(1 wei == 1) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":88:208 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_38:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_40\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_41\n jump\t// in\n tag_40:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_43\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_44\n tag_45\n jump\t// in\n tag_44:\n /* \"#utility.yul\":245:364 */\n tag_43:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_46\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_38\n jump\t// in\n tag_46:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_47\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_38\n jump\t// in\n tag_47:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_48:\n /* \"#utility.yul\":713:734 */\n tag_50\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_51\n jump\t// in\n tag_50:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_53\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_48\n jump\t// in\n tag_53:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_57\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_58\n jump\t// in\n tag_57:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_59\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_58\n jump\t// in\n tag_59:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_60\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_61\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1210:1317 */\n tag_60:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_64\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_58\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_65\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_58\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_66\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_67\n tag_62\n jump\t// in\n tag_67:\n /* \"#utility.yul\":1536:1667 */\n tag_66:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_51:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_58:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_62:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_45:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_41:\n /* \"#utility.yul\":2579:2603 */\n tag_76\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_58\n jump\t// in\n tag_76:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_77\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_77:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212200b40a2423b859ae372c611d33defecad1db2373436aa6a95c184119ec7c2a8e264736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610322806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610142565b61008a565b60405161006d9190610191565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e9190610202565b846100a991906101ac565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610272565b5b603c80146100e0576100df610272565b5b610e1080146100f2576100f1610272565b5b62015180801461010557610104610272565b5b62093a80801461011857610117610272565b5b565b6001801461012b5761012a610272565b5b565b60008135905061013c816102d5565b92915050565b60008060408385031215610159576101586102d0565b5b60006101678582860161012d565b92505060206101788582860161012d565b9150509250929050565b61018b8161025c565b82525050565b60006020820190506101a66000830184610182565b92915050565b60006101b782610268565b91506101c283610268565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f7576101f66102a1565b5b828201905092915050565b600061020d82610268565b915061021883610268565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610251576102506102a1565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6102de81610268565b81146102e957600080fd5b5056fea26469706673582212200b40a2423b859ae372c611d33defecad1db2373436aa6a95c184119ec7c2a8e264736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x322 DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x142 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x191 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x202 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1AC JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13C DUP2 PUSH2 0x2D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x159 JUMPI PUSH2 0x158 PUSH2 0x2D0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x178 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x18B DUP2 PUSH2 0x25C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x182 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B7 DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C2 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F7 JUMPI PUSH2 0x1F6 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20D DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x218 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x251 JUMPI PUSH2 0x250 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DE DUP2 PUSH2 0x268 JUMP JUMPDEST DUP2 EQ PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SIGNEXTEND BLOCKHASH LOG2 TIMESTAMP EXTCODESIZE DUP6 SWAP11 0xE3 PUSH19 0xC611D33DEFECAD1DB2373436AA6A95C184119E 0xC7 0xC2 0xA8 0xE2 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:864:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_11": { + "entryPoint": 282, + "id": 11, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_45": { + "entryPoint": 190, + "id": 45, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_75": { + "entryPoint": 138, + "id": 75, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 301, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 322, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 386, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 401, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 428, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 514, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 604, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 616, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 626, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 673, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 720, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 725, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610142565b61008a565b60405161006d9190610191565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e9190610202565b846100a991906101ac565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610272565b5b603c80146100e0576100df610272565b5b610e1080146100f2576100f1610272565b5b62015180801461010557610104610272565b5b62093a80801461011857610117610272565b5b565b6001801461012b5761012a610272565b5b565b60008135905061013c816102d5565b92915050565b60008060408385031215610159576101586102d0565b5b60006101678582860161012d565b92505060206101788582860161012d565b9150509250929050565b61018b8161025c565b82525050565b60006020820190506101a66000830184610182565b92915050565b60006101b782610268565b91506101c283610268565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f7576101f66102a1565b5b828201905092915050565b600061020d82610268565b915061021883610268565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610251576102506102a1565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6102de81610268565b81146102e957600080fd5b5056fea26469706673582212200b40a2423b859ae372c611d33defecad1db2373436aa6a95c184119ec7c2a8e264736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x142 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x191 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x202 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1AC JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13C DUP2 PUSH2 0x2D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x159 JUMPI PUSH2 0x158 PUSH2 0x2D0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x178 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x18B DUP2 PUSH2 0x25C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x182 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B7 DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C2 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F7 JUMPI PUSH2 0x1F6 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20D DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x218 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x251 JUMPI PUSH2 0x250 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DE DUP2 PUSH2 0x268 JUMP JUMPDEST DUP2 EQ PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SIGNEXTEND BLOCKHASH LOG2 TIMESTAMP EXTCODESIZE DUP6 SWAP11 0xE3 PUSH19 0xC611D33DEFECAD1DB2373436AA6A95C184119E 0xC7 0xC2 0xA8 0xE2 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:864:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;593:330;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;216:369;;;:::i;:::-;;88:120;;;:::i;:::-;;593:330;662:4;679:16;698:5;679:24;;821:9;806:12;:24;;;;:::i;:::-;798:5;:32;;;;:::i;:::-;779:15;:51;775:102;;861:4;847:18;;775:102;904:11;897:18;;;593:330;;;;:::o;216:369::-;303:1;290:9;:14;283:22;;;;:::i;:::-;;366:10;353:9;:23;346:31;;;;:::i;:::-;;439:10;428:7;:21;421:29;;;;:::i;:::-;;506:8;496:6;:18;489:26;;;;:::i;:::-;;570:6;559:7;:17;552:25;;;;:::i;:::-;;216:369::o;88:120::-;198:1;189:5;:10;182:18;;;;:::i;:::-;;88:120::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "160400", + "executionCost": "208", + "totalCost": "160608" + }, + "external": { + "etherUnitExample()": "189", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 926, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 926, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 926, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 926, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 926, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 926, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 926, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a26469706673582212200b40a2423b859ae372c611d33defecad1db2373436aa6a95c184119ec7c2a8e264736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 926, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 926, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 926, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 926, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 926, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 926, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 926, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 926, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 926, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 926, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 926, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 926, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 926, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 926, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 926, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 926, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 926, + "name": "REVERT", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 593, + "end": 923, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 593, + "end": 923, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 593, + "end": 923, + "name": "DUP1", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "SUB", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "DUP2", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "ADD", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 593, + "end": 923, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 593, + "end": 923, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 593, + "end": 923, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 593, + "end": 923, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 593, + "end": 923, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 593, + "end": 923, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 593, + "end": 923, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 593, + "end": 923, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 593, + "end": 923, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 593, + "end": 923, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 593, + "end": 923, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 593, + "end": 923, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 593, + "end": 923, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "DUP1", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "SUB", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "RETURN", + "source": 0 + }, + { + "begin": 216, + "end": 585, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 216, + "end": 585, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 216, + "end": 585, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 216, + "end": 585, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 216, + "end": 585, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 216, + "end": 585, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 216, + "end": 585, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 216, + "end": 585, + "name": "STOP", + "source": 0 + }, + { + "begin": 88, + "end": 208, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 88, + "end": 208, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 208, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 208, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 208, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 88, + "end": 208, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 208, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 208, + "name": "STOP", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 593, + "end": 923, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 662, + "end": 666, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 679, + "end": 695, + "name": "DUP1", + "source": 0 + }, + { + "begin": 698, + "end": 703, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 679, + "end": 703, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 679, + "end": 703, + "name": "POP", + "source": 0 + }, + { + "begin": 821, + "end": 830, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 806, + "end": 818, + "name": "DUP4", + "source": 0 + }, + { + "begin": 806, + "end": 830, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 806, + "end": 830, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 806, + "end": 830, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 806, + "end": 830, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 806, + "end": 830, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 806, + "end": 830, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 806, + "end": 830, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 798, + "end": 803, + "name": "DUP5", + "source": 0 + }, + { + "begin": 798, + "end": 830, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 798, + "end": 830, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 798, + "end": 830, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 798, + "end": 830, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 798, + "end": 830, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 798, + "end": 830, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 798, + "end": 830, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 779, + "end": 794, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 779, + "end": 830, + "name": "LT", + "source": 0 + }, + { + "begin": 775, + "end": 877, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 775, + "end": 877, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 861, + "end": 865, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 847, + "end": 865, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 847, + "end": 865, + "name": "POP", + "source": 0 + }, + { + "begin": 775, + "end": 877, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 775, + "end": 877, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 904, + "end": 915, + "name": "DUP1", + "source": 0 + }, + { + "begin": 897, + "end": 915, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 897, + "end": 915, + "name": "POP", + "source": 0 + }, + { + "begin": 897, + "end": 915, + "name": "POP", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "POP", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "POP", + "source": 0 + }, + { + "begin": 593, + "end": 923, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 216, + "end": 585, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 216, + "end": 585, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 303, + "end": 304, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 290, + "end": 299, + "name": "DUP1", + "source": 0 + }, + { + "begin": 290, + "end": 304, + "name": "EQ", + "source": 0 + }, + { + "begin": 283, + "end": 305, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 283, + "end": 305, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 283, + "end": 305, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 283, + "end": 305, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 283, + "end": 305, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 283, + "end": 305, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 283, + "end": 305, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 283, + "end": 305, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 283, + "end": 305, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 366, + "end": 376, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 353, + "end": 362, + "name": "DUP1", + "source": 0 + }, + { + "begin": 353, + "end": 376, + "name": "EQ", + "source": 0 + }, + { + "begin": 346, + "end": 377, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 346, + "end": 377, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 346, + "end": 377, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 346, + "end": 377, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 346, + "end": 377, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 346, + "end": 377, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 346, + "end": 377, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 346, + "end": 377, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 346, + "end": 377, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 439, + "end": 449, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 428, + "end": 435, + "name": "DUP1", + "source": 0 + }, + { + "begin": 428, + "end": 449, + "name": "EQ", + "source": 0 + }, + { + "begin": 421, + "end": 450, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 421, + "end": 450, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 421, + "end": 450, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 421, + "end": 450, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 421, + "end": 450, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 421, + "end": 450, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 421, + "end": 450, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 421, + "end": 450, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 421, + "end": 450, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 506, + "end": 514, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 496, + "end": 502, + "name": "DUP1", + "source": 0 + }, + { + "begin": 496, + "end": 514, + "name": "EQ", + "source": 0 + }, + { + "begin": 489, + "end": 515, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 489, + "end": 515, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 489, + "end": 515, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 489, + "end": 515, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 489, + "end": 515, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 489, + "end": 515, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 489, + "end": 515, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 489, + "end": 515, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 489, + "end": 515, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 570, + "end": 576, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 559, + "end": 566, + "name": "DUP1", + "source": 0 + }, + { + "begin": 559, + "end": 576, + "name": "EQ", + "source": 0 + }, + { + "begin": 552, + "end": 577, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 552, + "end": 577, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 552, + "end": 577, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 552, + "end": 577, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 552, + "end": 577, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 552, + "end": 577, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 552, + "end": 577, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 552, + "end": 577, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 552, + "end": 577, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 216, + "end": 585, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 88, + "end": 208, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 208, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 198, + "end": 199, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 189, + "end": 194, + "name": "DUP1", + "source": 0 + }, + { + "begin": 189, + "end": 199, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 182, + "end": 200, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 208, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "38" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "40" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "41" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "40" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "59" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "59" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "60" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "67" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "58" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "41" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "76" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "76" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "77" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "77" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0x041b652f1b3fefede7a0fc51ae643c591012346cf206af520cb382a20c061aa3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d7dc6ea08ee58513f20b83e66e91b8f724a37887d593741bffedaa6b0f8cf56\",\"dweb:/ipfs/QmY59AWb8XbLDfJaWCVfbowZYGSyXgh7oMVgjGiEHbvWhh\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 76 + ] + }, + "id": 77, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 76, + "linearizedBaseContracts": [ + 76 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 10, + "nodeType": "Block", + "src": "128:80:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "189:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "198:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "189:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "182:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "182:18:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 11, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "97:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "128:0:0" + }, + "scope": 76, + "src": "88:120:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 44, + "nodeType": "Block", + "src": "255:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "290:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "303:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "290:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "283:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "283:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19, + "nodeType": "ExpressionStatement", + "src": "283:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "353:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "366:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "353:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 20, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "346:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "346:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25, + "nodeType": "ExpressionStatement", + "src": "346:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "428:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "439:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "428:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "421:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "421:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "421:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "496:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "506:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "496:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "489:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "489:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "489:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "559:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "570:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "559:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "552:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "552:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "552:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 45, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "225:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [], + "src": "240:2:0" + }, + "returnParameters": { + "id": 13, + "nodeType": "ParameterList", + "parameters": [], + "src": "255:0:0" + }, + "scope": 76, + "src": "216:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 74, + "nodeType": "Block", + "src": "668:255:0", + "statements": [ + { + "assignments": [ + 55 + ], + "declarations": [ + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "684:11:0", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "679:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 54, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "679:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 57, + "initialValue": { + "hexValue": "66616c7365", + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "698:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "679:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 65, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 58, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "779:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "779:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 64, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 60, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "798:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 61, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49, + "src": "806:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "821:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "806:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "798:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "779:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 71, + "nodeType": "IfStatement", + "src": "775:102:0", + "trueBody": { + "id": 70, + "nodeType": "Block", + "src": "832:45:0", + "statements": [ + { + "expression": { + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 66, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "847:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "861:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "847:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 69, + "nodeType": "ExpressionStatement", + "src": "847:18:0" + } + ] + } + }, + { + "expression": { + "id": 72, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "904:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 53, + "id": 73, + "nodeType": "Return", + "src": "897:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 75, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "602:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "start", + "nameLocation": "616:5:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "611:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 46, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "611:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "628:12:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "623:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 48, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "623:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "610:31:0" + }, + "returnParameters": { + "id": 53, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 52, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "662:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 51, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "662:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "661:6:0" + }, + "scope": 76, + "src": "593:330:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 77, + "src": "62:864:0", + "usedErrors": [] + } + ], + "src": "33:893:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/bf2123600b4a14ffe9f29818eaf23208.json b/Ep4/artifacts/build-info/bf2123600b4a14ffe9f29818eaf23208.json new file mode 100644 index 0000000..d581d38 --- /dev/null +++ b/Ep4/artifacts/build-info/bf2123600b4a14ffe9f29818eaf23208.json @@ -0,0 +1,6314 @@ +{ + "id": "bf2123600b4a14ffe9f29818eaf23208", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n\r\n function etherUnitExample() public pure {\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 1);\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\t\t// 區塊的時間戳記至少在3秒以前, 才算有效\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1078 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1078 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":745:1075 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":88:360 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":745:1075 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":814:818 bool */\n 0x00\n /* \"Ep4/example.sol\":831:847 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":850:855 false */\n 0x00\n /* \"Ep4/example.sol\":831:855 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":973:982 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":958:970 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":958:982 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":950:955 start */\n dup5\n /* \"Ep4/example.sol\":950:982 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":931:946 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":931:982 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":927:1029 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1013:1017 true */\n 0x01\n /* \"Ep4/example.sol\":999:1017 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":927:1029 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1056:1067 isValidated */\n dup1\n /* \"Ep4/example.sol\":1049:1067 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":745:1075 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":455:456 1 */\n 0x01\n /* \"Ep4/example.sol\":442:451 1 seconds */\n dup1\n /* \"Ep4/example.sol\":442:456 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":435:457 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":518:528 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":505:514 1 minutes */\n dup1\n /* \"Ep4/example.sol\":505:528 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":498:529 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":591:601 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":580:587 1 hours */\n dup1\n /* \"Ep4/example.sol\":580:601 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":573:602 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":658:666 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":648:654 1 days */\n dup1\n /* \"Ep4/example.sol\":648:666 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":641:667 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":722:728 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":711:718 1 weeks */\n dup1\n /* \"Ep4/example.sol\":711:728 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":704:729 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":88:360 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":198:199 1 */\n 0x01\n /* \"Ep4/example.sol\":189:194 1 wei */\n dup1\n /* \"Ep4/example.sol\":189:199 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":182:200 assert(1 wei == 1) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":270:273 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":260:266 1 gwei */\n dup1\n /* \"Ep4/example.sol\":260:273 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":253:274 assert(1 gwei == 1e9) */\n tag_37\n jumpi\n tag_38\n tag_25\n jump\t// in\n tag_38:\n tag_37:\n /* \"Ep4/example.sol\":347:351 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":336:343 1 ether */\n dup1\n /* \"Ep4/example.sol\":336:351 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":329:352 assert(1 ether == 1e18) */\n tag_39\n jumpi\n tag_40\n tag_25\n jump\t// in\n tag_40:\n tag_39:\n /* \"Ep4/example.sol\":88:360 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_42:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_44\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_45\n jump\t// in\n tag_44:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_47\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_48\n tag_49\n jump\t// in\n tag_48:\n /* \"#utility.yul\":245:364 */\n tag_47:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_50\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_42\n jump\t// in\n tag_50:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_51\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_42\n jump\t// in\n tag_51:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_52:\n /* \"#utility.yul\":713:734 */\n tag_54\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_55\n jump\t// in\n tag_54:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_57\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_52\n jump\t// in\n tag_57:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_61\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_63\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_62\n jump\t// in\n tag_63:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_64\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_65\n tag_66\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1210:1317 */\n tag_64:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_68\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_62\n jump\t// in\n tag_68:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_69\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_62\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_70\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_71\n tag_66\n jump\t// in\n tag_71:\n /* \"#utility.yul\":1536:1667 */\n tag_70:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_55:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_62:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_66:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_49:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_45:\n /* \"#utility.yul\":2579:2603 */\n tag_80\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_62\n jump\t// in\n tag_80:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_81\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_81:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa264697066735822122031e7d79032f1a32ef076e7cadc866f1ee275ca3067f73d03db9b7a7c9bd34a0864736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5061034e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061016e565b61008a565b60405161006d91906101bd565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061022e565b846100a991906101d8565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61029e565b5b603c80146100e0576100df61029e565b5b610e1080146100f2576100f161029e565b5b6201518080146101055761010461029e565b5b62093a8080146101185761011761029e565b5b565b6001801461012b5761012a61029e565b5b633b9aca00801461013f5761013e61029e565b5b670de0b6b3a764000080146101575761015661029e565b5b565b60008135905061016881610301565b92915050565b60008060408385031215610185576101846102fc565b5b600061019385828601610159565b92505060206101a485828601610159565b9150509250929050565b6101b781610288565b82525050565b60006020820190506101d260008301846101ae565b92915050565b60006101e382610294565b91506101ee83610294565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610223576102226102cd565b5b828201905092915050565b600061023982610294565b915061024483610294565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561027d5761027c6102cd565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61030a81610294565b811461031557600080fd5b5056fea264697066735822122031e7d79032f1a32ef076e7cadc866f1ee275ca3067f73d03db9b7a7c9bd34a0864736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34E DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x16E JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x22E JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1D8 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x13F JUMPI PUSH2 0x13E PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x157 JUMPI PUSH2 0x156 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x168 DUP2 PUSH2 0x301 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x185 JUMPI PUSH2 0x184 PUSH2 0x2FC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x193 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A4 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B7 DUP2 PUSH2 0x288 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E3 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EE DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x223 JUMPI PUSH2 0x222 PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x239 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x244 DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x27D JUMPI PUSH2 0x27C PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30A DUP2 PUSH2 0x294 JUMP JUMPDEST DUP2 EQ PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BALANCE 0xE7 0xD7 SWAP1 ORIGIN CALL LOG3 0x2E CREATE PUSH23 0xE7CADC866F1EE275CA3067F73D03DB9B7A7C9BD34A0864 PUSH20 0x6F6C634300080700330000000000000000000000 ", + "sourceMap": "62:1016:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_23": { + "entryPoint": 282, + "id": 23, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_57": { + "entryPoint": 190, + "id": 57, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_87": { + "entryPoint": 138, + "id": 87, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 345, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 366, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 430, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 445, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 472, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 558, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 648, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 660, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 670, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 717, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 764, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 769, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061016e565b61008a565b60405161006d91906101bd565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061022e565b846100a991906101d8565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61029e565b5b603c80146100e0576100df61029e565b5b610e1080146100f2576100f161029e565b5b6201518080146101055761010461029e565b5b62093a8080146101185761011761029e565b5b565b6001801461012b5761012a61029e565b5b633b9aca00801461013f5761013e61029e565b5b670de0b6b3a764000080146101575761015661029e565b5b565b60008135905061016881610301565b92915050565b60008060408385031215610185576101846102fc565b5b600061019385828601610159565b92505060206101a485828601610159565b9150509250929050565b6101b781610288565b82525050565b60006020820190506101d260008301846101ae565b92915050565b60006101e382610294565b91506101ee83610294565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610223576102226102cd565b5b828201905092915050565b600061023982610294565b915061024483610294565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561027d5761027c6102cd565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61030a81610294565b811461031557600080fd5b5056fea264697066735822122031e7d79032f1a32ef076e7cadc866f1ee275ca3067f73d03db9b7a7c9bd34a0864736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x16E JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x22E JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1D8 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x13F JUMPI PUSH2 0x13E PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x157 JUMPI PUSH2 0x156 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x168 DUP2 PUSH2 0x301 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x185 JUMPI PUSH2 0x184 PUSH2 0x2FC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x193 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A4 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B7 DUP2 PUSH2 0x288 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E3 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EE DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x223 JUMPI PUSH2 0x222 PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x239 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x244 DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x27D JUMPI PUSH2 0x27C PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30A DUP2 PUSH2 0x294 JUMP JUMPDEST DUP2 EQ PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BALANCE 0xE7 0xD7 SWAP1 ORIGIN CALL LOG3 0x2E CREATE PUSH23 0xE7CADC866F1EE275CA3067F73D03DB9B7A7C9BD34A0864 PUSH20 0x6F6C634300080700330000000000000000000000 ", + "sourceMap": "62:1016:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;745:330;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;368:369;;;:::i;:::-;;88:272;;;:::i;:::-;;745:330;814:4;831:16;850:5;831:24;;973:9;958:12;:24;;;;:::i;:::-;950:5;:32;;;;:::i;:::-;931:15;:51;927:102;;1013:4;999:18;;927:102;1056:11;1049:18;;;745:330;;;;:::o;368:369::-;455:1;442:9;:14;435:22;;;;:::i;:::-;;518:10;505:9;:23;498:31;;;;:::i;:::-;;591:10;580:7;:21;573:29;;;;:::i;:::-;;658:8;648:6;:18;641:26;;;;:::i;:::-;;722:6;711:7;:17;704:25;;;;:::i;:::-;;368:369::o;88:272::-;198:1;189:5;:10;182:18;;;;:::i;:::-;;270:3;260:6;:13;253:21;;;;:::i;:::-;;347:4;336:7;:15;329:23;;;;:::i;:::-;;88:272::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "169200", + "executionCost": "214", + "totalCost": "169414" + }, + "external": { + "etherUnitExample()": "235", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1078, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1078, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1078, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1078, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1078, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1078, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1078, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a264697066735822122031e7d79032f1a32ef076e7cadc866f1ee275ca3067f73d03db9b7a7c9bd34a0864736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1078, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1078, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1078, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1078, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1078, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1078, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1078, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1078, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1078, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1078, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1078, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1078, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1078, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1078, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1078, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1078, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1078, + "name": "REVERT", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 745, + "end": 1075, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 745, + "end": 1075, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 745, + "end": 1075, + "name": "DUP1", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "SUB", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "DUP2", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "ADD", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 745, + "end": 1075, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 745, + "end": 1075, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1075, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 745, + "end": 1075, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 745, + "end": 1075, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1075, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 745, + "end": 1075, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 745, + "end": 1075, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 745, + "end": 1075, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 745, + "end": 1075, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1075, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 745, + "end": 1075, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 745, + "end": 1075, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "DUP1", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "SUB", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "RETURN", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 368, + "end": 737, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 368, + "end": 737, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "STOP", + "source": 0 + }, + { + "begin": 88, + "end": 360, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 88, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 360, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 360, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 360, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 88, + "end": 360, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 360, + "name": "STOP", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 745, + "end": 1075, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 814, + "end": 818, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 831, + "end": 847, + "name": "DUP1", + "source": 0 + }, + { + "begin": 850, + "end": 855, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 831, + "end": 855, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 831, + "end": 855, + "name": "POP", + "source": 0 + }, + { + "begin": 973, + "end": 982, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 958, + "end": 970, + "name": "DUP4", + "source": 0 + }, + { + "begin": 958, + "end": 982, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 958, + "end": 982, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 958, + "end": 982, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 958, + "end": 982, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 958, + "end": 982, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 958, + "end": 982, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 958, + "end": 982, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 950, + "end": 955, + "name": "DUP5", + "source": 0 + }, + { + "begin": 950, + "end": 982, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 950, + "end": 982, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 950, + "end": 982, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 950, + "end": 982, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 950, + "end": 982, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 950, + "end": 982, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 950, + "end": 982, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 931, + "end": 946, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 931, + "end": 982, + "name": "LT", + "source": 0 + }, + { + "begin": 927, + "end": 1029, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 927, + "end": 1029, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1013, + "end": 1017, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 999, + "end": 1017, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 999, + "end": 1017, + "name": "POP", + "source": 0 + }, + { + "begin": 927, + "end": 1029, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 927, + "end": 1029, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1056, + "end": 1067, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1049, + "end": 1067, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1049, + "end": 1067, + "name": "POP", + "source": 0 + }, + { + "begin": 1049, + "end": 1067, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1075, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 455, + "end": 456, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 442, + "end": 451, + "name": "DUP1", + "source": 0 + }, + { + "begin": 442, + "end": 456, + "name": "EQ", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 435, + "end": 457, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 435, + "end": 457, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 518, + "end": 528, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 505, + "end": 514, + "name": "DUP1", + "source": 0 + }, + { + "begin": 505, + "end": 528, + "name": "EQ", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 498, + "end": 529, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 498, + "end": 529, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 591, + "end": 601, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 580, + "end": 587, + "name": "DUP1", + "source": 0 + }, + { + "begin": 580, + "end": 601, + "name": "EQ", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 573, + "end": 602, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 573, + "end": 602, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 658, + "end": 666, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 648, + "end": 654, + "name": "DUP1", + "source": 0 + }, + { + "begin": 648, + "end": 666, + "name": "EQ", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 641, + "end": 667, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 641, + "end": 667, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 722, + "end": 728, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 711, + "end": 718, + "name": "DUP1", + "source": 0 + }, + { + "begin": 711, + "end": 728, + "name": "EQ", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 704, + "end": 729, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 704, + "end": 729, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 88, + "end": 360, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 198, + "end": 199, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 189, + "end": 194, + "name": "DUP1", + "source": 0 + }, + { + "begin": 189, + "end": 199, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 182, + "end": 200, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 270, + "end": 273, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 260, + "end": 266, + "name": "DUP1", + "source": 0 + }, + { + "begin": 260, + "end": 273, + "name": "EQ", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 253, + "end": 274, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 253, + "end": 274, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "tag", + "source": 0, + "value": "37" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 347, + "end": 351, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 336, + "end": 343, + "name": "DUP1", + "source": 0 + }, + { + "begin": 336, + "end": 351, + "name": "EQ", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 329, + "end": 352, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 329, + "end": 352, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 360, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "42" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "54" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "54" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "68" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "68" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "80" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "80" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0x321705de4300967b8fd8ea80bcc5690541dab70b0b7ce4e5ce9cc7122e39dda6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35a9310ce31ca3e030bebc2321c925dc2f4f480de1014f7cb1569d95ba50c4fb\",\"dweb:/ipfs/QmNj14EPjK3wtPDaLtpBAgZQqbJNMGoe4bNwbVB7KfWNtx\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 88 + ] + }, + "id": 89, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 88, + "linearizedBaseContracts": [ + 88 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 22, + "nodeType": "Block", + "src": "128:232:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "189:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "198:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "189:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "182:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "182:18:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "260:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "270:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "260:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "253:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "253:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15, + "nodeType": "ExpressionStatement", + "src": "253:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "336:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "347:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "336:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 16, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "329:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "329:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21, + "nodeType": "ExpressionStatement", + "src": "329:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 23, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "97:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "128:0:0" + }, + "scope": 88, + "src": "88:272:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 56, + "nodeType": "Block", + "src": "407:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "442:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "455:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "442:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "435:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "435:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "435:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "505:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "518:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "505:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "498:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "498:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "498:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "580:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "591:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "580:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "573:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "573:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "573:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "648:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "658:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "648:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 44, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "641:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 49, + "nodeType": "ExpressionStatement", + "src": "641:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "711:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "722:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "711:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 50, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "704:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "704:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "704:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 57, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "377:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 24, + "nodeType": "ParameterList", + "parameters": [], + "src": "392:2:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "407:0:0" + }, + "scope": 88, + "src": "368:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 86, + "nodeType": "Block", + "src": "820:255:0", + "statements": [ + { + "assignments": [ + 67 + ], + "declarations": [ + { + "constant": false, + "id": 67, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "836:11:0", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "831:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 66, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "831:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 69, + "initialValue": { + "hexValue": "66616c7365", + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "850:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "831:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 70, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "931:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "931:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 72, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "950:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 73, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "958:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "973:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "958:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "950:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "931:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 83, + "nodeType": "IfStatement", + "src": "927:102:0", + "trueBody": { + "id": 82, + "nodeType": "Block", + "src": "984:45:0", + "statements": [ + { + "expression": { + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 78, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "999:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1013:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "999:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 81, + "nodeType": "ExpressionStatement", + "src": "999:18:0" + } + ] + } + }, + { + "expression": { + "id": 84, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1056:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 65, + "id": 85, + "nodeType": "Return", + "src": "1049:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 87, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "754:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "start", + "nameLocation": "768:5:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "763:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 58, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "763:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "780:12:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "775:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 60, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "775:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "762:31:0" + }, + "returnParameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "814:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 63, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "814:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "813:6:0" + }, + "scope": 88, + "src": "745:330:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 89, + "src": "62:1016:0", + "usedErrors": [] + } + ], + "src": "33:1045:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/c5fd16c562fa39a1241f0fda61ec16f2.json b/Ep4/artifacts/build-info/c5fd16c562fa39a1241f0fda61ec16f2.json new file mode 100644 index 0000000..5223d4d --- /dev/null +++ b/Ep4/artifacts/build-info/c5fd16c562fa39a1241f0fda61ec16f2.json @@ -0,0 +1,5971 @@ +{ + "id": "c5fd16c562fa39a1241f0fda61ec16f2", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7;\r\n\r\ncontract Example {\r\n\r\n function EtherUnitExample() public pure {\r\n assert(1 wei == 1);\r\n }\r\n\r\n function TimeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\t\t// 區塊的時間戳記至少在3秒以前, 才算有效\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "EtherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "TimeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":60:881 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":60:881 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x822d0647\n eq\n tag_4\n jumpi\n dup1\n 0x9b92a9e8\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":548:878 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":86:163 function EtherUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":171:540 function TimeUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":548:878 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":617:621 bool */\n 0x00\n /* \"Ep4/example.sol\":634:650 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":653:658 false */\n 0x00\n /* \"Ep4/example.sol\":634:658 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":776:785 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":761:773 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":761:785 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":753:758 start */\n dup5\n /* \"Ep4/example.sol\":753:785 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":734:749 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":734:785 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":730:832 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":816:820 true */\n 0x01\n /* \"Ep4/example.sol\":802:820 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":730:832 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":859:870 isValidated */\n dup1\n /* \"Ep4/example.sol\":852:870 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":548:878 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":86:163 function EtherUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":153:154 1 */\n 0x01\n /* \"Ep4/example.sol\":144:149 1 wei */\n dup1\n /* \"Ep4/example.sol\":144:154 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":137:155 assert(1 wei == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":86:163 function EtherUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":171:540 function TimeUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":258:259 1 */\n 0x01\n /* \"Ep4/example.sol\":245:254 1 seconds */\n dup1\n /* \"Ep4/example.sol\":245:259 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":238:260 assert(1 seconds == 1) */\n tag_27\n jumpi\n tag_28\n tag_25\n jump\t// in\n tag_28:\n tag_27:\n /* \"Ep4/example.sol\":321:331 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":308:317 1 minutes */\n dup1\n /* \"Ep4/example.sol\":308:331 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":301:332 assert(1 minutes == 60 seconds) */\n tag_29\n jumpi\n tag_30\n tag_25\n jump\t// in\n tag_30:\n tag_29:\n /* \"Ep4/example.sol\":394:404 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":383:390 1 hours */\n dup1\n /* \"Ep4/example.sol\":383:404 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":376:405 assert(1 hours == 60 minutes) */\n tag_31\n jumpi\n tag_32\n tag_25\n jump\t// in\n tag_32:\n tag_31:\n /* \"Ep4/example.sol\":461:469 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":451:457 1 days */\n dup1\n /* \"Ep4/example.sol\":451:469 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":444:470 assert(1 days == 24 hours) */\n tag_33\n jumpi\n tag_34\n tag_25\n jump\t// in\n tag_34:\n tag_33:\n /* \"Ep4/example.sol\":525:531 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":514:521 1 weeks */\n dup1\n /* \"Ep4/example.sol\":514:531 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":507:532 assert(1 weeks == 7 days) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":171:540 function TimeUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_38:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_40\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_41\n jump\t// in\n tag_40:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_43\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_44\n tag_45\n jump\t// in\n tag_44:\n /* \"#utility.yul\":245:364 */\n tag_43:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_46\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_38\n jump\t// in\n tag_46:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_47\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_38\n jump\t// in\n tag_47:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_48:\n /* \"#utility.yul\":713:734 */\n tag_50\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_51\n jump\t// in\n tag_50:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_53\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_48\n jump\t// in\n tag_53:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_57\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_58\n jump\t// in\n tag_57:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_59\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_58\n jump\t// in\n tag_59:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_60\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_61\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1210:1317 */\n tag_60:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_64\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_58\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_65\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_58\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_66\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_67\n tag_62\n jump\t// in\n tag_67:\n /* \"#utility.yul\":1536:1667 */\n tag_66:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_51:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_58:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_62:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_45:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_41:\n /* \"#utility.yul\":2579:2603 */\n tag_76\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_58\n jump\t// in\n tag_76:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_77\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_77:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212201ec8b3d86a72382be777835613868889bc5991af067759ec7bf5d322b67a8cc364736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610322806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b4414610046578063822d0647146100765780639b92a9e814610080575b600080fd5b610060600480360381019061005b9190610142565b61008a565b60405161006d9190610191565b60405180910390f35b61007e6100be565b005b6100886100d1565b005b6000806000905060038361009e9190610202565b846100a991906101ac565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610272565b5b565b600180146100e2576100e1610272565b5b603c80146100f3576100f2610272565b5b610e10801461010557610104610272565b5b62015180801461011857610117610272565b5b62093a80801461012b5761012a610272565b5b565b60008135905061013c816102d5565b92915050565b60008060408385031215610159576101586102d0565b5b60006101678582860161012d565b92505060206101788582860161012d565b9150509250929050565b61018b8161025c565b82525050565b60006020820190506101a66000830184610182565b92915050565b60006101b782610268565b91506101c283610268565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f7576101f66102a1565b5b828201905092915050565b600061020d82610268565b915061021883610268565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610251576102506102a1565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6102de81610268565b81146102e957600080fd5b5056fea26469706673582212201ec8b3d86a72382be777835613868889bc5991af067759ec7bf5d322b67a8cc364736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x322 DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x822D0647 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x9B92A9E8 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x142 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x191 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0xD1 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x202 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1AC JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xE2 JUMPI PUSH2 0xE1 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xF3 JUMPI PUSH2 0xF2 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13C DUP2 PUSH2 0x2D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x159 JUMPI PUSH2 0x158 PUSH2 0x2D0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x178 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x18B DUP2 PUSH2 0x25C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x182 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B7 DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C2 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F7 JUMPI PUSH2 0x1F6 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20D DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x218 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x251 JUMPI PUSH2 0x250 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DE DUP2 PUSH2 0x268 JUMP JUMPDEST DUP2 EQ PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E 0xC8 0xB3 0xD8 PUSH11 0x72382BE777835613868889 0xBC MSIZE SWAP2 0xAF MOD PUSH24 0x59EC7BF5D322B67A8CC364736F6C63430008070033000000 ", + "sourceMap": "60:821:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@EtherUnitExample_11": { + "entryPoint": 190, + "id": 11, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@TimeUnitExample_45": { + "entryPoint": 209, + "id": 45, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_75": { + "entryPoint": 138, + "id": 75, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 301, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 322, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 386, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 401, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 428, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 514, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 604, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 616, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 626, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 673, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 720, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 725, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b4414610046578063822d0647146100765780639b92a9e814610080575b600080fd5b610060600480360381019061005b9190610142565b61008a565b60405161006d9190610191565b60405180910390f35b61007e6100be565b005b6100886100d1565b005b6000806000905060038361009e9190610202565b846100a991906101ac565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610272565b5b565b600180146100e2576100e1610272565b5b603c80146100f3576100f2610272565b5b610e10801461010557610104610272565b5b62015180801461011857610117610272565b5b62093a80801461012b5761012a610272565b5b565b60008135905061013c816102d5565b92915050565b60008060408385031215610159576101586102d0565b5b60006101678582860161012d565b92505060206101788582860161012d565b9150509250929050565b61018b8161025c565b82525050565b60006020820190506101a66000830184610182565b92915050565b60006101b782610268565b91506101c283610268565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f7576101f66102a1565b5b828201905092915050565b600061020d82610268565b915061021883610268565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610251576102506102a1565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6102de81610268565b81146102e957600080fd5b5056fea26469706673582212201ec8b3d86a72382be777835613868889bc5991af067759ec7bf5d322b67a8cc364736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x822D0647 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x9B92A9E8 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x142 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x191 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0xD1 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x202 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1AC JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xE2 JUMPI PUSH2 0xE1 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xF3 JUMPI PUSH2 0xF2 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13C DUP2 PUSH2 0x2D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x159 JUMPI PUSH2 0x158 PUSH2 0x2D0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x178 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x18B DUP2 PUSH2 0x25C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x182 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B7 DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C2 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F7 JUMPI PUSH2 0x1F6 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20D DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x218 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x251 JUMPI PUSH2 0x250 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DE DUP2 PUSH2 0x268 JUMP JUMPDEST DUP2 EQ PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E 0xC8 0xB3 0xD8 PUSH11 0x72382BE777835613868889 0xBC MSIZE SWAP2 0xAF MOD PUSH24 0x59EC7BF5D322B67A8CC364736F6C63430008070033000000 ", + "sourceMap": "60:821:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;548:330;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;86:77;;;:::i;:::-;;171:369;;;:::i;:::-;;548:330;617:4;634:16;653:5;634:24;;776:9;761:12;:24;;;;:::i;:::-;753:5;:32;;;;:::i;:::-;734:15;:51;730:102;;816:4;802:18;;730:102;859:11;852:18;;;548:330;;;;:::o;86:77::-;153:1;144:5;:10;137:18;;;;:::i;:::-;;86:77::o;171:369::-;258:1;245:9;:14;238:22;;;;:::i;:::-;;321:10;308:9;:23;301:31;;;;:::i;:::-;;394:10;383:7;:21;376:29;;;;:::i;:::-;;461:8;451:6;:18;444:26;;;;:::i;:::-;;525:6;514:7;:17;507:25;;;;:::i;:::-;;171:369::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "160400", + "executionCost": "208", + "totalCost": "160608" + }, + "external": { + "EtherUnitExample()": "167", + "TimeUnitExample()": "281", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 60, + "end": 881, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 60, + "end": 881, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 881, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "REVERT", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 60, + "end": 881, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "POP", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 60, + "end": 881, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 881, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 881, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a26469706673582212201ec8b3d86a72382be777835613868889bc5991af067759ec7bf5d322b67a8cc364736f6c63430008070033", + ".code": [ + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 60, + "end": 881, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 60, + "end": 881, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 881, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "REVERT", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 60, + "end": 881, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "POP", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 60, + "end": 881, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "LT", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 60, + "end": 881, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 881, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 60, + "end": 881, + "name": "SHR", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 60, + "end": 881, + "name": "EQ", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 60, + "end": 881, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "822D0647" + }, + { + "begin": 60, + "end": 881, + "name": "EQ", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 60, + "end": 881, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "9B92A9E8" + }, + { + "begin": 60, + "end": 881, + "name": "EQ", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 60, + "end": 881, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 60, + "end": 881, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 60, + "end": 881, + "name": "DUP1", + "source": 0 + }, + { + "begin": 60, + "end": 881, + "name": "REVERT", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 548, + "end": 878, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 548, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 548, + "end": 878, + "name": "DUP1", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "SUB", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "DUP2", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "ADD", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 548, + "end": 878, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 548, + "end": 878, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 548, + "end": 878, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 548, + "end": 878, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 548, + "end": 878, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 548, + "end": 878, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 548, + "end": 878, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 548, + "end": 878, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 548, + "end": 878, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 548, + "end": 878, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 548, + "end": 878, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 548, + "end": 878, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 548, + "end": 878, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "DUP1", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "SUB", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "RETURN", + "source": 0 + }, + { + "begin": 86, + "end": 163, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 86, + "end": 163, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 163, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 86, + "end": 163, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 86, + "end": 163, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 86, + "end": 163, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 86, + "end": 163, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 163, + "name": "STOP", + "source": 0 + }, + { + "begin": 171, + "end": 540, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 171, + "end": 540, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 171, + "end": 540, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 171, + "end": 540, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 171, + "end": 540, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 171, + "end": 540, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 171, + "end": 540, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 171, + "end": 540, + "name": "STOP", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 548, + "end": 878, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 617, + "end": 621, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 634, + "end": 650, + "name": "DUP1", + "source": 0 + }, + { + "begin": 653, + "end": 658, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 634, + "end": 658, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 634, + "end": 658, + "name": "POP", + "source": 0 + }, + { + "begin": 776, + "end": 785, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 761, + "end": 773, + "name": "DUP4", + "source": 0 + }, + { + "begin": 761, + "end": 785, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 761, + "end": 785, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 761, + "end": 785, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 761, + "end": 785, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 761, + "end": 785, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 761, + "end": 785, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 761, + "end": 785, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 753, + "end": 758, + "name": "DUP5", + "source": 0 + }, + { + "begin": 753, + "end": 785, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 753, + "end": 785, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 753, + "end": 785, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 753, + "end": 785, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 753, + "end": 785, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 753, + "end": 785, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 753, + "end": 785, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 734, + "end": 749, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 734, + "end": 785, + "name": "LT", + "source": 0 + }, + { + "begin": 730, + "end": 832, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 730, + "end": 832, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 816, + "end": 820, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 802, + "end": 820, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 802, + "end": 820, + "name": "POP", + "source": 0 + }, + { + "begin": 730, + "end": 832, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 730, + "end": 832, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 859, + "end": 870, + "name": "DUP1", + "source": 0 + }, + { + "begin": 852, + "end": 870, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 852, + "end": 870, + "name": "POP", + "source": 0 + }, + { + "begin": 852, + "end": 870, + "name": "POP", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "POP", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "POP", + "source": 0 + }, + { + "begin": 548, + "end": 878, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 86, + "end": 163, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 86, + "end": 163, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 153, + "end": 154, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 144, + "end": 149, + "name": "DUP1", + "source": 0 + }, + { + "begin": 144, + "end": 154, + "name": "EQ", + "source": 0 + }, + { + "begin": 137, + "end": 155, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 137, + "end": 155, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 137, + "end": 155, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 137, + "end": 155, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 137, + "end": 155, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 137, + "end": 155, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 137, + "end": 155, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 137, + "end": 155, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 137, + "end": 155, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 163, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 171, + "end": 540, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 171, + "end": 540, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 258, + "end": 259, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 245, + "end": 254, + "name": "DUP1", + "source": 0 + }, + { + "begin": 245, + "end": 259, + "name": "EQ", + "source": 0 + }, + { + "begin": 238, + "end": 260, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 238, + "end": 260, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 238, + "end": 260, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 238, + "end": 260, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 238, + "end": 260, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 238, + "end": 260, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 238, + "end": 260, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 238, + "end": 260, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 238, + "end": 260, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 321, + "end": 331, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 308, + "end": 317, + "name": "DUP1", + "source": 0 + }, + { + "begin": 308, + "end": 331, + "name": "EQ", + "source": 0 + }, + { + "begin": 301, + "end": 332, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 301, + "end": 332, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 301, + "end": 332, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 301, + "end": 332, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 301, + "end": 332, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 301, + "end": 332, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 301, + "end": 332, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 301, + "end": 332, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 301, + "end": 332, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 394, + "end": 404, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 383, + "end": 390, + "name": "DUP1", + "source": 0 + }, + { + "begin": 383, + "end": 404, + "name": "EQ", + "source": 0 + }, + { + "begin": 376, + "end": 405, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 376, + "end": 405, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 376, + "end": 405, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 376, + "end": 405, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 376, + "end": 405, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 376, + "end": 405, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 376, + "end": 405, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 376, + "end": 405, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 376, + "end": 405, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 461, + "end": 469, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 451, + "end": 457, + "name": "DUP1", + "source": 0 + }, + { + "begin": 451, + "end": 469, + "name": "EQ", + "source": 0 + }, + { + "begin": 444, + "end": 470, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 444, + "end": 470, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 444, + "end": 470, + "name": "PUSH [tag]", + "source": 0, + "value": "34" + }, + { + "begin": 444, + "end": 470, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 444, + "end": 470, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 444, + "end": 470, + "name": "tag", + "source": 0, + "value": "34" + }, + { + "begin": 444, + "end": 470, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 444, + "end": 470, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 444, + "end": 470, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 525, + "end": 531, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 514, + "end": 521, + "name": "DUP1", + "source": 0 + }, + { + "begin": 514, + "end": 531, + "name": "EQ", + "source": 0 + }, + { + "begin": 507, + "end": 532, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 507, + "end": 532, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 507, + "end": 532, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 507, + "end": 532, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 507, + "end": 532, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 507, + "end": 532, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 507, + "end": 532, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 507, + "end": 532, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 507, + "end": 532, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 171, + "end": 540, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "38" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "40" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "41" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "40" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "59" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "59" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "60" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "67" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "58" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "41" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "76" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "76" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "77" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "77" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "EtherUnitExample()": "822d0647", + "TimeUnitExample()": "9b92a9e8", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EtherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TimeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0x7cbdb5f22a68ec6da14ac3a22ed6fb6cfbf10726b3109c3fbdc3d3a64481b049\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aae010aa02cc468e1ee65242b0361416a02d53f32b05ad018e411c8cff7a20ef\",\"dweb:/ipfs/QmUf2zufB9brGaooCmEFEPUED7ALXSaeUR2BVBwnAGnnTy\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 76 + ] + }, + "id": 77, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7" + ], + "nodeType": "PragmaDirective", + "src": "33:23:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 76, + "linearizedBaseContracts": [ + 76 + ], + "name": "Example", + "nameLocation": "69:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 10, + "nodeType": "Block", + "src": "126:37:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "144:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "153:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "144:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "137:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "137:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "137:18:0" + } + ] + }, + "functionSelector": "822d0647", + "id": 11, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "EtherUnitExample", + "nameLocation": "95:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "111:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "126:0:0" + }, + "scope": 76, + "src": "86:77:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 44, + "nodeType": "Block", + "src": "210:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "245:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "258:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "245:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "238:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "238:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19, + "nodeType": "ExpressionStatement", + "src": "238:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "308:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "321:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "308:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 20, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "301:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "301:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25, + "nodeType": "ExpressionStatement", + "src": "301:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "383:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "394:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "383:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "376:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "376:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "376:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "451:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "461:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "451:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "444:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "444:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "444:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "514:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "525:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "514:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "507:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "507:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "507:25:0" + } + ] + }, + "functionSelector": "9b92a9e8", + "id": 45, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "TimeUnitExample", + "nameLocation": "180:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [], + "src": "195:2:0" + }, + "returnParameters": { + "id": 13, + "nodeType": "ParameterList", + "parameters": [], + "src": "210:0:0" + }, + "scope": 76, + "src": "171:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 74, + "nodeType": "Block", + "src": "623:255:0", + "statements": [ + { + "assignments": [ + 55 + ], + "declarations": [ + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "639:11:0", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "634:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 54, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "634:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 57, + "initialValue": { + "hexValue": "66616c7365", + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "653:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "634:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 65, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 58, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "734:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "734:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 64, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 60, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "753:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 61, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49, + "src": "761:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "776:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "761:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "753:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "734:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 71, + "nodeType": "IfStatement", + "src": "730:102:0", + "trueBody": { + "id": 70, + "nodeType": "Block", + "src": "787:45:0", + "statements": [ + { + "expression": { + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 66, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "802:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "816:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "802:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 69, + "nodeType": "ExpressionStatement", + "src": "802:18:0" + } + ] + } + }, + { + "expression": { + "id": 72, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "859:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 53, + "id": 73, + "nodeType": "Return", + "src": "852:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 75, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "557:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "start", + "nameLocation": "571:5:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "566:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 46, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "566:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "583:12:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "578:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 48, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "578:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "565:31:0" + }, + "returnParameters": { + "id": 53, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 52, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "617:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 51, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "617:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "616:6:0" + }, + "scope": 76, + "src": "548:330:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 77, + "src": "60:821:0", + "usedErrors": [] + } + ], + "src": "33:848:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/ccff19bc4d6f201670100097a6ab9b5a.json b/Ep4/artifacts/build-info/ccff19bc4d6f201670100097a6ab9b5a.json new file mode 100644 index 0000000..30ec075 --- /dev/null +++ b/Ep4/artifacts/build-info/ccff19bc4d6f201670100097a6ab9b5a.json @@ -0,0 +1,6314 @@ +{ + "id": "ccff19bc4d6f201670100097a6ab9b5a", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n\r\n function etherUnitExample() public pure {\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 1);\r\n\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\t\t// 區塊的時間戳記至少在3秒以前, 才算有效\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1038 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1038 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":705:1035 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":328:697 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":88:320 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":705:1035 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":774:778 bool */\n 0x00\n /* \"Ep4/example.sol\":791:807 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":810:815 false */\n 0x00\n /* \"Ep4/example.sol\":791:815 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":933:942 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":918:930 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":918:942 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":910:915 start */\n dup5\n /* \"Ep4/example.sol\":910:942 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":891:906 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":891:942 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":887:989 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":973:977 true */\n 0x01\n /* \"Ep4/example.sol\":959:977 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":887:989 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1016:1027 isValidated */\n dup1\n /* \"Ep4/example.sol\":1009:1027 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":705:1035 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":328:697 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":415:416 1 */\n 0x01\n /* \"Ep4/example.sol\":402:411 1 seconds */\n dup1\n /* \"Ep4/example.sol\":402:416 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":395:417 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":478:488 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":465:474 1 minutes */\n dup1\n /* \"Ep4/example.sol\":465:488 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":458:489 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":551:561 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":540:547 1 hours */\n dup1\n /* \"Ep4/example.sol\":540:561 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":533:562 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":618:626 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":608:614 1 days */\n dup1\n /* \"Ep4/example.sol\":608:626 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":601:627 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":682:688 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":671:678 1 weeks */\n dup1\n /* \"Ep4/example.sol\":671:688 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":664:689 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":328:697 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":88:320 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":198:199 1 */\n 0x01\n /* \"Ep4/example.sol\":189:194 1 wei */\n dup1\n /* \"Ep4/example.sol\":189:199 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":182:200 assert(1 wei == 1) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":230:233 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":220:226 1 gwei */\n dup1\n /* \"Ep4/example.sol\":220:233 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":213:234 assert(1 gwei == 1e9) */\n tag_37\n jumpi\n tag_38\n tag_25\n jump\t// in\n tag_38:\n tag_37:\n /* \"Ep4/example.sol\":307:311 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":296:303 1 ether */\n dup1\n /* \"Ep4/example.sol\":296:311 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":289:312 assert(1 ether == 1e18) */\n tag_39\n jumpi\n tag_40\n tag_25\n jump\t// in\n tag_40:\n tag_39:\n /* \"Ep4/example.sol\":88:320 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_42:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_44\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_45\n jump\t// in\n tag_44:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_47\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_48\n tag_49\n jump\t// in\n tag_48:\n /* \"#utility.yul\":245:364 */\n tag_47:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_50\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_42\n jump\t// in\n tag_50:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_51\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_42\n jump\t// in\n tag_51:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_52:\n /* \"#utility.yul\":713:734 */\n tag_54\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_55\n jump\t// in\n tag_54:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_57\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_52\n jump\t// in\n tag_57:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_61\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_63\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_62\n jump\t// in\n tag_63:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_64\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_65\n tag_66\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1210:1317 */\n tag_64:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_68\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_62\n jump\t// in\n tag_68:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_69\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_62\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_70\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_71\n tag_66\n jump\t// in\n tag_71:\n /* \"#utility.yul\":1536:1667 */\n tag_70:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_55:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_62:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_66:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_49:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_45:\n /* \"#utility.yul\":2579:2603 */\n tag_80\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_62\n jump\t// in\n tag_80:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_81\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_81:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220e24d811198412510f165de5a736639a81ba0a895bfa27952314830623dfbf28564736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5061034e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061016e565b61008a565b60405161006d91906101bd565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061022e565b846100a991906101d8565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61029e565b5b603c80146100e0576100df61029e565b5b610e1080146100f2576100f161029e565b5b6201518080146101055761010461029e565b5b62093a8080146101185761011761029e565b5b565b6001801461012b5761012a61029e565b5b633b9aca00801461013f5761013e61029e565b5b670de0b6b3a764000080146101575761015661029e565b5b565b60008135905061016881610301565b92915050565b60008060408385031215610185576101846102fc565b5b600061019385828601610159565b92505060206101a485828601610159565b9150509250929050565b6101b781610288565b82525050565b60006020820190506101d260008301846101ae565b92915050565b60006101e382610294565b91506101ee83610294565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610223576102226102cd565b5b828201905092915050565b600061023982610294565b915061024483610294565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561027d5761027c6102cd565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61030a81610294565b811461031557600080fd5b5056fea2646970667358221220e24d811198412510f165de5a736639a81ba0a895bfa27952314830623dfbf28564736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34E DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x16E JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x22E JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1D8 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x13F JUMPI PUSH2 0x13E PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x157 JUMPI PUSH2 0x156 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x168 DUP2 PUSH2 0x301 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x185 JUMPI PUSH2 0x184 PUSH2 0x2FC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x193 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A4 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B7 DUP2 PUSH2 0x288 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E3 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EE DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x223 JUMPI PUSH2 0x222 PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x239 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x244 DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x27D JUMPI PUSH2 0x27C PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30A DUP2 PUSH2 0x294 JUMP JUMPDEST DUP2 EQ PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 0x4D DUP2 GT SWAP9 COINBASE 0x25 LT CALL PUSH6 0xDE5A736639A8 SHL LOG0 0xA8 SWAP6 0xBF LOG2 PUSH26 0x52314830623DFBF28564736F6C63430008070033000000000000 ", + "sourceMap": "62:976:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_23": { + "entryPoint": 282, + "id": 23, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_57": { + "entryPoint": 190, + "id": 57, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_87": { + "entryPoint": 138, + "id": 87, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 345, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 366, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 430, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 445, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 472, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 558, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 648, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 660, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 670, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 717, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 764, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 769, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061016e565b61008a565b60405161006d91906101bd565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061022e565b846100a991906101d8565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61029e565b5b603c80146100e0576100df61029e565b5b610e1080146100f2576100f161029e565b5b6201518080146101055761010461029e565b5b62093a8080146101185761011761029e565b5b565b6001801461012b5761012a61029e565b5b633b9aca00801461013f5761013e61029e565b5b670de0b6b3a764000080146101575761015661029e565b5b565b60008135905061016881610301565b92915050565b60008060408385031215610185576101846102fc565b5b600061019385828601610159565b92505060206101a485828601610159565b9150509250929050565b6101b781610288565b82525050565b60006020820190506101d260008301846101ae565b92915050565b60006101e382610294565b91506101ee83610294565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610223576102226102cd565b5b828201905092915050565b600061023982610294565b915061024483610294565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561027d5761027c6102cd565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61030a81610294565b811461031557600080fd5b5056fea2646970667358221220e24d811198412510f165de5a736639a81ba0a895bfa27952314830623dfbf28564736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x16E JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x22E JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1D8 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x13F JUMPI PUSH2 0x13E PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x157 JUMPI PUSH2 0x156 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x168 DUP2 PUSH2 0x301 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x185 JUMPI PUSH2 0x184 PUSH2 0x2FC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x193 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A4 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B7 DUP2 PUSH2 0x288 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E3 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EE DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x223 JUMPI PUSH2 0x222 PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x239 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x244 DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x27D JUMPI PUSH2 0x27C PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30A DUP2 PUSH2 0x294 JUMP JUMPDEST DUP2 EQ PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 0x4D DUP2 GT SWAP9 COINBASE 0x25 LT CALL PUSH6 0xDE5A736639A8 SHL LOG0 0xA8 SWAP6 0xBF LOG2 PUSH26 0x52314830623DFBF28564736F6C63430008070033000000000000 ", + "sourceMap": "62:976:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;705:330;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;328:369;;;:::i;:::-;;88:232;;;:::i;:::-;;705:330;774:4;791:16;810:5;791:24;;933:9;918:12;:24;;;;:::i;:::-;910:5;:32;;;;:::i;:::-;891:15;:51;887:102;;973:4;959:18;;887:102;1016:11;1009:18;;;705:330;;;;:::o;328:369::-;415:1;402:9;:14;395:22;;;;:::i;:::-;;478:10;465:9;:23;458:31;;;;:::i;:::-;;551:10;540:7;:21;533:29;;;;:::i;:::-;;618:8;608:6;:18;601:26;;;;:::i;:::-;;682:6;671:7;:17;664:25;;;;:::i;:::-;;328:369::o;88:232::-;198:1;189:5;:10;182:18;;;;:::i;:::-;;230:3;220:6;:13;213:21;;;;:::i;:::-;;307:4;296:7;:15;289:23;;;;:::i;:::-;;88:232::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "169200", + "executionCost": "214", + "totalCost": "169414" + }, + "external": { + "etherUnitExample()": "235", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1038, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1038, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1038, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1038, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1038, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1038, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1038, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220e24d811198412510f165de5a736639a81ba0a895bfa27952314830623dfbf28564736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1038, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1038, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1038, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1038, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1038, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1038, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1038, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1038, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1038, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1038, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1038, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1038, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1038, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1038, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1038, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1038, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1038, + "name": "REVERT", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 705, + "end": 1035, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 705, + "end": 1035, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 705, + "end": 1035, + "name": "DUP1", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "SUB", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "DUP2", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "ADD", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 705, + "end": 1035, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 705, + "end": 1035, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 705, + "end": 1035, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 705, + "end": 1035, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 705, + "end": 1035, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 705, + "end": 1035, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 705, + "end": 1035, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 705, + "end": 1035, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 705, + "end": 1035, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 705, + "end": 1035, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 705, + "end": 1035, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 705, + "end": 1035, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 705, + "end": 1035, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "DUP1", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "SUB", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "RETURN", + "source": 0 + }, + { + "begin": 328, + "end": 697, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 328, + "end": 697, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 328, + "end": 697, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 328, + "end": 697, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 328, + "end": 697, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 328, + "end": 697, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 328, + "end": 697, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 328, + "end": 697, + "name": "STOP", + "source": 0 + }, + { + "begin": 88, + "end": 320, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 88, + "end": 320, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 320, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 320, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 320, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 88, + "end": 320, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 320, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 320, + "name": "STOP", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 705, + "end": 1035, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 774, + "end": 778, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 791, + "end": 807, + "name": "DUP1", + "source": 0 + }, + { + "begin": 810, + "end": 815, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 791, + "end": 815, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 791, + "end": 815, + "name": "POP", + "source": 0 + }, + { + "begin": 933, + "end": 942, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 918, + "end": 930, + "name": "DUP4", + "source": 0 + }, + { + "begin": 918, + "end": 942, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 918, + "end": 942, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 918, + "end": 942, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 918, + "end": 942, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 918, + "end": 942, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 918, + "end": 942, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 918, + "end": 942, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 910, + "end": 915, + "name": "DUP5", + "source": 0 + }, + { + "begin": 910, + "end": 942, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 910, + "end": 942, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 910, + "end": 942, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 910, + "end": 942, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 910, + "end": 942, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 910, + "end": 942, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 910, + "end": 942, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 891, + "end": 906, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 891, + "end": 942, + "name": "LT", + "source": 0 + }, + { + "begin": 887, + "end": 989, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 887, + "end": 989, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 973, + "end": 977, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 959, + "end": 977, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 959, + "end": 977, + "name": "POP", + "source": 0 + }, + { + "begin": 887, + "end": 989, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 887, + "end": 989, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1016, + "end": 1027, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1009, + "end": 1027, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1009, + "end": 1027, + "name": "POP", + "source": 0 + }, + { + "begin": 1009, + "end": 1027, + "name": "POP", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "POP", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "POP", + "source": 0 + }, + { + "begin": 705, + "end": 1035, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 328, + "end": 697, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 328, + "end": 697, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 415, + "end": 416, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 402, + "end": 411, + "name": "DUP1", + "source": 0 + }, + { + "begin": 402, + "end": 416, + "name": "EQ", + "source": 0 + }, + { + "begin": 395, + "end": 417, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 395, + "end": 417, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 395, + "end": 417, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 395, + "end": 417, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 395, + "end": 417, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 395, + "end": 417, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 395, + "end": 417, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 395, + "end": 417, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 395, + "end": 417, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 478, + "end": 488, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 465, + "end": 474, + "name": "DUP1", + "source": 0 + }, + { + "begin": 465, + "end": 488, + "name": "EQ", + "source": 0 + }, + { + "begin": 458, + "end": 489, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 458, + "end": 489, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 458, + "end": 489, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 458, + "end": 489, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 458, + "end": 489, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 458, + "end": 489, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 458, + "end": 489, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 458, + "end": 489, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 458, + "end": 489, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 551, + "end": 561, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 540, + "end": 547, + "name": "DUP1", + "source": 0 + }, + { + "begin": 540, + "end": 561, + "name": "EQ", + "source": 0 + }, + { + "begin": 533, + "end": 562, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 533, + "end": 562, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 533, + "end": 562, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 533, + "end": 562, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 533, + "end": 562, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 533, + "end": 562, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 533, + "end": 562, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 533, + "end": 562, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 533, + "end": 562, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 618, + "end": 626, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 608, + "end": 614, + "name": "DUP1", + "source": 0 + }, + { + "begin": 608, + "end": 626, + "name": "EQ", + "source": 0 + }, + { + "begin": 601, + "end": 627, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 601, + "end": 627, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 601, + "end": 627, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 601, + "end": 627, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 601, + "end": 627, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 601, + "end": 627, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 601, + "end": 627, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 601, + "end": 627, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 601, + "end": 627, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 682, + "end": 688, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 671, + "end": 678, + "name": "DUP1", + "source": 0 + }, + { + "begin": 671, + "end": 688, + "name": "EQ", + "source": 0 + }, + { + "begin": 664, + "end": 689, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 664, + "end": 689, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 664, + "end": 689, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 664, + "end": 689, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 664, + "end": 689, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 664, + "end": 689, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 664, + "end": 689, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 664, + "end": 689, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 664, + "end": 689, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 328, + "end": 697, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 88, + "end": 320, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 320, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 198, + "end": 199, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 189, + "end": 194, + "name": "DUP1", + "source": 0 + }, + { + "begin": 189, + "end": 199, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 182, + "end": 200, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 230, + "end": 233, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 220, + "end": 226, + "name": "DUP1", + "source": 0 + }, + { + "begin": 220, + "end": 233, + "name": "EQ", + "source": 0 + }, + { + "begin": 213, + "end": 234, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 213, + "end": 234, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 213, + "end": 234, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 213, + "end": 234, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 213, + "end": 234, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 213, + "end": 234, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 213, + "end": 234, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 213, + "end": 234, + "name": "tag", + "source": 0, + "value": "37" + }, + { + "begin": 213, + "end": 234, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 307, + "end": 311, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 296, + "end": 303, + "name": "DUP1", + "source": 0 + }, + { + "begin": 296, + "end": 311, + "name": "EQ", + "source": 0 + }, + { + "begin": 289, + "end": 312, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 289, + "end": 312, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 289, + "end": 312, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 289, + "end": 312, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 289, + "end": 312, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 289, + "end": 312, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 289, + "end": 312, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 289, + "end": 312, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 289, + "end": 312, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 320, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "42" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "54" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "54" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "68" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "68" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "80" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "80" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0x72c15e6a90aebe4397b52ad09a950286288425afd1479fc4b1dae5bfbd88ad22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0968575b4fd2b144deaf2d459654a6da501bd78d43148ff3e857a507ec384f3f\",\"dweb:/ipfs/QmP6hFekBtA7LrjpiwKWjyjdDXU3AzYto98apJNGR1PTKv\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 88 + ] + }, + "id": 89, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 88, + "linearizedBaseContracts": [ + 88 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 22, + "nodeType": "Block", + "src": "128:192:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "189:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "198:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "189:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "182:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "182:18:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "220:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "230:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "220:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "213:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "213:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15, + "nodeType": "ExpressionStatement", + "src": "213:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "296:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "307:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "296:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 16, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "289:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "289:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21, + "nodeType": "ExpressionStatement", + "src": "289:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 23, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "97:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "128:0:0" + }, + "scope": 88, + "src": "88:232:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 56, + "nodeType": "Block", + "src": "367:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "402:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "415:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "402:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "395:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "395:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "395:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "465:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "478:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "465:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "458:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "458:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "458:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "540:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "551:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "540:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "533:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "533:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "533:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "608:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "618:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "608:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 44, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "601:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "601:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 49, + "nodeType": "ExpressionStatement", + "src": "601:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "671:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "682:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "671:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 50, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "664:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "664:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "664:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 57, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "337:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 24, + "nodeType": "ParameterList", + "parameters": [], + "src": "352:2:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "367:0:0" + }, + "scope": 88, + "src": "328:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 86, + "nodeType": "Block", + "src": "780:255:0", + "statements": [ + { + "assignments": [ + 67 + ], + "declarations": [ + { + "constant": false, + "id": 67, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "796:11:0", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "791:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 66, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "791:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 69, + "initialValue": { + "hexValue": "66616c7365", + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "810:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "791:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 70, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "891:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "891:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 72, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "910:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 73, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "918:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "933:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "918:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "910:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "891:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 83, + "nodeType": "IfStatement", + "src": "887:102:0", + "trueBody": { + "id": 82, + "nodeType": "Block", + "src": "944:45:0", + "statements": [ + { + "expression": { + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 78, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "959:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "973:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "959:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 81, + "nodeType": "ExpressionStatement", + "src": "959:18:0" + } + ] + } + }, + { + "expression": { + "id": 84, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1016:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 65, + "id": 85, + "nodeType": "Return", + "src": "1009:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 87, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "714:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "start", + "nameLocation": "728:5:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "723:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 58, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "723:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "740:12:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "735:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 60, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "735:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "722:31:0" + }, + "returnParameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "774:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 63, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "774:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "773:6:0" + }, + "scope": 88, + "src": "705:330:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 89, + "src": "62:976:0", + "usedErrors": [] + } + ], + "src": "33:1005:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/d031d3023ee750f96355cdcc8f666068.json b/Ep4/artifacts/build-info/d031d3023ee750f96355cdcc8f666068.json new file mode 100644 index 0000000..85b5408 --- /dev/null +++ b/Ep4/artifacts/build-info/d031d3023ee750f96355cdcc8f666068.json @@ -0,0 +1,6315 @@ +{ + "id": "d031d3023ee750f96355cdcc8f666068", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n function etherUnitExample() public pure {\r\n\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 1);\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1202 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1202 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":745:1199 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":86:360 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":745:1199 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":814:818 bool */\n 0x00\n /* \"Ep4/example.sol\":831:847 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":850:855 false */\n 0x00\n /* \"Ep4/example.sol\":831:855 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1097:1106 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1082:1094 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1082:1106 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1074:1079 start */\n dup5\n /* \"Ep4/example.sol\":1074:1106 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1055:1070 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1055:1106 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1051:1153 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1137:1141 true */\n 0x01\n /* \"Ep4/example.sol\":1123:1141 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1051:1153 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1180:1191 isValidated */\n dup1\n /* \"Ep4/example.sol\":1173:1191 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":745:1199 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":455:456 1 */\n 0x01\n /* \"Ep4/example.sol\":442:451 1 seconds */\n dup1\n /* \"Ep4/example.sol\":442:456 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":435:457 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":518:528 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":505:514 1 minutes */\n dup1\n /* \"Ep4/example.sol\":505:528 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":498:529 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":591:601 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":580:587 1 hours */\n dup1\n /* \"Ep4/example.sol\":580:601 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":573:602 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":658:666 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":648:654 1 days */\n dup1\n /* \"Ep4/example.sol\":648:666 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":641:667 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":722:728 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":711:718 1 weeks */\n dup1\n /* \"Ep4/example.sol\":711:728 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":704:729 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":368:737 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":86:360 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":198:199 1 */\n 0x01\n /* \"Ep4/example.sol\":189:194 1 wei */\n dup1\n /* \"Ep4/example.sol\":189:199 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":182:200 assert(1 wei == 1) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":270:273 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":260:266 1 gwei */\n dup1\n /* \"Ep4/example.sol\":260:273 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":253:274 assert(1 gwei == 1e9) */\n tag_37\n jumpi\n tag_38\n tag_25\n jump\t// in\n tag_38:\n tag_37:\n /* \"Ep4/example.sol\":347:351 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":336:343 1 ether */\n dup1\n /* \"Ep4/example.sol\":336:351 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":329:352 assert(1 ether == 1e18) */\n tag_39\n jumpi\n tag_40\n tag_25\n jump\t// in\n tag_40:\n tag_39:\n /* \"Ep4/example.sol\":86:360 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_42:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_44\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_45\n jump\t// in\n tag_44:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_47\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_48\n tag_49\n jump\t// in\n tag_48:\n /* \"#utility.yul\":245:364 */\n tag_47:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_50\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_42\n jump\t// in\n tag_50:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_51\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_42\n jump\t// in\n tag_51:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_52:\n /* \"#utility.yul\":713:734 */\n tag_54\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_55\n jump\t// in\n tag_54:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_57\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_52\n jump\t// in\n tag_57:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_61\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_63\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_62\n jump\t// in\n tag_63:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_64\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_65\n tag_66\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1210:1317 */\n tag_64:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_68\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_62\n jump\t// in\n tag_68:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_69\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_62\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_70\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_71\n tag_66\n jump\t// in\n tag_71:\n /* \"#utility.yul\":1536:1667 */\n tag_70:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_55:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_62:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_66:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_49:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_45:\n /* \"#utility.yul\":2579:2603 */\n tag_80\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_62\n jump\t// in\n tag_80:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_81\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_81:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220da2eaec7fc91f59cf5cd201ffb4532b29674d68be5d5703e4fa7d005068813f964736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5061034e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061016e565b61008a565b60405161006d91906101bd565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061022e565b846100a991906101d8565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61029e565b5b603c80146100e0576100df61029e565b5b610e1080146100f2576100f161029e565b5b6201518080146101055761010461029e565b5b62093a8080146101185761011761029e565b5b565b6001801461012b5761012a61029e565b5b633b9aca00801461013f5761013e61029e565b5b670de0b6b3a764000080146101575761015661029e565b5b565b60008135905061016881610301565b92915050565b60008060408385031215610185576101846102fc565b5b600061019385828601610159565b92505060206101a485828601610159565b9150509250929050565b6101b781610288565b82525050565b60006020820190506101d260008301846101ae565b92915050565b60006101e382610294565b91506101ee83610294565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610223576102226102cd565b5b828201905092915050565b600061023982610294565b915061024483610294565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561027d5761027c6102cd565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61030a81610294565b811461031557600080fd5b5056fea2646970667358221220da2eaec7fc91f59cf5cd201ffb4532b29674d68be5d5703e4fa7d005068813f964736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34E DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x16E JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x22E JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1D8 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x13F JUMPI PUSH2 0x13E PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x157 JUMPI PUSH2 0x156 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x168 DUP2 PUSH2 0x301 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x185 JUMPI PUSH2 0x184 PUSH2 0x2FC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x193 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A4 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B7 DUP2 PUSH2 0x288 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E3 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EE DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x223 JUMPI PUSH2 0x222 PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x239 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x244 DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x27D JUMPI PUSH2 0x27C PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30A DUP2 PUSH2 0x294 JUMP JUMPDEST DUP2 EQ PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDA 0x2E 0xAE 0xC7 0xFC SWAP2 CREATE2 SWAP13 CREATE2 0xCD KECCAK256 0x1F 0xFB GASLIMIT ORIGIN 0xB2 SWAP7 PUSH21 0xD68BE5D5703E4FA7D005068813F964736F6C634300 ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1140:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_23": { + "entryPoint": 282, + "id": 23, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_57": { + "entryPoint": 190, + "id": 57, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_87": { + "entryPoint": 138, + "id": 87, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 345, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 366, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 430, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 445, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 472, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 558, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 648, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 660, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 670, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 717, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 764, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 769, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b919061016e565b61008a565b60405161006d91906101bd565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e919061022e565b846100a991906101d8565b42106100b457600190505b8091505092915050565b600180146100cf576100ce61029e565b5b603c80146100e0576100df61029e565b5b610e1080146100f2576100f161029e565b5b6201518080146101055761010461029e565b5b62093a8080146101185761011761029e565b5b565b6001801461012b5761012a61029e565b5b633b9aca00801461013f5761013e61029e565b5b670de0b6b3a764000080146101575761015661029e565b5b565b60008135905061016881610301565b92915050565b60008060408385031215610185576101846102fc565b5b600061019385828601610159565b92505060206101a485828601610159565b9150509250929050565b6101b781610288565b82525050565b60006020820190506101d260008301846101ae565b92915050565b60006101e382610294565b91506101ee83610294565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610223576102226102cd565b5b828201905092915050565b600061023982610294565b915061024483610294565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561027d5761027c6102cd565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61030a81610294565b811461031557600080fd5b5056fea2646970667358221220da2eaec7fc91f59cf5cd201ffb4532b29674d68be5d5703e4fa7d005068813f964736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x16E JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x22E JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1D8 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x13F JUMPI PUSH2 0x13E PUSH2 0x29E JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x157 JUMPI PUSH2 0x156 PUSH2 0x29E JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x168 DUP2 PUSH2 0x301 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x185 JUMPI PUSH2 0x184 PUSH2 0x2FC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x193 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A4 DUP6 DUP3 DUP7 ADD PUSH2 0x159 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B7 DUP2 PUSH2 0x288 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E3 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x1EE DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x223 JUMPI PUSH2 0x222 PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x239 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP2 POP PUSH2 0x244 DUP4 PUSH2 0x294 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x27D JUMPI PUSH2 0x27C PUSH2 0x2CD JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30A DUP2 PUSH2 0x294 JUMP JUMPDEST DUP2 EQ PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDA 0x2E 0xAE 0xC7 0xFC SWAP2 CREATE2 SWAP13 CREATE2 0xCD KECCAK256 0x1F 0xFB GASLIMIT ORIGIN 0xB2 SWAP7 PUSH21 0xD68BE5D5703E4FA7D005068813F964736F6C634300 ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1140:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;745:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;368:369;;;:::i;:::-;;86:274;;;:::i;:::-;;745:454;814:4;831:16;850:5;831:24;;1097:9;1082:12;:24;;;;:::i;:::-;1074:5;:32;;;;:::i;:::-;1055:15;:51;1051:102;;1137:4;1123:18;;1051:102;1180:11;1173:18;;;745:454;;;;:::o;368:369::-;455:1;442:9;:14;435:22;;;;:::i;:::-;;518:10;505:9;:23;498:31;;;;:::i;:::-;;591:10;580:7;:21;573:29;;;;:::i;:::-;;658:8;648:6;:18;641:26;;;;:::i;:::-;;722:6;711:7;:17;704:25;;;;:::i;:::-;;368:369::o;86:274::-;198:1;189:5;:10;182:18;;;;:::i;:::-;;270:3;260:6;:13;253:21;;;;:::i;:::-;;347:4;336:7;:15;329:23;;;;:::i;:::-;;86:274::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "169200", + "executionCost": "214", + "totalCost": "169414" + }, + "external": { + "etherUnitExample()": "235", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1202, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1202, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1202, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220da2eaec7fc91f59cf5cd201ffb4532b29674d68be5d5703e4fa7d005068813f964736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1202, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1202, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1202, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1202, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1202, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1202, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1202, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1202, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1202, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1202, + "name": "REVERT", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 745, + "end": 1199, + "name": "DUP1", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SUB", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "DUP2", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "ADD", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1199, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1199, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 745, + "end": 1199, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 745, + "end": 1199, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 745, + "end": 1199, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "DUP1", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SUB", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "RETURN", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 368, + "end": 737, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 368, + "end": 737, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "STOP", + "source": 0 + }, + { + "begin": 86, + "end": 360, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 86, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 360, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 360, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 360, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 86, + "end": 360, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 360, + "name": "STOP", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 745, + "end": 1199, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 814, + "end": 818, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 831, + "end": 847, + "name": "DUP1", + "source": 0 + }, + { + "begin": 850, + "end": 855, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 831, + "end": 855, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 831, + "end": 855, + "name": "POP", + "source": 0 + }, + { + "begin": 1097, + "end": 1106, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1082, + "end": 1094, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1082, + "end": 1106, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1082, + "end": 1106, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1082, + "end": 1106, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1082, + "end": 1106, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1082, + "end": 1106, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1082, + "end": 1106, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1082, + "end": 1106, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1074, + "end": 1079, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1074, + "end": 1106, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1074, + "end": 1106, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1074, + "end": 1106, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1074, + "end": 1106, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1074, + "end": 1106, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1074, + "end": 1106, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1074, + "end": 1106, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1055, + "end": 1070, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1055, + "end": 1106, + "name": "LT", + "source": 0 + }, + { + "begin": 1051, + "end": 1153, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1051, + "end": 1153, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1137, + "end": 1141, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1123, + "end": 1141, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1123, + "end": 1141, + "name": "POP", + "source": 0 + }, + { + "begin": 1051, + "end": 1153, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1051, + "end": 1153, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1180, + "end": 1191, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1173, + "end": 1191, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1173, + "end": 1191, + "name": "POP", + "source": 0 + }, + { + "begin": 1173, + "end": 1191, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "POP", + "source": 0 + }, + { + "begin": 745, + "end": 1199, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 368, + "end": 737, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 368, + "end": 737, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 455, + "end": 456, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 442, + "end": 451, + "name": "DUP1", + "source": 0 + }, + { + "begin": 442, + "end": 456, + "name": "EQ", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 435, + "end": 457, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 435, + "end": 457, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 435, + "end": 457, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 435, + "end": 457, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 435, + "end": 457, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 518, + "end": 528, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 505, + "end": 514, + "name": "DUP1", + "source": 0 + }, + { + "begin": 505, + "end": 528, + "name": "EQ", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 498, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 498, + "end": 529, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 498, + "end": 529, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 498, + "end": 529, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 498, + "end": 529, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 591, + "end": 601, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 580, + "end": 587, + "name": "DUP1", + "source": 0 + }, + { + "begin": 580, + "end": 601, + "name": "EQ", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 573, + "end": 602, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 573, + "end": 602, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 573, + "end": 602, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 573, + "end": 602, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 573, + "end": 602, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 658, + "end": 666, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 648, + "end": 654, + "name": "DUP1", + "source": 0 + }, + { + "begin": 648, + "end": 666, + "name": "EQ", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 641, + "end": 667, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 641, + "end": 667, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 641, + "end": 667, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 641, + "end": 667, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 641, + "end": 667, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 722, + "end": 728, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 711, + "end": 718, + "name": "DUP1", + "source": 0 + }, + { + "begin": 711, + "end": 728, + "name": "EQ", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 704, + "end": 729, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 704, + "end": 729, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 704, + "end": 729, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 704, + "end": 729, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 704, + "end": 729, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 368, + "end": 737, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 86, + "end": 360, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 360, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 198, + "end": 199, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 189, + "end": 194, + "name": "DUP1", + "source": 0 + }, + { + "begin": 189, + "end": 199, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 182, + "end": 200, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 200, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 200, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 270, + "end": 273, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 260, + "end": 266, + "name": "DUP1", + "source": 0 + }, + { + "begin": 260, + "end": 273, + "name": "EQ", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 253, + "end": 274, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 253, + "end": 274, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 253, + "end": 274, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 253, + "end": 274, + "name": "tag", + "source": 0, + "value": "37" + }, + { + "begin": 253, + "end": 274, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 347, + "end": 351, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 336, + "end": 343, + "name": "DUP1", + "source": 0 + }, + { + "begin": 336, + "end": 351, + "name": "EQ", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 329, + "end": 352, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 329, + "end": 352, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 329, + "end": 352, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 329, + "end": 352, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 329, + "end": 352, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 360, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "42" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "54" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "54" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "68" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "68" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "80" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "80" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0xd72a638c0ce63b648713dfc86e6feab9301283f30af1972ad771e4a30d3a9bcd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa0ee7a265f52e5f0d4831c0867ae8db40d40eb5d8242be252aff84bf5006242\",\"dweb:/ipfs/QmXAcU3QVuKR5isb74M46hcxVJhCzh5TaGXSwRVnk1XTkQ\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 88 + ] + }, + "id": 89, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 88, + "linearizedBaseContracts": [ + 88 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 22, + "nodeType": "Block", + "src": "126:234:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "189:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "198:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "189:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "182:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "182:18:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "260:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "270:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "260:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "253:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "253:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15, + "nodeType": "ExpressionStatement", + "src": "253:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "336:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "347:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "336:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 16, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "329:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "329:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 21, + "nodeType": "ExpressionStatement", + "src": "329:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 23, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "95:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "111:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "126:0:0" + }, + "scope": 88, + "src": "86:274:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 56, + "nodeType": "Block", + "src": "407:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "442:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "455:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "442:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "435:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "435:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "435:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "505:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "518:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "505:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "498:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "498:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "498:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "580:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "591:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "580:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "573:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "573:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "573:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "648:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "658:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "648:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 44, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "641:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 49, + "nodeType": "ExpressionStatement", + "src": "641:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "711:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "722:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "711:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 50, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "704:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "704:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "704:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 57, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "377:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 24, + "nodeType": "ParameterList", + "parameters": [], + "src": "392:2:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "407:0:0" + }, + "scope": 88, + "src": "368:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 86, + "nodeType": "Block", + "src": "820:379:0", + "statements": [ + { + "assignments": [ + 67 + ], + "declarations": [ + { + "constant": false, + "id": 67, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "836:11:0", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "831:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 66, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "831:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 69, + "initialValue": { + "hexValue": "66616c7365", + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "850:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "831:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 70, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1055:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1055:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 72, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "1074:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 73, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "1082:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1097:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1082:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1074:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1055:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 83, + "nodeType": "IfStatement", + "src": "1051:102:0", + "trueBody": { + "id": 82, + "nodeType": "Block", + "src": "1108:45:0", + "statements": [ + { + "expression": { + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 78, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1123:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1137:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1123:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 81, + "nodeType": "ExpressionStatement", + "src": "1123:18:0" + } + ] + } + }, + { + "expression": { + "id": 84, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1180:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 65, + "id": 85, + "nodeType": "Return", + "src": "1173:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 87, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "754:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "start", + "nameLocation": "768:5:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "763:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 58, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "763:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "780:12:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "775:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 60, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "775:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "762:31:0" + }, + "returnParameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "814:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 63, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "814:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "813:6:0" + }, + "scope": 88, + "src": "745:454:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 89, + "src": "62:1140:0", + "usedErrors": [] + } + ], + "src": "33:1169:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/e0ae14280c0cd7222f1edf8b6d495d7b.json b/Ep4/artifacts/build-info/e0ae14280c0cd7222f1edf8b6d495d7b.json new file mode 100644 index 0000000..df963e7 --- /dev/null +++ b/Ep4/artifacts/build-info/e0ae14280c0cd7222f1edf8b6d495d7b.json @@ -0,0 +1,7379 @@ +{ + "id": "e0ae14280c0cd7222f1edf8b6d495d7b", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n function etherUnitExample() public pure {\r\n\r\n // wei是貨幣中的最小單位\r\n require(1 wei == 1, \"1 wei is equal to 1\");\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1226 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1226 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":769:1223 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":392:761 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":86:384 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":769:1223 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":838:842 bool */\n 0x00\n /* \"Ep4/example.sol\":855:871 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":874:879 false */\n 0x00\n /* \"Ep4/example.sol\":855:879 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1121:1130 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1106:1118 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1106:1130 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1098:1103 start */\n dup5\n /* \"Ep4/example.sol\":1098:1130 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1079:1094 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1079:1130 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1075:1177 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1161:1165 true */\n 0x01\n /* \"Ep4/example.sol\":1147:1165 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1075:1177 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1204:1215 isValidated */\n dup1\n /* \"Ep4/example.sol\":1197:1215 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":769:1223 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":392:761 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":479:480 1 */\n 0x01\n /* \"Ep4/example.sol\":466:475 1 seconds */\n dup1\n /* \"Ep4/example.sol\":466:480 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":459:481 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":542:552 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":529:538 1 minutes */\n dup1\n /* \"Ep4/example.sol\":529:552 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":522:553 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":615:625 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":604:611 1 hours */\n dup1\n /* \"Ep4/example.sol\":604:625 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":597:626 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":682:690 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":672:678 1 days */\n dup1\n /* \"Ep4/example.sol\":672:690 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":665:691 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":746:752 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":735:742 1 weeks */\n dup1\n /* \"Ep4/example.sol\":735:752 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":728:753 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":392:761 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":86:384 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":199:200 1 */\n 0x01\n /* \"Ep4/example.sol\":190:195 1 wei */\n dup1\n /* \"Ep4/example.sol\":190:200 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":182:224 require(1 wei == 1, \"1 wei is equal to 1\") */\n tag_35\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_36\n swap1\n tag_37\n jump\t// in\n tag_36:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_35:\n /* \"Ep4/example.sol\":294:297 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":284:290 1 gwei */\n dup1\n /* \"Ep4/example.sol\":284:297 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":277:298 assert(1 gwei == 1e9) */\n tag_38\n jumpi\n tag_39\n tag_25\n jump\t// in\n tag_39:\n tag_38:\n /* \"Ep4/example.sol\":371:375 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":360:367 1 ether */\n dup1\n /* \"Ep4/example.sol\":360:375 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":353:376 assert(1 ether == 1e18) */\n tag_40\n jumpi\n tag_41\n tag_25\n jump\t// in\n tag_41:\n tag_40:\n /* \"Ep4/example.sol\":86:384 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_43:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_45\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_46\n jump\t// in\n tag_45:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_48\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_49\n tag_50\n jump\t// in\n tag_49:\n /* \"#utility.yul\":245:364 */\n tag_48:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_51\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_43\n jump\t// in\n tag_51:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_52\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_43\n jump\t// in\n tag_52:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_53:\n /* \"#utility.yul\":713:734 */\n tag_55\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_56\n jump\t// in\n tag_55:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:1113 */\n tag_57:\n /* \"#utility.yul\":889:892 */\n 0x00\n /* \"#utility.yul\":910:977 */\n tag_59\n /* \"#utility.yul\":974:976 */\n 0x13\n /* \"#utility.yul\":969:972 */\n dup4\n /* \"#utility.yul\":910:977 */\n tag_60\n jump\t// in\n tag_59:\n /* \"#utility.yul\":903:977 */\n swap2\n pop\n /* \"#utility.yul\":986:1079 */\n tag_61\n /* \"#utility.yul\":1075:1078 */\n dup3\n /* \"#utility.yul\":986:1079 */\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1104:1106 */\n 0x20\n /* \"#utility.yul\":1099:1102 */\n dup3\n /* \"#utility.yul\":1095:1107 */\n add\n /* \"#utility.yul\":1088:1107 */\n swap1\n pop\n /* \"#utility.yul\":747:1113 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1119:1329 */\n tag_11:\n /* \"#utility.yul\":1206:1210 */\n 0x00\n /* \"#utility.yul\":1244:1246 */\n 0x20\n /* \"#utility.yul\":1233:1242 */\n dup3\n /* \"#utility.yul\":1229:1247 */\n add\n /* \"#utility.yul\":1221:1247 */\n swap1\n pop\n /* \"#utility.yul\":1257:1322 */\n tag_64\n /* \"#utility.yul\":1319:1320 */\n 0x00\n /* \"#utility.yul\":1308:1317 */\n dup4\n /* \"#utility.yul\":1304:1321 */\n add\n /* \"#utility.yul\":1295:1301 */\n dup5\n /* \"#utility.yul\":1257:1322 */\n tag_53\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1119:1329 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1335:1754 */\n tag_37:\n /* \"#utility.yul\":1501:1505 */\n 0x00\n /* \"#utility.yul\":1539:1541 */\n 0x20\n /* \"#utility.yul\":1528:1537 */\n dup3\n /* \"#utility.yul\":1524:1542 */\n add\n /* \"#utility.yul\":1516:1542 */\n swap1\n pop\n /* \"#utility.yul\":1588:1597 */\n dup2\n /* \"#utility.yul\":1582:1586 */\n dup2\n /* \"#utility.yul\":1578:1598 */\n sub\n /* \"#utility.yul\":1574:1575 */\n 0x00\n /* \"#utility.yul\":1563:1572 */\n dup4\n /* \"#utility.yul\":1559:1576 */\n add\n /* \"#utility.yul\":1552:1599 */\n mstore\n /* \"#utility.yul\":1616:1747 */\n tag_66\n /* \"#utility.yul\":1742:1746 */\n dup2\n /* \"#utility.yul\":1616:1747 */\n tag_57\n jump\t// in\n tag_66:\n /* \"#utility.yul\":1608:1747 */\n swap1\n pop\n /* \"#utility.yul\":1335:1754 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1841:2010 */\n tag_60:\n /* \"#utility.yul\":1925:1936 */\n 0x00\n /* \"#utility.yul\":1959:1965 */\n dup3\n /* \"#utility.yul\":1954:1957 */\n dup3\n /* \"#utility.yul\":1947:1966 */\n mstore\n /* \"#utility.yul\":1999:2003 */\n 0x20\n /* \"#utility.yul\":1994:1997 */\n dup3\n /* \"#utility.yul\":1990:2004 */\n add\n /* \"#utility.yul\":1975:2004 */\n swap1\n pop\n /* \"#utility.yul\":1841:2010 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2016:2321 */\n tag_20:\n /* \"#utility.yul\":2056:2059 */\n 0x00\n /* \"#utility.yul\":2075:2095 */\n tag_71\n /* \"#utility.yul\":2093:2094 */\n dup3\n /* \"#utility.yul\":2075:2095 */\n tag_72\n jump\t// in\n tag_71:\n /* \"#utility.yul\":2070:2095 */\n swap2\n pop\n /* \"#utility.yul\":2109:2129 */\n tag_73\n /* \"#utility.yul\":2127:2128 */\n dup4\n /* \"#utility.yul\":2109:2129 */\n tag_72\n jump\t// in\n tag_73:\n /* \"#utility.yul\":2104:2129 */\n swap3\n pop\n /* \"#utility.yul\":2263:2264 */\n dup3\n /* \"#utility.yul\":2195:2261 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":2191:2265 */\n sub\n /* \"#utility.yul\":2188:2189 */\n dup3\n /* \"#utility.yul\":2185:2266 */\n gt\n /* \"#utility.yul\":2182:2289 */\n iszero\n tag_74\n jumpi\n /* \"#utility.yul\":2269:2287 */\n tag_75\n tag_76\n jump\t// in\n tag_75:\n /* \"#utility.yul\":2182:2289 */\n tag_74:\n /* \"#utility.yul\":2313:2314 */\n dup3\n /* \"#utility.yul\":2310:2311 */\n dup3\n /* \"#utility.yul\":2306:2315 */\n add\n /* \"#utility.yul\":2299:2315 */\n swap1\n pop\n /* \"#utility.yul\":2016:2321 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2327:2675 */\n tag_18:\n /* \"#utility.yul\":2367:2374 */\n 0x00\n /* \"#utility.yul\":2390:2410 */\n tag_78\n /* \"#utility.yul\":2408:2409 */\n dup3\n /* \"#utility.yul\":2390:2410 */\n tag_72\n jump\t// in\n tag_78:\n /* \"#utility.yul\":2385:2410 */\n swap2\n pop\n /* \"#utility.yul\":2424:2444 */\n tag_79\n /* \"#utility.yul\":2442:2443 */\n dup4\n /* \"#utility.yul\":2424:2444 */\n tag_72\n jump\t// in\n tag_79:\n /* \"#utility.yul\":2419:2444 */\n swap3\n pop\n /* \"#utility.yul\":2612:2613 */\n dup2\n /* \"#utility.yul\":2544:2610 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":2540:2614 */\n div\n /* \"#utility.yul\":2537:2538 */\n dup4\n /* \"#utility.yul\":2534:2615 */\n gt\n /* \"#utility.yul\":2529:2530 */\n dup3\n /* \"#utility.yul\":2522:2531 */\n iszero\n /* \"#utility.yul\":2515:2532 */\n iszero\n /* \"#utility.yul\":2511:2616 */\n and\n /* \"#utility.yul\":2508:2639 */\n iszero\n tag_80\n jumpi\n /* \"#utility.yul\":2619:2637 */\n tag_81\n tag_76\n jump\t// in\n tag_81:\n /* \"#utility.yul\":2508:2639 */\n tag_80:\n /* \"#utility.yul\":2667:2668 */\n dup3\n /* \"#utility.yul\":2664:2665 */\n dup3\n /* \"#utility.yul\":2660:2669 */\n mul\n /* \"#utility.yul\":2649:2669 */\n swap1\n pop\n /* \"#utility.yul\":2327:2675 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2681:2771 */\n tag_56:\n /* \"#utility.yul\":2715:2722 */\n 0x00\n /* \"#utility.yul\":2758:2763 */\n dup2\n /* \"#utility.yul\":2751:2764 */\n iszero\n /* \"#utility.yul\":2744:2765 */\n iszero\n /* \"#utility.yul\":2733:2765 */\n swap1\n pop\n /* \"#utility.yul\":2681:2771 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2777:2854 */\n tag_72:\n /* \"#utility.yul\":2814:2821 */\n 0x00\n /* \"#utility.yul\":2843:2848 */\n dup2\n /* \"#utility.yul\":2832:2848 */\n swap1\n pop\n /* \"#utility.yul\":2777:2854 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2860:3040 */\n tag_25:\n /* \"#utility.yul\":2908:2985 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2905:2906 */\n 0x00\n /* \"#utility.yul\":2898:2986 */\n mstore\n /* \"#utility.yul\":3005:3009 */\n 0x01\n /* \"#utility.yul\":3002:3003 */\n 0x04\n /* \"#utility.yul\":2995:3010 */\n mstore\n /* \"#utility.yul\":3029:3033 */\n 0x24\n /* \"#utility.yul\":3026:3027 */\n 0x00\n /* \"#utility.yul\":3019:3034 */\n revert\n /* \"#utility.yul\":3046:3226 */\n tag_76:\n /* \"#utility.yul\":3094:3171 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":3091:3092 */\n 0x00\n /* \"#utility.yul\":3084:3172 */\n mstore\n /* \"#utility.yul\":3191:3195 */\n 0x11\n /* \"#utility.yul\":3188:3189 */\n 0x04\n /* \"#utility.yul\":3181:3196 */\n mstore\n /* \"#utility.yul\":3215:3219 */\n 0x24\n /* \"#utility.yul\":3212:3213 */\n 0x00\n /* \"#utility.yul\":3205:3220 */\n revert\n /* \"#utility.yul\":3355:3472 */\n tag_50:\n /* \"#utility.yul\":3464:3465 */\n 0x00\n /* \"#utility.yul\":3461:3462 */\n dup1\n /* \"#utility.yul\":3454:3466 */\n revert\n /* \"#utility.yul\":3478:3647 */\n tag_62:\n /* \"#utility.yul\":3618:3639 */\n 0x312077656920697320657175616c20746f203100000000000000000000000000\n /* \"#utility.yul\":3614:3615 */\n 0x00\n /* \"#utility.yul\":3606:3612 */\n dup3\n /* \"#utility.yul\":3602:3616 */\n add\n /* \"#utility.yul\":3595:3640 */\n mstore\n /* \"#utility.yul\":3478:3647 */\n pop\n jump\t// out\n /* \"#utility.yul\":3653:3775 */\n tag_46:\n /* \"#utility.yul\":3726:3750 */\n tag_91\n /* \"#utility.yul\":3744:3749 */\n dup2\n /* \"#utility.yul\":3726:3750 */\n tag_72\n jump\t// in\n tag_91:\n /* \"#utility.yul\":3719:3724 */\n dup2\n /* \"#utility.yul\":3716:3751 */\n eq\n /* \"#utility.yul\":3706:3769 */\n tag_92\n jumpi\n /* \"#utility.yul\":3765:3766 */\n 0x00\n /* \"#utility.yul\":3762:3763 */\n dup1\n /* \"#utility.yul\":3755:3767 */\n revert\n /* \"#utility.yul\":3706:3769 */\n tag_92:\n /* \"#utility.yul\":3653:3775 */\n pop\n jump\t// out\n\n auxdata: 0xa264697066735822122037600599f4ebc4666d9ebd504f76ae5e28ccee37e45620c37f19c89a4fd8199564736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506103fd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b91906101a0565b61008a565b60405161006d9190610212565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e91906102b4565b846100a9919061025e565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610324565b5b603c80146100e0576100df610324565b5b610e1080146100f2576100f1610324565b5b62015180801461010557610104610324565b5b62093a80801461011857610117610324565b5b565b6001801461015d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101549061022d565b60405180910390fd5b633b9aca00801461017157610170610324565b5b670de0b6b3a7640000801461018957610188610324565b5b565b60008135905061019a816103b0565b92915050565b600080604083850312156101b7576101b6610382565b5b60006101c58582860161018b565b92505060206101d68582860161018b565b9150509250929050565b6101e98161030e565b82525050565b60006101fc60138361024d565b915061020782610387565b602082019050919050565b600060208201905061022760008301846101e0565b92915050565b60006020820190508181036000830152610246816101ef565b9050919050565b600082825260208201905092915050565b60006102698261031a565b91506102748361031a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156102a9576102a8610353565b5b828201905092915050565b60006102bf8261031a565b91506102ca8361031a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561030357610302610353565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b7f312077656920697320657175616c20746f203100000000000000000000000000600082015250565b6103b98161031a565b81146103c457600080fd5b5056fea264697066735822122037600599f4ebc4666d9ebd504f76ae5e28ccee37e45620c37f19c89a4fd8199564736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1A0 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x212 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x2B4 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x25E JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x324 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x15D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154 SWAP1 PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x171 JUMPI PUSH2 0x170 PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x189 JUMPI PUSH2 0x188 PUSH2 0x324 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19A DUP2 PUSH2 0x3B0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7 JUMPI PUSH2 0x1B6 PUSH2 0x382 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C5 DUP6 DUP3 DUP7 ADD PUSH2 0x18B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D6 DUP6 DUP3 DUP7 ADD PUSH2 0x18B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E9 DUP2 PUSH2 0x30E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FC PUSH1 0x13 DUP4 PUSH2 0x24D JUMP JUMPDEST SWAP2 POP PUSH2 0x207 DUP3 PUSH2 0x387 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x227 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x246 DUP2 PUSH2 0x1EF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x269 DUP3 PUSH2 0x31A JUMP JUMPDEST SWAP2 POP PUSH2 0x274 DUP4 PUSH2 0x31A JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2A9 JUMPI PUSH2 0x2A8 PUSH2 0x353 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BF DUP3 PUSH2 0x31A JUMP JUMPDEST SWAP2 POP PUSH2 0x2CA DUP4 PUSH2 0x31A JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x303 JUMPI PUSH2 0x302 PUSH2 0x353 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x312077656920697320657175616C20746F203100000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x3B9 DUP2 PUSH2 0x31A JUMP JUMPDEST DUP2 EQ PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATACOPY PUSH1 0x5 SWAP10 DELEGATECALL 0xEB 0xC4 PUSH7 0x6D9EBD504F76AE 0x5E 0x28 0xCC 0xEE CALLDATACOPY 0xE4 JUMP KECCAK256 0xC3 PUSH32 0x19C89A4FD8199564736F6C634300080700330000000000000000000000000000 ", + "sourceMap": "62:1164:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_24": { + "entryPoint": 282, + "id": 24, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_58": { + "entryPoint": 190, + "id": 58, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_88": { + "entryPoint": 138, + "id": 88, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 395, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 416, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 480, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 495, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 530, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 557, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 589, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 606, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 692, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 782, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 794, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 804, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 851, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 898, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "store_literal_in_memory_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c": { + "entryPoint": 903, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 944, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:3778:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "893:220:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "903:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "969:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "974:2:1", + "type": "", + "value": "19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "910:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "910:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "903:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1075:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c", + "nodeType": "YulIdentifier", + "src": "986:88:1" + }, + "nodeType": "YulFunctionCall", + "src": "986:93:1" + }, + "nodeType": "YulExpressionStatement", + "src": "986:93:1" + }, + { + "nodeType": "YulAssignment", + "src": "1088:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1099:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1104:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1095:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1095:12:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1088:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "881:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "889:3:1", + "type": "" + } + ], + "src": "747:366:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1211:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1221:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1233:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1244:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1229:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1229:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1221:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1295:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1308:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1319:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1304:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1304:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1257:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "1257:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1257:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1183:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1195:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1206:4:1", + "type": "" + } + ], + "src": "1119:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1506:248:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1516:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1528:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1524:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1524:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1516:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1563:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1574:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1559:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1559:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1582:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1588:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1578:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1578:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1552:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1552:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1552:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "1608:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1742:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1616:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "1616:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1608:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1486:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1501:4:1", + "type": "" + } + ], + "src": "1335:419:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1800:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1810:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1826:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1820:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1820:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1810:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1793:6:1", + "type": "" + } + ], + "src": "1760:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1937:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1954:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1959:6:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1947:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1947:19:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1947:19:1" + }, + { + "nodeType": "YulAssignment", + "src": "1975:29:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1994:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1999:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1990:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1990:14:1" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "1975:11:1" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1909:3:1", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1914:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "1925:11:1", + "type": "" + } + ], + "src": "1841:169:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2060:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2070:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2093:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2075:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2075:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2070:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2104:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2127:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2109:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2104:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2267:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "2269:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "2269:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2269:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2188:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2195:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2263:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2191:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2191:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2185:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2185:81:1" + }, + "nodeType": "YulIf", + "src": "2182:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "2299:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2310:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2313:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2306:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2306:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "2299:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "2047:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "2050:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "2056:3:1", + "type": "" + } + ], + "src": "2016:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2375:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2385:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2408:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2390:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2390:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2385:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2419:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2442:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2424:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2424:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2419:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2617:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "2619:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "2619:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2619:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2529:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2522:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2522:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2515:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2515:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2537:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2544:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2612:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "2540:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2540:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2534:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2534:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2511:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2511:105:1" + }, + "nodeType": "YulIf", + "src": "2508:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "2649:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2664:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2667:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "2660:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2660:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "2649:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "2358:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "2361:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "2367:7:1", + "type": "" + } + ], + "src": "2327:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2723:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2733:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2758:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2751:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2751:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2744:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2744:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2733:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2705:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2715:7:1", + "type": "" + } + ], + "src": "2681:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2822:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2832:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2843:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2832:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2804:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2814:7:1", + "type": "" + } + ], + "src": "2777:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2888:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2905:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2908:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2898:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2898:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2898:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3002:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3005:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2995:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2995:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2995:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3026:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3029:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3019:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3019:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3019:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "2860:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3074:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3091:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3094:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3084:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3084:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3084:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3188:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3191:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3181:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3181:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3181:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3212:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3215:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3205:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3205:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3205:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "3046:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3321:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3338:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3341:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3331:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3331:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3331:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "3232:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3444:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3461:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3464:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3454:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3454:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3454:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "3355:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3584:63:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "3606:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3614:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3602:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3602:14:1" + }, + { + "hexValue": "312077656920697320657175616c20746f2031", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3618:21:1", + "type": "", + "value": "1 wei is equal to 1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3595:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3595:45:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3595:45:1" + } + ] + }, + "name": "store_literal_in_memory_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "3576:6:1", + "type": "" + } + ], + "src": "3478:169:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3696:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3753:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3762:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3765:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3755:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3755:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3755:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3719:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3744:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3726:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "3726:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "3716:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "3716:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3709:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3709:43:1" + }, + "nodeType": "YulIf", + "src": "3706:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3689:5:1", + "type": "" + } + ], + "src": "3653:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function store_literal_in_memory_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c(memPtr) {\n\n mstore(add(memPtr, 0), \"1 wei is equal to 1\")\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b91906101a0565b61008a565b60405161006d9190610212565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e91906102b4565b846100a9919061025e565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610324565b5b603c80146100e0576100df610324565b5b610e1080146100f2576100f1610324565b5b62015180801461010557610104610324565b5b62093a80801461011857610117610324565b5b565b6001801461015d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101549061022d565b60405180910390fd5b633b9aca00801461017157610170610324565b5b670de0b6b3a7640000801461018957610188610324565b5b565b60008135905061019a816103b0565b92915050565b600080604083850312156101b7576101b6610382565b5b60006101c58582860161018b565b92505060206101d68582860161018b565b9150509250929050565b6101e98161030e565b82525050565b60006101fc60138361024d565b915061020782610387565b602082019050919050565b600060208201905061022760008301846101e0565b92915050565b60006020820190508181036000830152610246816101ef565b9050919050565b600082825260208201905092915050565b60006102698261031a565b91506102748361031a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156102a9576102a8610353565b5b828201905092915050565b60006102bf8261031a565b91506102ca8361031a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561030357610302610353565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b7f312077656920697320657175616c20746f203100000000000000000000000000600082015250565b6103b98161031a565b81146103c457600080fd5b5056fea264697066735822122037600599f4ebc4666d9ebd504f76ae5e28ccee37e45620c37f19c89a4fd8199564736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1A0 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x212 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x2B4 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x25E JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x324 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0x15D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154 SWAP1 PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x171 JUMPI PUSH2 0x170 PUSH2 0x324 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x189 JUMPI PUSH2 0x188 PUSH2 0x324 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19A DUP2 PUSH2 0x3B0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7 JUMPI PUSH2 0x1B6 PUSH2 0x382 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C5 DUP6 DUP3 DUP7 ADD PUSH2 0x18B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D6 DUP6 DUP3 DUP7 ADD PUSH2 0x18B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E9 DUP2 PUSH2 0x30E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FC PUSH1 0x13 DUP4 PUSH2 0x24D JUMP JUMPDEST SWAP2 POP PUSH2 0x207 DUP3 PUSH2 0x387 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x227 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x246 DUP2 PUSH2 0x1EF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x269 DUP3 PUSH2 0x31A JUMP JUMPDEST SWAP2 POP PUSH2 0x274 DUP4 PUSH2 0x31A JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2A9 JUMPI PUSH2 0x2A8 PUSH2 0x353 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BF DUP3 PUSH2 0x31A JUMP JUMPDEST SWAP2 POP PUSH2 0x2CA DUP4 PUSH2 0x31A JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x303 JUMPI PUSH2 0x302 PUSH2 0x353 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x312077656920697320657175616C20746F203100000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x3B9 DUP2 PUSH2 0x31A JUMP JUMPDEST DUP2 EQ PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATACOPY PUSH1 0x5 SWAP10 DELEGATECALL 0xEB 0xC4 PUSH7 0x6D9EBD504F76AE 0x5E 0x28 0xCC 0xEE CALLDATACOPY 0xE4 JUMP KECCAK256 0xC3 PUSH32 0x19C89A4FD8199564736F6C634300080700330000000000000000000000000000 ", + "sourceMap": "62:1164:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;769:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;392:369;;;:::i;:::-;;86:298;;;:::i;:::-;;769:454;838:4;855:16;874:5;855:24;;1121:9;1106:12;:24;;;;:::i;:::-;1098:5;:32;;;;:::i;:::-;1079:15;:51;1075:102;;1161:4;1147:18;;1075:102;1204:11;1197:18;;;769:454;;;;:::o;392:369::-;479:1;466:9;:14;459:22;;;;:::i;:::-;;542:10;529:9;:23;522:31;;;;:::i;:::-;;615:10;604:7;:21;597:29;;;;:::i;:::-;;682:8;672:6;:18;665:26;;;;:::i;:::-;;746:6;735:7;:17;728:25;;;;:::i;:::-;;392:369::o;86:298::-;199:1;190:5;:10;182:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;294:3;284:6;:13;277:21;;;;:::i;:::-;;371:4;360:7;:15;353:23;;;;:::i;:::-;;86:298::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:366::-;889:3;910:67;974:2;969:3;910:67;:::i;:::-;903:74;;986:93;1075:3;986:93;:::i;:::-;1104:2;1099:3;1095:12;1088:19;;747:366;;;:::o;1119:210::-;1206:4;1244:2;1233:9;1229:18;1221:26;;1257:65;1319:1;1308:9;1304:17;1295:6;1257:65;:::i;:::-;1119:210;;;;:::o;1335:419::-;1501:4;1539:2;1528:9;1524:18;1516:26;;1588:9;1582:4;1578:20;1574:1;1563:9;1559:17;1552:47;1616:131;1742:4;1616:131;:::i;:::-;1608:139;;1335:419;;;:::o;1841:169::-;1925:11;1959:6;1954:3;1947:19;1999:4;1994:3;1990:14;1975:29;;1841:169;;;;:::o;2016:305::-;2056:3;2075:20;2093:1;2075:20;:::i;:::-;2070:25;;2109:20;2127:1;2109:20;:::i;:::-;2104:25;;2263:1;2195:66;2191:74;2188:1;2185:81;2182:107;;;2269:18;;:::i;:::-;2182:107;2313:1;2310;2306:9;2299:16;;2016:305;;;;:::o;2327:348::-;2367:7;2390:20;2408:1;2390:20;:::i;:::-;2385:25;;2424:20;2442:1;2424:20;:::i;:::-;2419:25;;2612:1;2544:66;2540:74;2537:1;2534:81;2529:1;2522:9;2515:17;2511:105;2508:131;;;2619:18;;:::i;:::-;2508:131;2667:1;2664;2660:9;2649:20;;2327:348;;;;:::o;2681:90::-;2715:7;2758:5;2751:13;2744:21;2733:32;;2681:90;;;:::o;2777:77::-;2814:7;2843:5;2832:16;;2777:77;;;:::o;2860:180::-;2908:77;2905:1;2898:88;3005:4;3002:1;2995:15;3029:4;3026:1;3019:15;3046:180;3094:77;3091:1;3084:88;3191:4;3188:1;3181:15;3215:4;3212:1;3205:15;3355:117;3464:1;3461;3454:12;3478:169;3618:21;3614:1;3606:6;3602:14;3595:45;3478:169;:::o;3653:122::-;3726:24;3744:5;3726:24;:::i;:::-;3719:5;3716:35;3706:63;;3765:1;3762;3755:12;3706:63;3653:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "204200", + "executionCost": "245", + "totalCost": "204445" + }, + "external": { + "etherUnitExample()": "235", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1226, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1226, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1226, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1226, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1226, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1226, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1226, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a264697066735822122037600599f4ebc4666d9ebd504f76ae5e28ccee37e45620c37f19c89a4fd8199564736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1226, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1226, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1226, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1226, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1226, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1226, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1226, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1226, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1226, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1226, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1226, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1226, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1226, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1226, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1226, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1226, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1226, + "name": "REVERT", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 769, + "end": 1223, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 769, + "end": 1223, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 769, + "end": 1223, + "name": "DUP1", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "SUB", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "DUP2", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "ADD", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 769, + "end": 1223, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 769, + "end": 1223, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 769, + "end": 1223, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 769, + "end": 1223, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 769, + "end": 1223, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 769, + "end": 1223, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 769, + "end": 1223, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 769, + "end": 1223, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 769, + "end": 1223, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 769, + "end": 1223, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 769, + "end": 1223, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 769, + "end": 1223, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 769, + "end": 1223, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "DUP1", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "SUB", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "RETURN", + "source": 0 + }, + { + "begin": 392, + "end": 761, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 392, + "end": 761, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 392, + "end": 761, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 392, + "end": 761, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 392, + "end": 761, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 392, + "end": 761, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 392, + "end": 761, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 392, + "end": 761, + "name": "STOP", + "source": 0 + }, + { + "begin": 86, + "end": 384, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 86, + "end": 384, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 384, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 384, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 384, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 86, + "end": 384, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 384, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 384, + "name": "STOP", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 769, + "end": 1223, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 838, + "end": 842, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 855, + "end": 871, + "name": "DUP1", + "source": 0 + }, + { + "begin": 874, + "end": 879, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 855, + "end": 879, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 855, + "end": 879, + "name": "POP", + "source": 0 + }, + { + "begin": 1121, + "end": 1130, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1106, + "end": 1118, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1106, + "end": 1130, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1106, + "end": 1130, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1106, + "end": 1130, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1106, + "end": 1130, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1106, + "end": 1130, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1106, + "end": 1130, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1106, + "end": 1130, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1098, + "end": 1103, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1098, + "end": 1130, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1098, + "end": 1130, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1098, + "end": 1130, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1098, + "end": 1130, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1098, + "end": 1130, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1098, + "end": 1130, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1098, + "end": 1130, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1079, + "end": 1094, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1079, + "end": 1130, + "name": "LT", + "source": 0 + }, + { + "begin": 1075, + "end": 1177, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1075, + "end": 1177, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1161, + "end": 1165, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1147, + "end": 1165, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1147, + "end": 1165, + "name": "POP", + "source": 0 + }, + { + "begin": 1075, + "end": 1177, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1075, + "end": 1177, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1204, + "end": 1215, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1197, + "end": 1215, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1197, + "end": 1215, + "name": "POP", + "source": 0 + }, + { + "begin": 1197, + "end": 1215, + "name": "POP", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "POP", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "POP", + "source": 0 + }, + { + "begin": 769, + "end": 1223, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 392, + "end": 761, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 392, + "end": 761, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 479, + "end": 480, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 466, + "end": 475, + "name": "DUP1", + "source": 0 + }, + { + "begin": 466, + "end": 480, + "name": "EQ", + "source": 0 + }, + { + "begin": 459, + "end": 481, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 459, + "end": 481, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 459, + "end": 481, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 459, + "end": 481, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 459, + "end": 481, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 459, + "end": 481, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 459, + "end": 481, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 459, + "end": 481, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 459, + "end": 481, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 542, + "end": 552, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 529, + "end": 538, + "name": "DUP1", + "source": 0 + }, + { + "begin": 529, + "end": 552, + "name": "EQ", + "source": 0 + }, + { + "begin": 522, + "end": 553, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 522, + "end": 553, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 522, + "end": 553, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 522, + "end": 553, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 522, + "end": 553, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 522, + "end": 553, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 522, + "end": 553, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 522, + "end": 553, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 522, + "end": 553, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 615, + "end": 625, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 604, + "end": 611, + "name": "DUP1", + "source": 0 + }, + { + "begin": 604, + "end": 625, + "name": "EQ", + "source": 0 + }, + { + "begin": 597, + "end": 626, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 597, + "end": 626, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 597, + "end": 626, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 597, + "end": 626, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 597, + "end": 626, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 597, + "end": 626, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 597, + "end": 626, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 597, + "end": 626, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 597, + "end": 626, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 682, + "end": 690, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 672, + "end": 678, + "name": "DUP1", + "source": 0 + }, + { + "begin": 672, + "end": 690, + "name": "EQ", + "source": 0 + }, + { + "begin": 665, + "end": 691, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 665, + "end": 691, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 665, + "end": 691, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 665, + "end": 691, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 665, + "end": 691, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 665, + "end": 691, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 665, + "end": 691, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 665, + "end": 691, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 665, + "end": 691, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 746, + "end": 752, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 735, + "end": 742, + "name": "DUP1", + "source": 0 + }, + { + "begin": 735, + "end": 752, + "name": "EQ", + "source": 0 + }, + { + "begin": 728, + "end": 753, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 728, + "end": 753, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 728, + "end": 753, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 728, + "end": 753, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 728, + "end": 753, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 728, + "end": 753, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 728, + "end": 753, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 728, + "end": 753, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 728, + "end": 753, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 392, + "end": 761, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 86, + "end": 384, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 384, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 199, + "end": 200, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 190, + "end": 195, + "name": "DUP1", + "source": 0 + }, + { + "begin": 190, + "end": 200, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 224, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 224, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 224, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 182, + "end": 224, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 182, + "end": 224, + "name": "PUSH", + "source": 0, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 182, + "end": 224, + "name": "DUP2", + "source": 0 + }, + { + "begin": 182, + "end": 224, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 182, + "end": 224, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 182, + "end": 224, + "name": "ADD", + "source": 0 + }, + { + "begin": 182, + "end": 224, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 224, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 182, + "end": 224, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 182, + "end": 224, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 224, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 224, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 224, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 182, + "end": 224, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 182, + "end": 224, + "name": "DUP1", + "source": 0 + }, + { + "begin": 182, + "end": 224, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 182, + "end": 224, + "name": "SUB", + "source": 0 + }, + { + "begin": 182, + "end": 224, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 182, + "end": 224, + "name": "REVERT", + "source": 0 + }, + { + "begin": 182, + "end": 224, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 224, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 294, + "end": 297, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 284, + "end": 290, + "name": "DUP1", + "source": 0 + }, + { + "begin": 284, + "end": 297, + "name": "EQ", + "source": 0 + }, + { + "begin": 277, + "end": 298, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 277, + "end": 298, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 277, + "end": 298, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 277, + "end": 298, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 277, + "end": 298, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 277, + "end": 298, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 277, + "end": 298, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 277, + "end": 298, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 277, + "end": 298, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 371, + "end": 375, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 360, + "end": 367, + "name": "DUP1", + "source": 0 + }, + { + "begin": 360, + "end": 375, + "name": "EQ", + "source": 0 + }, + { + "begin": 353, + "end": 376, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 353, + "end": 376, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 353, + "end": 376, + "name": "PUSH [tag]", + "source": 0, + "value": "41" + }, + { + "begin": 353, + "end": 376, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 353, + "end": 376, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 353, + "end": 376, + "name": "tag", + "source": 0, + "value": "41" + }, + { + "begin": 353, + "end": 376, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 353, + "end": 376, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 353, + "end": 376, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 384, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "56" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 1113, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 747, + "end": 1113, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 889, + "end": 892, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 910, + "end": 977, + "name": "PUSH [tag]", + "source": 1, + "value": "59" + }, + { + "begin": 974, + "end": 976, + "name": "PUSH", + "source": 1, + "value": "13" + }, + { + "begin": 969, + "end": 972, + "name": "DUP4", + "source": 1 + }, + { + "begin": 910, + "end": 977, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 910, + "end": 977, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 910, + "end": 977, + "name": "tag", + "source": 1, + "value": "59" + }, + { + "begin": 910, + "end": 977, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 903, + "end": 977, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 903, + "end": 977, + "name": "POP", + "source": 1 + }, + { + "begin": 986, + "end": 1079, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1075, + "end": 1078, + "name": "DUP3", + "source": 1 + }, + { + "begin": 986, + "end": 1079, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 986, + "end": 1079, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 986, + "end": 1079, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 986, + "end": 1079, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1104, + "end": 1106, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1099, + "end": 1102, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1095, + "end": 1107, + "name": "ADD", + "source": 1 + }, + { + "begin": 1088, + "end": 1107, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1088, + "end": 1107, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1119, + "end": 1329, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 1119, + "end": 1329, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1206, + "end": 1210, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1244, + "end": 1246, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1233, + "end": 1242, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1229, + "end": 1247, + "name": "ADD", + "source": 1 + }, + { + "begin": 1221, + "end": 1247, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1221, + "end": 1247, + "name": "POP", + "source": 1 + }, + { + "begin": 1257, + "end": 1322, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1319, + "end": 1320, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1308, + "end": 1317, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1304, + "end": 1321, + "name": "ADD", + "source": 1 + }, + { + "begin": 1295, + "end": 1301, + "name": "DUP5", + "source": 1 + }, + { + "begin": 1257, + "end": 1322, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 1257, + "end": 1322, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1257, + "end": 1322, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1257, + "end": 1322, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "POP", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "POP", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1335, + "end": 1754, + "name": "tag", + "source": 1, + "value": "37" + }, + { + "begin": 1335, + "end": 1754, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1501, + "end": 1505, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1539, + "end": 1541, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1528, + "end": 1537, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1524, + "end": 1542, + "name": "ADD", + "source": 1 + }, + { + "begin": 1516, + "end": 1542, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1516, + "end": 1542, + "name": "POP", + "source": 1 + }, + { + "begin": 1588, + "end": 1597, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1582, + "end": 1586, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1578, + "end": 1598, + "name": "SUB", + "source": 1 + }, + { + "begin": 1574, + "end": 1575, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1563, + "end": 1572, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1559, + "end": 1576, + "name": "ADD", + "source": 1 + }, + { + "begin": 1552, + "end": 1599, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 1616, + "end": 1747, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1742, + "end": 1746, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1616, + "end": 1747, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 1616, + "end": 1747, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1616, + "end": 1747, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1616, + "end": 1747, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1608, + "end": 1747, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1608, + "end": 1747, + "name": "POP", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "POP", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1841, + "end": 2010, + "name": "tag", + "source": 1, + "value": "60" + }, + { + "begin": 1841, + "end": 2010, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1925, + "end": 1936, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1959, + "end": 1965, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1954, + "end": 1957, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1947, + "end": 1966, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 1999, + "end": 2003, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1994, + "end": 1997, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1990, + "end": 2004, + "name": "ADD", + "source": 1 + }, + { + "begin": 1975, + "end": 2004, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1975, + "end": 2004, + "name": "POP", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "POP", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "POP", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2016, + "end": 2321, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 2016, + "end": 2321, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2056, + "end": 2059, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2075, + "end": 2095, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 2093, + "end": 2094, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2075, + "end": 2095, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2075, + "end": 2095, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2075, + "end": 2095, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 2075, + "end": 2095, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2070, + "end": 2095, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2070, + "end": 2095, + "name": "POP", + "source": 1 + }, + { + "begin": 2109, + "end": 2129, + "name": "PUSH [tag]", + "source": 1, + "value": "73" + }, + { + "begin": 2127, + "end": 2128, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2109, + "end": 2129, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2109, + "end": 2129, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2109, + "end": 2129, + "name": "tag", + "source": 1, + "value": "73" + }, + { + "begin": 2109, + "end": 2129, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2104, + "end": 2129, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2104, + "end": 2129, + "name": "POP", + "source": 1 + }, + { + "begin": 2263, + "end": 2264, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2195, + "end": 2261, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2191, + "end": 2265, + "name": "SUB", + "source": 1 + }, + { + "begin": 2188, + "end": 2189, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2185, + "end": 2266, + "name": "GT", + "source": 1 + }, + { + "begin": 2182, + "end": 2289, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2182, + "end": 2289, + "name": "PUSH [tag]", + "source": 1, + "value": "74" + }, + { + "begin": 2182, + "end": 2289, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2269, + "end": 2287, + "name": "PUSH [tag]", + "source": 1, + "value": "75" + }, + { + "begin": 2269, + "end": 2287, + "name": "PUSH [tag]", + "source": 1, + "value": "76" + }, + { + "begin": 2269, + "end": 2287, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2269, + "end": 2287, + "name": "tag", + "source": 1, + "value": "75" + }, + { + "begin": 2269, + "end": 2287, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2182, + "end": 2289, + "name": "tag", + "source": 1, + "value": "74" + }, + { + "begin": 2182, + "end": 2289, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2313, + "end": 2314, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2310, + "end": 2311, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2306, + "end": 2315, + "name": "ADD", + "source": 1 + }, + { + "begin": 2299, + "end": 2315, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2299, + "end": 2315, + "name": "POP", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "POP", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "POP", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2327, + "end": 2675, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 2327, + "end": 2675, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2367, + "end": 2374, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2390, + "end": 2410, + "name": "PUSH [tag]", + "source": 1, + "value": "78" + }, + { + "begin": 2408, + "end": 2409, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2390, + "end": 2410, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2390, + "end": 2410, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2390, + "end": 2410, + "name": "tag", + "source": 1, + "value": "78" + }, + { + "begin": 2390, + "end": 2410, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2385, + "end": 2410, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2385, + "end": 2410, + "name": "POP", + "source": 1 + }, + { + "begin": 2424, + "end": 2444, + "name": "PUSH [tag]", + "source": 1, + "value": "79" + }, + { + "begin": 2442, + "end": 2443, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2424, + "end": 2444, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2424, + "end": 2444, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2424, + "end": 2444, + "name": "tag", + "source": 1, + "value": "79" + }, + { + "begin": 2424, + "end": 2444, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2419, + "end": 2444, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2419, + "end": 2444, + "name": "POP", + "source": 1 + }, + { + "begin": 2612, + "end": 2613, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2544, + "end": 2610, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2540, + "end": 2614, + "name": "DIV", + "source": 1 + }, + { + "begin": 2537, + "end": 2538, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2534, + "end": 2615, + "name": "GT", + "source": 1 + }, + { + "begin": 2529, + "end": 2530, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2522, + "end": 2531, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2515, + "end": 2532, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2511, + "end": 2616, + "name": "AND", + "source": 1 + }, + { + "begin": 2508, + "end": 2639, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2508, + "end": 2639, + "name": "PUSH [tag]", + "source": 1, + "value": "80" + }, + { + "begin": 2508, + "end": 2639, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2619, + "end": 2637, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2619, + "end": 2637, + "name": "PUSH [tag]", + "source": 1, + "value": "76" + }, + { + "begin": 2619, + "end": 2637, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2619, + "end": 2637, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2619, + "end": 2637, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2508, + "end": 2639, + "name": "tag", + "source": 1, + "value": "80" + }, + { + "begin": 2508, + "end": 2639, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2667, + "end": 2668, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2664, + "end": 2665, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2660, + "end": 2669, + "name": "MUL", + "source": 1 + }, + { + "begin": 2649, + "end": 2669, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2649, + "end": 2669, + "name": "POP", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "POP", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "POP", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2681, + "end": 2771, + "name": "tag", + "source": 1, + "value": "56" + }, + { + "begin": 2681, + "end": 2771, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2715, + "end": 2722, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2758, + "end": 2763, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2751, + "end": 2764, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2744, + "end": 2765, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2733, + "end": 2765, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2733, + "end": 2765, + "name": "POP", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "POP", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2777, + "end": 2854, + "name": "tag", + "source": 1, + "value": "72" + }, + { + "begin": 2777, + "end": 2854, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2814, + "end": 2821, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2843, + "end": 2848, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2832, + "end": 2848, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2832, + "end": 2848, + "name": "POP", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "POP", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2860, + "end": 3040, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 2860, + "end": 3040, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2908, + "end": 2985, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2905, + "end": 2906, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2898, + "end": 2986, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3005, + "end": 3009, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 3002, + "end": 3003, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2995, + "end": 3010, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3029, + "end": 3033, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 3026, + "end": 3027, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3019, + "end": 3034, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3046, + "end": 3226, + "name": "tag", + "source": 1, + "value": "76" + }, + { + "begin": 3046, + "end": 3226, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3094, + "end": 3171, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 3091, + "end": 3092, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3084, + "end": 3172, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3191, + "end": 3195, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 3188, + "end": 3189, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 3181, + "end": 3196, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3215, + "end": 3219, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 3212, + "end": 3213, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3205, + "end": 3220, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3355, + "end": 3472, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 3355, + "end": 3472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3464, + "end": 3465, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3461, + "end": 3462, + "name": "DUP1", + "source": 1 + }, + { + "begin": 3454, + "end": 3466, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3478, + "end": 3647, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 3478, + "end": 3647, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3618, + "end": 3639, + "name": "PUSH", + "source": 1, + "value": "312077656920697320657175616C20746F203100000000000000000000000000" + }, + { + "begin": 3614, + "end": 3615, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3606, + "end": 3612, + "name": "DUP3", + "source": 1 + }, + { + "begin": 3602, + "end": 3616, + "name": "ADD", + "source": 1 + }, + { + "begin": 3595, + "end": 3640, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3478, + "end": 3647, + "name": "POP", + "source": 1 + }, + { + "begin": 3478, + "end": 3647, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 3653, + "end": 3775, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 3653, + "end": 3775, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3726, + "end": 3750, + "name": "PUSH [tag]", + "source": 1, + "value": "91" + }, + { + "begin": 3744, + "end": 3749, + "name": "DUP2", + "source": 1 + }, + { + "begin": 3726, + "end": 3750, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 3726, + "end": 3750, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 3726, + "end": 3750, + "name": "tag", + "source": 1, + "value": "91" + }, + { + "begin": 3726, + "end": 3750, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3719, + "end": 3724, + "name": "DUP2", + "source": 1 + }, + { + "begin": 3716, + "end": 3751, + "name": "EQ", + "source": 1 + }, + { + "begin": 3706, + "end": 3769, + "name": "PUSH [tag]", + "source": 1, + "value": "92" + }, + { + "begin": 3706, + "end": 3769, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 3765, + "end": 3766, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3762, + "end": 3763, + "name": "DUP1", + "source": 1 + }, + { + "begin": 3755, + "end": 3767, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3706, + "end": 3769, + "name": "tag", + "source": 1, + "value": "92" + }, + { + "begin": 3706, + "end": 3769, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3653, + "end": 3775, + "name": "POP", + "source": 1 + }, + { + "begin": 3653, + "end": 3775, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0xbdaf33bd04aca9a02b91c8b5b83177bb5941571cd05ca28444a306a09110fd0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa159b5e26dfa1325daa0e006326ce0dd2d41ccd2e7bcdfd885512cbb0ee5cb\",\"dweb:/ipfs/QmbdRRwzw3mHBcoYDV5aCFen8yGV8KiQDz1L8iuvSYsT8Z\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 89 + ] + }, + "id": 90, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 89, + "linearizedBaseContracts": [ + 89 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 23, + "nodeType": "Block", + "src": "126:258:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "190:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "199:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "190:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "312077656920697320657175616c20746f2031", + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "202:21:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c", + "typeString": "literal_string \"1 wei is equal to 1\"" + }, + "value": "1 wei is equal to 1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c", + "typeString": "literal_string \"1 wei is equal to 1\"" + } + ], + "id": 4, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "182:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10, + "nodeType": "ExpressionStatement", + "src": "182:42:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "284:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "294:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "284:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 11, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "277:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "277:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16, + "nodeType": "ExpressionStatement", + "src": "277:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "360:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "371:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "360:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 17, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "353:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "353:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 22, + "nodeType": "ExpressionStatement", + "src": "353:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 24, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "95:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "111:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "126:0:0" + }, + "scope": 89, + "src": "86:298:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 57, + "nodeType": "Block", + "src": "431:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "466:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "479:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "466:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 27, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "459:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 31, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "459:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32, + "nodeType": "ExpressionStatement", + "src": "459:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "529:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "542:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "529:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 33, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "522:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 37, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "522:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38, + "nodeType": "ExpressionStatement", + "src": "522:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "604:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "615:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "604:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 39, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "597:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "597:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 44, + "nodeType": "ExpressionStatement", + "src": "597:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "672:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "682:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "672:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 45, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "665:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "665:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 50, + "nodeType": "ExpressionStatement", + "src": "665:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "735:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "746:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "735:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 51, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "728:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 55, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "728:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 56, + "nodeType": "ExpressionStatement", + "src": "728:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 58, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "401:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "416:2:0" + }, + "returnParameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [], + "src": "431:0:0" + }, + "scope": 89, + "src": "392:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 87, + "nodeType": "Block", + "src": "844:379:0", + "statements": [ + { + "assignments": [ + 68 + ], + "declarations": [ + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "860:11:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "855:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 67, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "855:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 70, + "initialValue": { + "hexValue": "66616c7365", + "id": 69, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "874:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "855:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 71, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1079:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1079:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 73, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "1098:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 74, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "1106:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1121:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1106:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1098:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1079:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 84, + "nodeType": "IfStatement", + "src": "1075:102:0", + "trueBody": { + "id": 83, + "nodeType": "Block", + "src": "1132:45:0", + "statements": [ + { + "expression": { + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 79, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1147:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1161:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1147:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 82, + "nodeType": "ExpressionStatement", + "src": "1147:18:0" + } + ] + } + }, + { + "expression": { + "id": 85, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1204:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 66, + "id": 86, + "nodeType": "Return", + "src": "1197:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 88, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "778:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 63, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 60, + "mutability": "mutable", + "name": "start", + "nameLocation": "792:5:0", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "787:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 59, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "787:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "804:12:0", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "799:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 61, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "799:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "786:31:0" + }, + "returnParameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 65, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "838:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 64, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "838:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "837:6:0" + }, + "scope": 89, + "src": "769:454:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 90, + "src": "62:1164:0", + "usedErrors": [] + } + ], + "src": "33:1193:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/e7b619caa6f14b38663b18f902577c6e.json b/Ep4/artifacts/build-info/e7b619caa6f14b38663b18f902577c6e.json new file mode 100644 index 0000000..2aadfbe --- /dev/null +++ b/Ep4/artifacts/build-info/e7b619caa6f14b38663b18f902577c6e.json @@ -0,0 +1,6457 @@ +{ + "id": "e7b619caa6f14b38663b18f902577c6e", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n\r\n function etherUnitExample() public pure {\r\n uint a = 5;\r\n if (a == 5) {\r\n // ...\r\n }\r\n\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 1);\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1279 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1279 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":822:1276 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":445:814 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":88:437 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":822:1276 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":891:895 bool */\n 0x00\n /* \"Ep4/example.sol\":908:924 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":927:932 false */\n 0x00\n /* \"Ep4/example.sol\":908:932 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1174:1183 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1159:1171 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1159:1183 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1151:1156 start */\n dup5\n /* \"Ep4/example.sol\":1151:1183 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1132:1147 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1132:1183 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1128:1230 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1214:1218 true */\n 0x01\n /* \"Ep4/example.sol\":1200:1218 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1128:1230 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1257:1268 isValidated */\n dup1\n /* \"Ep4/example.sol\":1250:1268 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":822:1276 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":445:814 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":532:533 1 */\n 0x01\n /* \"Ep4/example.sol\":519:528 1 seconds */\n dup1\n /* \"Ep4/example.sol\":519:533 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":512:534 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":595:605 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":582:591 1 minutes */\n dup1\n /* \"Ep4/example.sol\":582:605 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":575:606 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":668:678 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":657:664 1 hours */\n dup1\n /* \"Ep4/example.sol\":657:678 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":650:679 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":735:743 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":725:731 1 days */\n dup1\n /* \"Ep4/example.sol\":725:743 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":718:744 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":799:805 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":788:795 1 weeks */\n dup1\n /* \"Ep4/example.sol\":788:805 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":781:806 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":445:814 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":88:437 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":139:145 uint a */\n 0x00\n /* \"Ep4/example.sol\":148:149 5 */\n 0x05\n /* \"Ep4/example.sol\":139:149 uint a = 5 */\n swap1\n pop\n /* \"Ep4/example.sol\":275:276 1 */\n 0x01\n /* \"Ep4/example.sol\":266:271 1 wei */\n dup1\n /* \"Ep4/example.sol\":266:276 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":259:277 assert(1 wei == 1) */\n tag_36\n jumpi\n tag_37\n tag_25\n jump\t// in\n tag_37:\n tag_36:\n /* \"Ep4/example.sol\":347:350 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":337:343 1 gwei */\n dup1\n /* \"Ep4/example.sol\":337:350 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":330:351 assert(1 gwei == 1e9) */\n tag_38\n jumpi\n tag_39\n tag_25\n jump\t// in\n tag_39:\n tag_38:\n /* \"Ep4/example.sol\":424:428 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":413:420 1 ether */\n dup1\n /* \"Ep4/example.sol\":413:428 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":406:429 assert(1 ether == 1e18) */\n tag_40\n jumpi\n tag_41\n tag_25\n jump\t// in\n tag_41:\n tag_40:\n /* \"Ep4/example.sol\":128:437 {\r... */\n pop\n /* \"Ep4/example.sol\":88:437 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_43:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_45\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_46\n jump\t// in\n tag_45:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_48\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_49\n tag_50\n jump\t// in\n tag_49:\n /* \"#utility.yul\":245:364 */\n tag_48:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_51\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_43\n jump\t// in\n tag_51:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_52\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_43\n jump\t// in\n tag_52:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_53:\n /* \"#utility.yul\":713:734 */\n tag_55\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_56\n jump\t// in\n tag_55:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_58\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_53\n jump\t// in\n tag_58:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_62\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_63\n jump\t// in\n tag_62:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_64\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_63\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_65\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_66\n tag_67\n jump\t// in\n tag_66:\n /* \"#utility.yul\":1210:1317 */\n tag_65:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_69\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_63\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_70\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_63\n jump\t// in\n tag_70:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_71\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_72\n tag_67\n jump\t// in\n tag_72:\n /* \"#utility.yul\":1536:1667 */\n tag_71:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_56:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_63:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_67:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_50:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_46:\n /* \"#utility.yul\":2579:2603 */\n tag_81\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_63\n jump\t// in\n tag_81:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_82\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_82:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220a61fb673563085c35672104b37bfd5a5a2149710a456238a261bb4cf05abc1cb64736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610355806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610175565b61008a565b60405161006d91906101c4565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e9190610235565b846100a991906101df565b42106100b457600190505b8091505092915050565b600180146100cf576100ce6102a5565b5b603c80146100e0576100df6102a5565b5b610e1080146100f2576100f16102a5565b5b620151808014610105576101046102a5565b5b62093a808014610118576101176102a5565b5b565b60006005905060018014610131576101306102a5565b5b633b9aca008014610145576101446102a5565b5b670de0b6b3a7640000801461015d5761015c6102a5565b5b50565b60008135905061016f81610308565b92915050565b6000806040838503121561018c5761018b610303565b5b600061019a85828601610160565b92505060206101ab85828601610160565b9150509250929050565b6101be8161028f565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60006101ea8261029b565b91506101f58361029b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561022a576102296102d4565b5b828201905092915050565b60006102408261029b565b915061024b8361029b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610284576102836102d4565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6103118161029b565b811461031c57600080fd5b5056fea2646970667358221220a61fb673563085c35672104b37bfd5a5a2149710a456238a261bb4cf05abc1cb64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x235 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1DF JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SWAP1 POP PUSH1 0x1 DUP1 EQ PUSH2 0x131 JUMPI PUSH2 0x130 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x15D JUMPI PUSH2 0x15C PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F DUP2 PUSH2 0x308 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18C JUMPI PUSH2 0x18B PUSH2 0x303 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19A DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1AB DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BE DUP2 PUSH2 0x28F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x1F5 DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x22A JUMPI PUSH2 0x229 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x240 DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x24B DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x284 JUMPI PUSH2 0x283 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x311 DUP2 PUSH2 0x29B JUMP JUMPDEST DUP2 EQ PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 0x1F 0xB6 PUSH20 0x563085C35672104B37BFD5A5A2149710A456238A 0x26 SHL 0xB4 0xCF SDIV 0xAB 0xC1 0xCB PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1217:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_32": { + "entryPoint": 282, + "id": 32, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_66": { + "entryPoint": 190, + "id": 66, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_96": { + "entryPoint": 138, + "id": 96, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 352, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 373, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 437, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 452, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 479, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 565, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 655, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 667, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 677, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 724, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 771, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 776, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610175565b61008a565b60405161006d91906101c4565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e9190610235565b846100a991906101df565b42106100b457600190505b8091505092915050565b600180146100cf576100ce6102a5565b5b603c80146100e0576100df6102a5565b5b610e1080146100f2576100f16102a5565b5b620151808014610105576101046102a5565b5b62093a808014610118576101176102a5565b5b565b60006005905060018014610131576101306102a5565b5b633b9aca008014610145576101446102a5565b5b670de0b6b3a7640000801461015d5761015c6102a5565b5b50565b60008135905061016f81610308565b92915050565b6000806040838503121561018c5761018b610303565b5b600061019a85828601610160565b92505060206101ab85828601610160565b9150509250929050565b6101be8161028f565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60006101ea8261029b565b91506101f58361029b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561022a576102296102d4565b5b828201905092915050565b60006102408261029b565b915061024b8361029b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610284576102836102d4565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6103118161029b565b811461031c57600080fd5b5056fea2646970667358221220a61fb673563085c35672104b37bfd5a5a2149710a456238a261bb4cf05abc1cb64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x235 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1DF JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SWAP1 POP PUSH1 0x1 DUP1 EQ PUSH2 0x131 JUMPI PUSH2 0x130 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x15D JUMPI PUSH2 0x15C PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F DUP2 PUSH2 0x308 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18C JUMPI PUSH2 0x18B PUSH2 0x303 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19A DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1AB DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BE DUP2 PUSH2 0x28F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x1F5 DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x22A JUMPI PUSH2 0x229 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x240 DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x24B DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x284 JUMPI PUSH2 0x283 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x311 DUP2 PUSH2 0x29B JUMP JUMPDEST DUP2 EQ PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 0x1F 0xB6 PUSH20 0x563085C35672104B37BFD5A5A2149710A456238A 0x26 SHL 0xB4 0xCF SDIV 0xAB 0xC1 0xCB PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1217:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;822:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;445:369;;;:::i;:::-;;88:349;;;:::i;:::-;;822:454;891:4;908:16;927:5;908:24;;1174:9;1159:12;:24;;;;:::i;:::-;1151:5;:32;;;;:::i;:::-;1132:15;:51;1128:102;;1214:4;1200:18;;1128:102;1257:11;1250:18;;;822:454;;;;:::o;445:369::-;532:1;519:9;:14;512:22;;;;:::i;:::-;;595:10;582:9;:23;575:31;;;;:::i;:::-;;668:10;657:7;:21;650:29;;;;:::i;:::-;;735:8;725:6;:18;718:26;;;;:::i;:::-;;799:6;788:7;:17;781:25;;;;:::i;:::-;;445:369::o;88:349::-;139:6;148:1;139:10;;275:1;266:5;:10;259:18;;;;:::i;:::-;;347:3;337:6;:13;330:21;;;;:::i;:::-;;424:4;413:7;:15;406:23;;;;:::i;:::-;;128:309;88:349::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "170600", + "executionCost": "214", + "totalCost": "170814" + }, + "external": { + "etherUnitExample()": "248", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1279, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1279, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1279, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1279, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1279, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1279, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1279, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220a61fb673563085c35672104b37bfd5a5a2149710a456238a261bb4cf05abc1cb64736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1279, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1279, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1279, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1279, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1279, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1279, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1279, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1279, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1279, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1279, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1279, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1279, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1279, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1279, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1279, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1279, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1279, + "name": "REVERT", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 822, + "end": 1276, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 822, + "end": 1276, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 822, + "end": 1276, + "name": "DUP1", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "SUB", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "DUP2", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "ADD", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 822, + "end": 1276, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 822, + "end": 1276, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 822, + "end": 1276, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 822, + "end": 1276, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 822, + "end": 1276, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 822, + "end": 1276, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 822, + "end": 1276, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 822, + "end": 1276, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 822, + "end": 1276, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 822, + "end": 1276, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 822, + "end": 1276, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 822, + "end": 1276, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 822, + "end": 1276, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "DUP1", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "SUB", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "RETURN", + "source": 0 + }, + { + "begin": 445, + "end": 814, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 445, + "end": 814, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 445, + "end": 814, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 445, + "end": 814, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 445, + "end": 814, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 445, + "end": 814, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 445, + "end": 814, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 445, + "end": 814, + "name": "STOP", + "source": 0 + }, + { + "begin": 88, + "end": 437, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 88, + "end": 437, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 437, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 437, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 437, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 88, + "end": 437, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 437, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 437, + "name": "STOP", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 822, + "end": 1276, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 891, + "end": 895, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 908, + "end": 924, + "name": "DUP1", + "source": 0 + }, + { + "begin": 927, + "end": 932, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 908, + "end": 932, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 908, + "end": 932, + "name": "POP", + "source": 0 + }, + { + "begin": 1174, + "end": 1183, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1159, + "end": 1171, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1159, + "end": 1183, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1159, + "end": 1183, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1159, + "end": 1183, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1159, + "end": 1183, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1159, + "end": 1183, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1159, + "end": 1183, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1159, + "end": 1183, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1151, + "end": 1156, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1151, + "end": 1183, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1151, + "end": 1183, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1151, + "end": 1183, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1151, + "end": 1183, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1151, + "end": 1183, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1151, + "end": 1183, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1151, + "end": 1183, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1132, + "end": 1147, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1132, + "end": 1183, + "name": "LT", + "source": 0 + }, + { + "begin": 1128, + "end": 1230, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1128, + "end": 1230, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1214, + "end": 1218, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1200, + "end": 1218, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1200, + "end": 1218, + "name": "POP", + "source": 0 + }, + { + "begin": 1128, + "end": 1230, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1128, + "end": 1230, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1257, + "end": 1268, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1250, + "end": 1268, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1250, + "end": 1268, + "name": "POP", + "source": 0 + }, + { + "begin": 1250, + "end": 1268, + "name": "POP", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "POP", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "POP", + "source": 0 + }, + { + "begin": 822, + "end": 1276, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 445, + "end": 814, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 445, + "end": 814, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 532, + "end": 533, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 519, + "end": 528, + "name": "DUP1", + "source": 0 + }, + { + "begin": 519, + "end": 533, + "name": "EQ", + "source": 0 + }, + { + "begin": 512, + "end": 534, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 512, + "end": 534, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 512, + "end": 534, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 512, + "end": 534, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 512, + "end": 534, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 512, + "end": 534, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 512, + "end": 534, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 512, + "end": 534, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 512, + "end": 534, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 595, + "end": 605, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 582, + "end": 591, + "name": "DUP1", + "source": 0 + }, + { + "begin": 582, + "end": 605, + "name": "EQ", + "source": 0 + }, + { + "begin": 575, + "end": 606, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 575, + "end": 606, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 575, + "end": 606, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 575, + "end": 606, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 575, + "end": 606, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 575, + "end": 606, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 575, + "end": 606, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 575, + "end": 606, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 575, + "end": 606, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 668, + "end": 678, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 657, + "end": 664, + "name": "DUP1", + "source": 0 + }, + { + "begin": 657, + "end": 678, + "name": "EQ", + "source": 0 + }, + { + "begin": 650, + "end": 679, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 650, + "end": 679, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 650, + "end": 679, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 650, + "end": 679, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 650, + "end": 679, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 650, + "end": 679, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 650, + "end": 679, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 650, + "end": 679, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 650, + "end": 679, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 735, + "end": 743, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 725, + "end": 731, + "name": "DUP1", + "source": 0 + }, + { + "begin": 725, + "end": 743, + "name": "EQ", + "source": 0 + }, + { + "begin": 718, + "end": 744, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 718, + "end": 744, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 718, + "end": 744, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 718, + "end": 744, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 718, + "end": 744, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 718, + "end": 744, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 718, + "end": 744, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 718, + "end": 744, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 718, + "end": 744, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 799, + "end": 805, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 788, + "end": 795, + "name": "DUP1", + "source": 0 + }, + { + "begin": 788, + "end": 805, + "name": "EQ", + "source": 0 + }, + { + "begin": 781, + "end": 806, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 781, + "end": 806, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 781, + "end": 806, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 781, + "end": 806, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 781, + "end": 806, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 781, + "end": 806, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 781, + "end": 806, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 781, + "end": 806, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 781, + "end": 806, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 445, + "end": 814, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 88, + "end": 437, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 437, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 139, + "end": 145, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 148, + "end": 149, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 139, + "end": 149, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 139, + "end": 149, + "name": "POP", + "source": 0 + }, + { + "begin": 275, + "end": 276, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 266, + "end": 271, + "name": "DUP1", + "source": 0 + }, + { + "begin": 266, + "end": 276, + "name": "EQ", + "source": 0 + }, + { + "begin": 259, + "end": 277, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 259, + "end": 277, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 259, + "end": 277, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 259, + "end": 277, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 259, + "end": 277, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 259, + "end": 277, + "name": "tag", + "source": 0, + "value": "37" + }, + { + "begin": 259, + "end": 277, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 259, + "end": 277, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 259, + "end": 277, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 347, + "end": 350, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 337, + "end": 343, + "name": "DUP1", + "source": 0 + }, + { + "begin": 337, + "end": 350, + "name": "EQ", + "source": 0 + }, + { + "begin": 330, + "end": 351, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 330, + "end": 351, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 330, + "end": 351, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 330, + "end": 351, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 330, + "end": 351, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 330, + "end": 351, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 330, + "end": 351, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 330, + "end": 351, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 330, + "end": 351, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 424, + "end": 428, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 413, + "end": 420, + "name": "DUP1", + "source": 0 + }, + { + "begin": 413, + "end": 428, + "name": "EQ", + "source": 0 + }, + { + "begin": 406, + "end": 429, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 406, + "end": 429, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 406, + "end": 429, + "name": "PUSH [tag]", + "source": 0, + "value": "41" + }, + { + "begin": 406, + "end": 429, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 406, + "end": 429, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 406, + "end": 429, + "name": "tag", + "source": 0, + "value": "41" + }, + { + "begin": 406, + "end": 429, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 406, + "end": 429, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 406, + "end": 429, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 128, + "end": 437, + "name": "POP", + "source": 0 + }, + { + "begin": 88, + "end": 437, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "56" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "58" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "70" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "70" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "72" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "56" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "67" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "82" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "82" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0x2baa7041984e09f881fb86eda08db567168df914b774c187407866ad0fc7d5ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1aaadde3a8251aa9147a7662a2fc2ee6ac63a85abc88fe321e06de60f1f470ee\",\"dweb:/ipfs/QmXR4TjrFPrXsHPMfrmQZRvaHDUw8hLKPRPhiufsGfckdH\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 97 + ] + }, + "id": 98, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 97, + "linearizedBaseContracts": [ + 97 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 31, + "nodeType": "Block", + "src": "128:309:0", + "statements": [ + { + "assignments": [ + 5 + ], + "declarations": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "a", + "nameLocation": "144:1:0", + "nodeType": "VariableDeclaration", + "scope": 31, + "src": "139:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "139:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7, + "initialValue": { + "hexValue": "35", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "148:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "nodeType": "VariableDeclarationStatement", + "src": "139:10:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5, + "src": "164:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "35", + "id": 9, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "169:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "164:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12, + "nodeType": "IfStatement", + "src": "160:44:0", + "trueBody": { + "id": 11, + "nodeType": "Block", + "src": "172:32:0", + "statements": [] + } + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "266:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "275:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "266:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "259:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "259:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18, + "nodeType": "ExpressionStatement", + "src": "259:18:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "337:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "347:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "337:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 19, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "330:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "330:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 24, + "nodeType": "ExpressionStatement", + "src": "330:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 26, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "413:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "424:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "413:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 25, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "406:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "406:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 30, + "nodeType": "ExpressionStatement", + "src": "406:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 32, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "97:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "128:0:0" + }, + "scope": 97, + "src": "88:349:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 65, + "nodeType": "Block", + "src": "484:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "519:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 37, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "532:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "519:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 35, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "512:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "512:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 40, + "nodeType": "ExpressionStatement", + "src": "512:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 44, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "582:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "595:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "582:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 41, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "575:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "575:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 46, + "nodeType": "ExpressionStatement", + "src": "575:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 50, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "657:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "668:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "657:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 47, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "650:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "650:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 52, + "nodeType": "ExpressionStatement", + "src": "650:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "725:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 55, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "735:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "725:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 53, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "718:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 57, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "718:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 58, + "nodeType": "ExpressionStatement", + "src": "718:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "788:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 61, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "799:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "788:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 59, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "781:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "781:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 64, + "nodeType": "ExpressionStatement", + "src": "781:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 66, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "454:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [], + "src": "469:2:0" + }, + "returnParameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [], + "src": "484:0:0" + }, + "scope": 97, + "src": "445:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 95, + "nodeType": "Block", + "src": "897:379:0", + "statements": [ + { + "assignments": [ + 76 + ], + "declarations": [ + { + "constant": false, + "id": 76, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "913:11:0", + "nodeType": "VariableDeclaration", + "scope": 95, + "src": "908:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 75, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "908:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 78, + "initialValue": { + "hexValue": "66616c7365", + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "927:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "908:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 86, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 79, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1132:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1132:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 85, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 81, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1151:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 82, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 70, + "src": "1159:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1174:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1159:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1151:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1132:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 92, + "nodeType": "IfStatement", + "src": "1128:102:0", + "trueBody": { + "id": 91, + "nodeType": "Block", + "src": "1185:45:0", + "statements": [ + { + "expression": { + "id": 89, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 87, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 76, + "src": "1200:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 88, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1214:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1200:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 90, + "nodeType": "ExpressionStatement", + "src": "1200:18:0" + } + ] + } + }, + { + "expression": { + "id": 93, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 76, + "src": "1257:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 74, + "id": 94, + "nodeType": "Return", + "src": "1250:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 96, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "831:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 71, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "start", + "nameLocation": "845:5:0", + "nodeType": "VariableDeclaration", + "scope": 96, + "src": "840:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 67, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "840:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 70, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "857:12:0", + "nodeType": "VariableDeclaration", + "scope": 96, + "src": "852:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 69, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "852:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "839:31:0" + }, + "returnParameters": { + "id": 74, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 73, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 96, + "src": "891:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 72, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "891:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "890:6:0" + }, + "scope": 97, + "src": "822:454:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 98, + "src": "62:1217:0", + "usedErrors": [] + } + ], + "src": "33:1246:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/f06813ee241081a99fac6ef372fd52f5.json b/Ep4/artifacts/build-info/f06813ee241081a99fac6ef372fd52f5.json new file mode 100644 index 0000000..496cea8 --- /dev/null +++ b/Ep4/artifacts/build-info/f06813ee241081a99fac6ef372fd52f5.json @@ -0,0 +1,6415 @@ +{ + "id": "f06813ee241081a99fac6ef372fd52f5", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n\r\n function etherUnitExample() public pure {\r\n uint a = 5;\r\n\r\n // wei是貨幣中的最小單位\r\n assert(1 wei == 1);\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1225 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1225 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":768:1222 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":391:760 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":88:383 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":768:1222 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":837:841 bool */\n 0x00\n /* \"Ep4/example.sol\":854:870 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":873:878 false */\n 0x00\n /* \"Ep4/example.sol\":854:878 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1120:1129 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1105:1117 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1105:1129 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1097:1102 start */\n dup5\n /* \"Ep4/example.sol\":1097:1129 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1078:1093 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1078:1129 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1074:1176 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1160:1164 true */\n 0x01\n /* \"Ep4/example.sol\":1146:1164 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1074:1176 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1203:1214 isValidated */\n dup1\n /* \"Ep4/example.sol\":1196:1214 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":768:1222 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":391:760 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":478:479 1 */\n 0x01\n /* \"Ep4/example.sol\":465:474 1 seconds */\n dup1\n /* \"Ep4/example.sol\":465:479 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":458:480 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":541:551 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":528:537 1 minutes */\n dup1\n /* \"Ep4/example.sol\":528:551 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":521:552 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":614:624 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":603:610 1 hours */\n dup1\n /* \"Ep4/example.sol\":603:624 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":596:625 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":681:689 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":671:677 1 days */\n dup1\n /* \"Ep4/example.sol\":671:689 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":664:690 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":745:751 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":734:741 1 weeks */\n dup1\n /* \"Ep4/example.sol\":734:751 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":727:752 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":391:760 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":88:383 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":139:145 uint a */\n 0x00\n /* \"Ep4/example.sol\":148:149 5 */\n 0x05\n /* \"Ep4/example.sol\":139:149 uint a = 5 */\n swap1\n pop\n /* \"Ep4/example.sol\":221:222 1 */\n 0x01\n /* \"Ep4/example.sol\":212:217 1 wei */\n dup1\n /* \"Ep4/example.sol\":212:222 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":205:223 assert(1 wei == 1) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":293:296 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":283:289 1 gwei */\n dup1\n /* \"Ep4/example.sol\":283:296 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":276:297 assert(1 gwei == 1e9) */\n tag_37\n jumpi\n tag_38\n tag_25\n jump\t// in\n tag_38:\n tag_37:\n /* \"Ep4/example.sol\":370:374 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":359:366 1 ether */\n dup1\n /* \"Ep4/example.sol\":359:374 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":352:375 assert(1 ether == 1e18) */\n tag_39\n jumpi\n tag_40\n tag_25\n jump\t// in\n tag_40:\n tag_39:\n /* \"Ep4/example.sol\":128:383 {\r... */\n pop\n /* \"Ep4/example.sol\":88:383 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_42:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_44\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_45\n jump\t// in\n tag_44:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_47\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_48\n tag_49\n jump\t// in\n tag_48:\n /* \"#utility.yul\":245:364 */\n tag_47:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_50\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_42\n jump\t// in\n tag_50:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_51\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_42\n jump\t// in\n tag_51:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_52:\n /* \"#utility.yul\":713:734 */\n tag_54\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_55\n jump\t// in\n tag_54:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_57\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_52\n jump\t// in\n tag_57:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_61\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_63\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_62\n jump\t// in\n tag_63:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_64\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_65\n tag_66\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1210:1317 */\n tag_64:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_68\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_62\n jump\t// in\n tag_68:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_69\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_62\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_70\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_71\n tag_66\n jump\t// in\n tag_71:\n /* \"#utility.yul\":1536:1667 */\n tag_70:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_55:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_62:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_66:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_49:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_45:\n /* \"#utility.yul\":2579:2603 */\n tag_80\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_62\n jump\t// in\n tag_80:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_81\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_81:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220302f0b6062f9115509727c9c64441b021be48ec3db0abf1586f284ccb109447864736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610355806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610175565b61008a565b60405161006d91906101c4565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e9190610235565b846100a991906101df565b42106100b457600190505b8091505092915050565b600180146100cf576100ce6102a5565b5b603c80146100e0576100df6102a5565b5b610e1080146100f2576100f16102a5565b5b620151808014610105576101046102a5565b5b62093a808014610118576101176102a5565b5b565b60006005905060018014610131576101306102a5565b5b633b9aca008014610145576101446102a5565b5b670de0b6b3a7640000801461015d5761015c6102a5565b5b50565b60008135905061016f81610308565b92915050565b6000806040838503121561018c5761018b610303565b5b600061019a85828601610160565b92505060206101ab85828601610160565b9150509250929050565b6101be8161028f565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60006101ea8261029b565b91506101f58361029b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561022a576102296102d4565b5b828201905092915050565b60006102408261029b565b915061024b8361029b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610284576102836102d4565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6103118161029b565b811461031c57600080fd5b5056fea2646970667358221220302f0b6062f9115509727c9c64441b021be48ec3db0abf1586f284ccb109447864736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x235 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1DF JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SWAP1 POP PUSH1 0x1 DUP1 EQ PUSH2 0x131 JUMPI PUSH2 0x130 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x15D JUMPI PUSH2 0x15C PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F DUP2 PUSH2 0x308 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18C JUMPI PUSH2 0x18B PUSH2 0x303 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19A DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1AB DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BE DUP2 PUSH2 0x28F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x1F5 DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x22A JUMPI PUSH2 0x229 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x240 DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x24B DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x284 JUMPI PUSH2 0x283 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x311 DUP2 PUSH2 0x29B JUMP JUMPDEST DUP2 EQ PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDRESS 0x2F SIGNEXTEND PUSH1 0x62 0xF9 GT SSTORE MULMOD PUSH19 0x7C9C64441B021BE48EC3DB0ABF1586F284CCB1 MULMOD DIFFICULTY PUSH25 0x64736F6C634300080700330000000000000000000000000000 ", + "sourceMap": "62:1163:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_27": { + "entryPoint": 282, + "id": 27, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_61": { + "entryPoint": 190, + "id": 61, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_91": { + "entryPoint": 138, + "id": 91, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 352, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 373, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 437, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 452, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 479, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 565, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 655, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 667, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 677, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 724, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 771, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 776, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b9190610175565b61008a565b60405161006d91906101c4565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e9190610235565b846100a991906101df565b42106100b457600190505b8091505092915050565b600180146100cf576100ce6102a5565b5b603c80146100e0576100df6102a5565b5b610e1080146100f2576100f16102a5565b5b620151808014610105576101046102a5565b5b62093a808014610118576101176102a5565b5b565b60006005905060018014610131576101306102a5565b5b633b9aca008014610145576101446102a5565b5b670de0b6b3a7640000801461015d5761015c6102a5565b5b50565b60008135905061016f81610308565b92915050565b6000806040838503121561018c5761018b610303565b5b600061019a85828601610160565b92505060206101ab85828601610160565b9150509250929050565b6101be8161028f565b82525050565b60006020820190506101d960008301846101b5565b92915050565b60006101ea8261029b565b91506101f58361029b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561022a576102296102d4565b5b828201905092915050565b60006102408261029b565b915061024b8361029b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610284576102836102d4565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6103118161029b565b811461031c57600080fd5b5056fea2646970667358221220302f0b6062f9115509727c9c64441b021be48ec3db0abf1586f284ccb109447864736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x235 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1DF JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 SWAP1 POP PUSH1 0x1 DUP1 EQ PUSH2 0x131 JUMPI PUSH2 0x130 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x15D JUMPI PUSH2 0x15C PUSH2 0x2A5 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F DUP2 PUSH2 0x308 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18C JUMPI PUSH2 0x18B PUSH2 0x303 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19A DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1AB DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BE DUP2 PUSH2 0x28F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x1F5 DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x22A JUMPI PUSH2 0x229 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x240 DUP3 PUSH2 0x29B JUMP JUMPDEST SWAP2 POP PUSH2 0x24B DUP4 PUSH2 0x29B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x284 JUMPI PUSH2 0x283 PUSH2 0x2D4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x311 DUP2 PUSH2 0x29B JUMP JUMPDEST DUP2 EQ PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDRESS 0x2F SIGNEXTEND PUSH1 0x62 0xF9 GT SSTORE MULMOD PUSH19 0x7C9C64441B021BE48EC3DB0ABF1586F284CCB1 MULMOD DIFFICULTY PUSH25 0x64736F6C634300080700330000000000000000000000000000 ", + "sourceMap": "62:1163:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;768:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;391:369;;;:::i;:::-;;88:295;;;:::i;:::-;;768:454;837:4;854:16;873:5;854:24;;1120:9;1105:12;:24;;;;:::i;:::-;1097:5;:32;;;;:::i;:::-;1078:15;:51;1074:102;;1160:4;1146:18;;1074:102;1203:11;1196:18;;;768:454;;;;:::o;391:369::-;478:1;465:9;:14;458:22;;;;:::i;:::-;;541:10;528:9;:23;521:31;;;;:::i;:::-;;614:10;603:7;:21;596:29;;;;:::i;:::-;;681:8;671:6;:18;664:26;;;;:::i;:::-;;745:6;734:7;:17;727:25;;;;:::i;:::-;;391:369::o;88:295::-;139:6;148:1;139:10;;221:1;212:5;:10;205:18;;;;:::i;:::-;;293:3;283:6;:13;276:21;;;;:::i;:::-;;370:4;359:7;:15;352:23;;;;:::i;:::-;;128:255;88:295::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "170600", + "executionCost": "214", + "totalCost": "170814" + }, + "external": { + "etherUnitExample()": "248", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1225, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1225, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1225, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1225, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1225, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1225, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1225, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220302f0b6062f9115509727c9c64441b021be48ec3db0abf1586f284ccb109447864736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1225, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1225, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1225, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1225, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1225, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1225, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1225, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1225, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1225, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1225, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1225, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1225, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1225, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1225, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1225, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1225, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1225, + "name": "REVERT", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 768, + "end": 1222, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 768, + "end": 1222, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 768, + "end": 1222, + "name": "DUP1", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "SUB", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "DUP2", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "ADD", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 768, + "end": 1222, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 768, + "end": 1222, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 768, + "end": 1222, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 768, + "end": 1222, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 768, + "end": 1222, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 768, + "end": 1222, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 768, + "end": 1222, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 768, + "end": 1222, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 768, + "end": 1222, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 768, + "end": 1222, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 768, + "end": 1222, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 768, + "end": 1222, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 768, + "end": 1222, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "DUP1", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "SUB", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "RETURN", + "source": 0 + }, + { + "begin": 391, + "end": 760, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 391, + "end": 760, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 391, + "end": 760, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 391, + "end": 760, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 391, + "end": 760, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 391, + "end": 760, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 391, + "end": 760, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 391, + "end": 760, + "name": "STOP", + "source": 0 + }, + { + "begin": 88, + "end": 383, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 88, + "end": 383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 383, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 383, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 383, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 88, + "end": 383, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 88, + "end": 383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 383, + "name": "STOP", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 768, + "end": 1222, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 837, + "end": 841, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 854, + "end": 870, + "name": "DUP1", + "source": 0 + }, + { + "begin": 873, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 854, + "end": 878, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 854, + "end": 878, + "name": "POP", + "source": 0 + }, + { + "begin": 1120, + "end": 1129, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1105, + "end": 1117, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1105, + "end": 1129, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1105, + "end": 1129, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1105, + "end": 1129, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1105, + "end": 1129, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1105, + "end": 1129, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1105, + "end": 1129, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1105, + "end": 1129, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1097, + "end": 1102, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1097, + "end": 1129, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1097, + "end": 1129, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1097, + "end": 1129, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1097, + "end": 1129, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1097, + "end": 1129, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1097, + "end": 1129, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1097, + "end": 1129, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1078, + "end": 1093, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1078, + "end": 1129, + "name": "LT", + "source": 0 + }, + { + "begin": 1074, + "end": 1176, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1074, + "end": 1176, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1160, + "end": 1164, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1146, + "end": 1164, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1146, + "end": 1164, + "name": "POP", + "source": 0 + }, + { + "begin": 1074, + "end": 1176, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1074, + "end": 1176, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1203, + "end": 1214, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1196, + "end": 1214, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1196, + "end": 1214, + "name": "POP", + "source": 0 + }, + { + "begin": 1196, + "end": 1214, + "name": "POP", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "POP", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "POP", + "source": 0 + }, + { + "begin": 768, + "end": 1222, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 391, + "end": 760, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 391, + "end": 760, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 478, + "end": 479, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 465, + "end": 474, + "name": "DUP1", + "source": 0 + }, + { + "begin": 465, + "end": 479, + "name": "EQ", + "source": 0 + }, + { + "begin": 458, + "end": 480, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 458, + "end": 480, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 458, + "end": 480, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 458, + "end": 480, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 458, + "end": 480, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 458, + "end": 480, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 458, + "end": 480, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 458, + "end": 480, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 458, + "end": 480, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 541, + "end": 551, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 528, + "end": 537, + "name": "DUP1", + "source": 0 + }, + { + "begin": 528, + "end": 551, + "name": "EQ", + "source": 0 + }, + { + "begin": 521, + "end": 552, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 521, + "end": 552, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 521, + "end": 552, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 521, + "end": 552, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 521, + "end": 552, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 521, + "end": 552, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 521, + "end": 552, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 521, + "end": 552, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 521, + "end": 552, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 614, + "end": 624, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 603, + "end": 610, + "name": "DUP1", + "source": 0 + }, + { + "begin": 603, + "end": 624, + "name": "EQ", + "source": 0 + }, + { + "begin": 596, + "end": 625, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 596, + "end": 625, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 596, + "end": 625, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 596, + "end": 625, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 596, + "end": 625, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 596, + "end": 625, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 596, + "end": 625, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 596, + "end": 625, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 596, + "end": 625, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 681, + "end": 689, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 671, + "end": 677, + "name": "DUP1", + "source": 0 + }, + { + "begin": 671, + "end": 689, + "name": "EQ", + "source": 0 + }, + { + "begin": 664, + "end": 690, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 664, + "end": 690, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 664, + "end": 690, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 664, + "end": 690, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 664, + "end": 690, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 664, + "end": 690, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 664, + "end": 690, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 664, + "end": 690, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 664, + "end": 690, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 745, + "end": 751, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 734, + "end": 741, + "name": "DUP1", + "source": 0 + }, + { + "begin": 734, + "end": 751, + "name": "EQ", + "source": 0 + }, + { + "begin": 727, + "end": 752, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 727, + "end": 752, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 727, + "end": 752, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 727, + "end": 752, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 727, + "end": 752, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 727, + "end": 752, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 727, + "end": 752, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 727, + "end": 752, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 727, + "end": 752, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 391, + "end": 760, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 88, + "end": 383, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 88, + "end": 383, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 139, + "end": 145, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 148, + "end": 149, + "name": "PUSH", + "source": 0, + "value": "5" + }, + { + "begin": 139, + "end": 149, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 139, + "end": 149, + "name": "POP", + "source": 0 + }, + { + "begin": 221, + "end": 222, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 212, + "end": 217, + "name": "DUP1", + "source": 0 + }, + { + "begin": 212, + "end": 222, + "name": "EQ", + "source": 0 + }, + { + "begin": 205, + "end": 223, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 205, + "end": 223, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 205, + "end": 223, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 205, + "end": 223, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 205, + "end": 223, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 205, + "end": 223, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 205, + "end": 223, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 205, + "end": 223, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 205, + "end": 223, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 293, + "end": 296, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 283, + "end": 289, + "name": "DUP1", + "source": 0 + }, + { + "begin": 283, + "end": 296, + "name": "EQ", + "source": 0 + }, + { + "begin": 276, + "end": 297, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 276, + "end": 297, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 276, + "end": 297, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 276, + "end": 297, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 276, + "end": 297, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 276, + "end": 297, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 276, + "end": 297, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 276, + "end": 297, + "name": "tag", + "source": 0, + "value": "37" + }, + { + "begin": 276, + "end": 297, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 370, + "end": 374, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 359, + "end": 366, + "name": "DUP1", + "source": 0 + }, + { + "begin": 359, + "end": 374, + "name": "EQ", + "source": 0 + }, + { + "begin": 352, + "end": 375, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 352, + "end": 375, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 352, + "end": 375, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 352, + "end": 375, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 352, + "end": 375, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 352, + "end": 375, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 352, + "end": 375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 352, + "end": 375, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 352, + "end": 375, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 128, + "end": 383, + "name": "POP", + "source": 0 + }, + { + "begin": 88, + "end": 383, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "42" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "42" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "54" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "54" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "63" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "63" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "68" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "68" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "69" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "69" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "70" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "80" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "80" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0x811cffafd6ce37ebc555e9cc28dca0079e37a8081b1227eddaaf3f4854cf18fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb080c740b1d4fb134c925b6f72a554b3f3d85af61be12d15e8d4209000761e1\",\"dweb:/ipfs/QmbDDmY6JkYrVAqGjTbYNoDaGgZeR8xoF6feEPiUTbTeFM\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "errors": [ + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> Ep4/example.sol:7:9:\n |\n7 | uint a = 5;\n | ^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 145, + "file": "Ep4/example.sol", + "start": 139 + }, + "type": "Warning" + } + ], + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 92 + ] + }, + "id": 93, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 92, + "linearizedBaseContracts": [ + 92 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 26, + "nodeType": "Block", + "src": "128:255:0", + "statements": [ + { + "assignments": [ + 5 + ], + "declarations": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "a", + "nameLocation": "144:1:0", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "139:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "139:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7, + "initialValue": { + "hexValue": "35", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "148:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "nodeType": "VariableDeclarationStatement", + "src": "139:10:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "212:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 10, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "221:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "212:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 8, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "205:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "205:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13, + "nodeType": "ExpressionStatement", + "src": "205:18:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "283:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "293:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "283:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "276:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "276:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19, + "nodeType": "ExpressionStatement", + "src": "276:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "359:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "370:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "359:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 20, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "352:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "352:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25, + "nodeType": "ExpressionStatement", + "src": "352:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 27, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "97:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "128:0:0" + }, + "scope": 92, + "src": "88:295:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 60, + "nodeType": "Block", + "src": "430:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 31, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "465:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 32, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "478:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "465:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 30, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "458:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "458:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 35, + "nodeType": "ExpressionStatement", + "src": "458:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 37, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "528:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "541:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "528:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 36, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "521:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "521:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 41, + "nodeType": "ExpressionStatement", + "src": "521:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "603:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 44, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "614:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "603:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 42, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "596:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "596:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 47, + "nodeType": "ExpressionStatement", + "src": "596:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "671:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 50, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "681:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "671:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 48, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "664:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "664:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 53, + "nodeType": "ExpressionStatement", + "src": "664:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 57, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 55, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "734:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "745:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "734:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 54, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "727:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 58, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "727:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 59, + "nodeType": "ExpressionStatement", + "src": "727:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 61, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "400:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [], + "src": "415:2:0" + }, + "returnParameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [], + "src": "430:0:0" + }, + "scope": 92, + "src": "391:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 90, + "nodeType": "Block", + "src": "843:379:0", + "statements": [ + { + "assignments": [ + 71 + ], + "declarations": [ + { + "constant": false, + "id": 71, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "859:11:0", + "nodeType": "VariableDeclaration", + "scope": 90, + "src": "854:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 70, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "854:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 73, + "initialValue": { + "hexValue": "66616c7365", + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "873:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "854:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 74, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1078:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1078:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 76, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 63, + "src": "1097:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 77, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "1105:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1120:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1105:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1097:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1078:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 87, + "nodeType": "IfStatement", + "src": "1074:102:0", + "trueBody": { + "id": 86, + "nodeType": "Block", + "src": "1131:45:0", + "statements": [ + { + "expression": { + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 82, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "1146:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1160:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1146:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 85, + "nodeType": "ExpressionStatement", + "src": "1146:18:0" + } + ] + } + }, + { + "expression": { + "id": 88, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "1203:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 69, + "id": 89, + "nodeType": "Return", + "src": "1196:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 91, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "777:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 63, + "mutability": "mutable", + "name": "start", + "nameLocation": "791:5:0", + "nodeType": "VariableDeclaration", + "scope": 91, + "src": "786:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 62, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "786:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "803:12:0", + "nodeType": "VariableDeclaration", + "scope": 91, + "src": "798:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 64, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "798:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "785:31:0" + }, + "returnParameters": { + "id": 69, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 91, + "src": "837:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 67, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "837:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "836:6:0" + }, + "scope": 92, + "src": "768:454:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 93, + "src": "62:1163:0", + "usedErrors": [] + } + ], + "src": "33:1192:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/f2327e891c574040992512a7db6f0d74.json b/Ep4/artifacts/build-info/f2327e891c574040992512a7db6f0d74.json new file mode 100644 index 0000000..c724807 --- /dev/null +++ b/Ep4/artifacts/build-info/f2327e891c574040992512a7db6f0d74.json @@ -0,0 +1,7380 @@ +{ + "id": "f2327e891c574040992512a7db6f0d74", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n function etherUnitExample() public pure {\r\n\r\n // wei是貨幣中的最小單位\r\n require(1 wei == 12, \"1 wei is equal to 1\");\r\n\r\n // 1 gwei is equal to 10^9 wei\r\n assert(1 gwei == 1e9);\r\n\r\n // 1 ether is equal to 10^18 wei\r\n assert(1 ether == 1e18);\r\n }\r\n\r\n function timeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\r\n\t\t/// 區塊的時間戳記至少在3秒以前, 才算有效。\r\n /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "etherUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "timeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:1227 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:1227 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x24475f4c\n eq\n tag_4\n jumpi\n dup1\n 0x97e82183\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":770:1224 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":393:762 function timeUnitExample() public pure {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":86:385 function etherUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":770:1224 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":839:843 bool */\n 0x00\n /* \"Ep4/example.sol\":856:872 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":875:880 false */\n 0x00\n /* \"Ep4/example.sol\":856:880 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":1122:1131 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":1107:1119 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":1107:1131 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":1099:1104 start */\n dup5\n /* \"Ep4/example.sol\":1099:1131 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":1080:1095 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":1080:1131 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":1076:1178 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":1162:1166 true */\n 0x01\n /* \"Ep4/example.sol\":1148:1166 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":1076:1178 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":1205:1216 isValidated */\n dup1\n /* \"Ep4/example.sol\":1198:1216 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":770:1224 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":393:762 function timeUnitExample() public pure {\r... */\n tag_13:\n /* \"Ep4/example.sol\":480:481 1 */\n 0x01\n /* \"Ep4/example.sol\":467:476 1 seconds */\n dup1\n /* \"Ep4/example.sol\":467:481 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":460:482 assert(1 seconds == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":543:553 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":530:539 1 minutes */\n dup1\n /* \"Ep4/example.sol\":530:553 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":523:554 assert(1 minutes == 60 seconds) */\n tag_26\n jumpi\n tag_27\n tag_25\n jump\t// in\n tag_27:\n tag_26:\n /* \"Ep4/example.sol\":616:626 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":605:612 1 hours */\n dup1\n /* \"Ep4/example.sol\":605:626 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":598:627 assert(1 hours == 60 minutes) */\n tag_28\n jumpi\n tag_29\n tag_25\n jump\t// in\n tag_29:\n tag_28:\n /* \"Ep4/example.sol\":683:691 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":673:679 1 days */\n dup1\n /* \"Ep4/example.sol\":673:691 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":666:692 assert(1 days == 24 hours) */\n tag_30\n jumpi\n tag_31\n tag_25\n jump\t// in\n tag_31:\n tag_30:\n /* \"Ep4/example.sol\":747:753 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":736:743 1 weeks */\n dup1\n /* \"Ep4/example.sol\":736:753 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":729:754 assert(1 weeks == 7 days) */\n tag_32\n jumpi\n tag_33\n tag_25\n jump\t// in\n tag_33:\n tag_32:\n /* \"Ep4/example.sol\":393:762 function timeUnitExample() public pure {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":86:385 function etherUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":199:201 12 */\n 0x0c\n /* \"Ep4/example.sol\":190:195 1 wei */\n 0x01\n /* \"Ep4/example.sol\":190:201 1 wei == 12 */\n eq\n /* \"Ep4/example.sol\":182:225 require(1 wei == 12, \"1 wei is equal to 1\") */\n tag_35\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_36\n swap1\n tag_37\n jump\t// in\n tag_36:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_35:\n /* \"Ep4/example.sol\":295:298 1e9 */\n 0x3b9aca00\n /* \"Ep4/example.sol\":285:291 1 gwei */\n dup1\n /* \"Ep4/example.sol\":285:298 1 gwei == 1e9 */\n eq\n /* \"Ep4/example.sol\":278:299 assert(1 gwei == 1e9) */\n tag_38\n jumpi\n tag_39\n tag_25\n jump\t// in\n tag_39:\n tag_38:\n /* \"Ep4/example.sol\":372:376 1e18 */\n 0x0de0b6b3a7640000\n /* \"Ep4/example.sol\":361:368 1 ether */\n dup1\n /* \"Ep4/example.sol\":361:376 1 ether == 1e18 */\n eq\n /* \"Ep4/example.sol\":354:377 assert(1 ether == 1e18) */\n tag_40\n jumpi\n tag_41\n tag_25\n jump\t// in\n tag_41:\n tag_40:\n /* \"Ep4/example.sol\":86:385 function etherUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_43:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_45\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_46\n jump\t// in\n tag_45:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_48\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_49\n tag_50\n jump\t// in\n tag_49:\n /* \"#utility.yul\":245:364 */\n tag_48:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_51\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_43\n jump\t// in\n tag_51:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_52\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_43\n jump\t// in\n tag_52:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_53:\n /* \"#utility.yul\":713:734 */\n tag_55\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_56\n jump\t// in\n tag_55:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:1113 */\n tag_57:\n /* \"#utility.yul\":889:892 */\n 0x00\n /* \"#utility.yul\":910:977 */\n tag_59\n /* \"#utility.yul\":974:976 */\n 0x13\n /* \"#utility.yul\":969:972 */\n dup4\n /* \"#utility.yul\":910:977 */\n tag_60\n jump\t// in\n tag_59:\n /* \"#utility.yul\":903:977 */\n swap2\n pop\n /* \"#utility.yul\":986:1079 */\n tag_61\n /* \"#utility.yul\":1075:1078 */\n dup3\n /* \"#utility.yul\":986:1079 */\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1104:1106 */\n 0x20\n /* \"#utility.yul\":1099:1102 */\n dup3\n /* \"#utility.yul\":1095:1107 */\n add\n /* \"#utility.yul\":1088:1107 */\n swap1\n pop\n /* \"#utility.yul\":747:1113 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1119:1329 */\n tag_11:\n /* \"#utility.yul\":1206:1210 */\n 0x00\n /* \"#utility.yul\":1244:1246 */\n 0x20\n /* \"#utility.yul\":1233:1242 */\n dup3\n /* \"#utility.yul\":1229:1247 */\n add\n /* \"#utility.yul\":1221:1247 */\n swap1\n pop\n /* \"#utility.yul\":1257:1322 */\n tag_64\n /* \"#utility.yul\":1319:1320 */\n 0x00\n /* \"#utility.yul\":1308:1317 */\n dup4\n /* \"#utility.yul\":1304:1321 */\n add\n /* \"#utility.yul\":1295:1301 */\n dup5\n /* \"#utility.yul\":1257:1322 */\n tag_53\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1119:1329 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1335:1754 */\n tag_37:\n /* \"#utility.yul\":1501:1505 */\n 0x00\n /* \"#utility.yul\":1539:1541 */\n 0x20\n /* \"#utility.yul\":1528:1537 */\n dup3\n /* \"#utility.yul\":1524:1542 */\n add\n /* \"#utility.yul\":1516:1542 */\n swap1\n pop\n /* \"#utility.yul\":1588:1597 */\n dup2\n /* \"#utility.yul\":1582:1586 */\n dup2\n /* \"#utility.yul\":1578:1598 */\n sub\n /* \"#utility.yul\":1574:1575 */\n 0x00\n /* \"#utility.yul\":1563:1572 */\n dup4\n /* \"#utility.yul\":1559:1576 */\n add\n /* \"#utility.yul\":1552:1599 */\n mstore\n /* \"#utility.yul\":1616:1747 */\n tag_66\n /* \"#utility.yul\":1742:1746 */\n dup2\n /* \"#utility.yul\":1616:1747 */\n tag_57\n jump\t// in\n tag_66:\n /* \"#utility.yul\":1608:1747 */\n swap1\n pop\n /* \"#utility.yul\":1335:1754 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1841:2010 */\n tag_60:\n /* \"#utility.yul\":1925:1936 */\n 0x00\n /* \"#utility.yul\":1959:1965 */\n dup3\n /* \"#utility.yul\":1954:1957 */\n dup3\n /* \"#utility.yul\":1947:1966 */\n mstore\n /* \"#utility.yul\":1999:2003 */\n 0x20\n /* \"#utility.yul\":1994:1997 */\n dup3\n /* \"#utility.yul\":1990:2004 */\n add\n /* \"#utility.yul\":1975:2004 */\n swap1\n pop\n /* \"#utility.yul\":1841:2010 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2016:2321 */\n tag_20:\n /* \"#utility.yul\":2056:2059 */\n 0x00\n /* \"#utility.yul\":2075:2095 */\n tag_71\n /* \"#utility.yul\":2093:2094 */\n dup3\n /* \"#utility.yul\":2075:2095 */\n tag_72\n jump\t// in\n tag_71:\n /* \"#utility.yul\":2070:2095 */\n swap2\n pop\n /* \"#utility.yul\":2109:2129 */\n tag_73\n /* \"#utility.yul\":2127:2128 */\n dup4\n /* \"#utility.yul\":2109:2129 */\n tag_72\n jump\t// in\n tag_73:\n /* \"#utility.yul\":2104:2129 */\n swap3\n pop\n /* \"#utility.yul\":2263:2264 */\n dup3\n /* \"#utility.yul\":2195:2261 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":2191:2265 */\n sub\n /* \"#utility.yul\":2188:2189 */\n dup3\n /* \"#utility.yul\":2185:2266 */\n gt\n /* \"#utility.yul\":2182:2289 */\n iszero\n tag_74\n jumpi\n /* \"#utility.yul\":2269:2287 */\n tag_75\n tag_76\n jump\t// in\n tag_75:\n /* \"#utility.yul\":2182:2289 */\n tag_74:\n /* \"#utility.yul\":2313:2314 */\n dup3\n /* \"#utility.yul\":2310:2311 */\n dup3\n /* \"#utility.yul\":2306:2315 */\n add\n /* \"#utility.yul\":2299:2315 */\n swap1\n pop\n /* \"#utility.yul\":2016:2321 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2327:2675 */\n tag_18:\n /* \"#utility.yul\":2367:2374 */\n 0x00\n /* \"#utility.yul\":2390:2410 */\n tag_78\n /* \"#utility.yul\":2408:2409 */\n dup3\n /* \"#utility.yul\":2390:2410 */\n tag_72\n jump\t// in\n tag_78:\n /* \"#utility.yul\":2385:2410 */\n swap2\n pop\n /* \"#utility.yul\":2424:2444 */\n tag_79\n /* \"#utility.yul\":2442:2443 */\n dup4\n /* \"#utility.yul\":2424:2444 */\n tag_72\n jump\t// in\n tag_79:\n /* \"#utility.yul\":2419:2444 */\n swap3\n pop\n /* \"#utility.yul\":2612:2613 */\n dup2\n /* \"#utility.yul\":2544:2610 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":2540:2614 */\n div\n /* \"#utility.yul\":2537:2538 */\n dup4\n /* \"#utility.yul\":2534:2615 */\n gt\n /* \"#utility.yul\":2529:2530 */\n dup3\n /* \"#utility.yul\":2522:2531 */\n iszero\n /* \"#utility.yul\":2515:2532 */\n iszero\n /* \"#utility.yul\":2511:2616 */\n and\n /* \"#utility.yul\":2508:2639 */\n iszero\n tag_80\n jumpi\n /* \"#utility.yul\":2619:2637 */\n tag_81\n tag_76\n jump\t// in\n tag_81:\n /* \"#utility.yul\":2508:2639 */\n tag_80:\n /* \"#utility.yul\":2667:2668 */\n dup3\n /* \"#utility.yul\":2664:2665 */\n dup3\n /* \"#utility.yul\":2660:2669 */\n mul\n /* \"#utility.yul\":2649:2669 */\n swap1\n pop\n /* \"#utility.yul\":2327:2675 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2681:2771 */\n tag_56:\n /* \"#utility.yul\":2715:2722 */\n 0x00\n /* \"#utility.yul\":2758:2763 */\n dup2\n /* \"#utility.yul\":2751:2764 */\n iszero\n /* \"#utility.yul\":2744:2765 */\n iszero\n /* \"#utility.yul\":2733:2765 */\n swap1\n pop\n /* \"#utility.yul\":2681:2771 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2777:2854 */\n tag_72:\n /* \"#utility.yul\":2814:2821 */\n 0x00\n /* \"#utility.yul\":2843:2848 */\n dup2\n /* \"#utility.yul\":2832:2848 */\n swap1\n pop\n /* \"#utility.yul\":2777:2854 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2860:3040 */\n tag_25:\n /* \"#utility.yul\":2908:2985 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2905:2906 */\n 0x00\n /* \"#utility.yul\":2898:2986 */\n mstore\n /* \"#utility.yul\":3005:3009 */\n 0x01\n /* \"#utility.yul\":3002:3003 */\n 0x04\n /* \"#utility.yul\":2995:3010 */\n mstore\n /* \"#utility.yul\":3029:3033 */\n 0x24\n /* \"#utility.yul\":3026:3027 */\n 0x00\n /* \"#utility.yul\":3019:3034 */\n revert\n /* \"#utility.yul\":3046:3226 */\n tag_76:\n /* \"#utility.yul\":3094:3171 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":3091:3092 */\n 0x00\n /* \"#utility.yul\":3084:3172 */\n mstore\n /* \"#utility.yul\":3191:3195 */\n 0x11\n /* \"#utility.yul\":3188:3189 */\n 0x04\n /* \"#utility.yul\":3181:3196 */\n mstore\n /* \"#utility.yul\":3215:3219 */\n 0x24\n /* \"#utility.yul\":3212:3213 */\n 0x00\n /* \"#utility.yul\":3205:3220 */\n revert\n /* \"#utility.yul\":3355:3472 */\n tag_50:\n /* \"#utility.yul\":3464:3465 */\n 0x00\n /* \"#utility.yul\":3461:3462 */\n dup1\n /* \"#utility.yul\":3454:3466 */\n revert\n /* \"#utility.yul\":3478:3647 */\n tag_62:\n /* \"#utility.yul\":3618:3639 */\n 0x312077656920697320657175616c20746f203100000000000000000000000000\n /* \"#utility.yul\":3614:3615 */\n 0x00\n /* \"#utility.yul\":3606:3612 */\n dup3\n /* \"#utility.yul\":3602:3616 */\n add\n /* \"#utility.yul\":3595:3640 */\n mstore\n /* \"#utility.yul\":3478:3647 */\n pop\n jump\t// out\n /* \"#utility.yul\":3653:3775 */\n tag_46:\n /* \"#utility.yul\":3726:3750 */\n tag_91\n /* \"#utility.yul\":3744:3749 */\n dup2\n /* \"#utility.yul\":3726:3750 */\n tag_72\n jump\t// in\n tag_91:\n /* \"#utility.yul\":3719:3724 */\n dup2\n /* \"#utility.yul\":3716:3751 */\n eq\n /* \"#utility.yul\":3706:3769 */\n tag_92\n jumpi\n /* \"#utility.yul\":3765:3766 */\n 0x00\n /* \"#utility.yul\":3762:3763 */\n dup1\n /* \"#utility.yul\":3755:3767 */\n revert\n /* \"#utility.yul\":3706:3769 */\n tag_92:\n /* \"#utility.yul\":3653:3775 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220f89041afe0a54cab35ae4264839e604fb1451e19e4ac2a9142ee113726aec18f64736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506103fe806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b91906101a1565b61008a565b60405161006d9190610213565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e91906102b5565b846100a9919061025f565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610325565b5b603c80146100e0576100df610325565b5b610e1080146100f2576100f1610325565b5b62015180801461010557610104610325565b5b62093a80801461011857610117610325565b5b565b600c60011461015e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101559061022e565b60405180910390fd5b633b9aca00801461017257610171610325565b5b670de0b6b3a7640000801461018a57610189610325565b5b565b60008135905061019b816103b1565b92915050565b600080604083850312156101b8576101b7610383565b5b60006101c68582860161018c565b92505060206101d78582860161018c565b9150509250929050565b6101ea8161030f565b82525050565b60006101fd60138361024e565b915061020882610388565b602082019050919050565b600060208201905061022860008301846101e1565b92915050565b60006020820190508181036000830152610247816101f0565b9050919050565b600082825260208201905092915050565b600061026a8261031b565b91506102758361031b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156102aa576102a9610354565b5b828201905092915050565b60006102c08261031b565b91506102cb8361031b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561030457610303610354565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b7f312077656920697320657175616c20746f203100000000000000000000000000600082015250565b6103ba8161031b565b81146103c557600080fd5b5056fea2646970667358221220f89041afe0a54cab35ae4264839e604fb1451e19e4ac2a9142ee113726aec18f64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1A1 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x213 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x2B5 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x25F JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x325 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0xC PUSH1 0x1 EQ PUSH2 0x15E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x155 SWAP1 PUSH2 0x22E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x172 JUMPI PUSH2 0x171 PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x18A JUMPI PUSH2 0x189 PUSH2 0x325 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19B DUP2 PUSH2 0x3B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B8 JUMPI PUSH2 0x1B7 PUSH2 0x383 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C6 DUP6 DUP3 DUP7 ADD PUSH2 0x18C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D7 DUP6 DUP3 DUP7 ADD PUSH2 0x18C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EA DUP2 PUSH2 0x30F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FD PUSH1 0x13 DUP4 PUSH2 0x24E JUMP JUMPDEST SWAP2 POP PUSH2 0x208 DUP3 PUSH2 0x388 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x228 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x247 DUP2 PUSH2 0x1F0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26A DUP3 PUSH2 0x31B JUMP JUMPDEST SWAP2 POP PUSH2 0x275 DUP4 PUSH2 0x31B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2AA JUMPI PUSH2 0x2A9 PUSH2 0x354 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0 DUP3 PUSH2 0x31B JUMP JUMPDEST SWAP2 POP PUSH2 0x2CB DUP4 PUSH2 0x31B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x304 JUMPI PUSH2 0x303 PUSH2 0x354 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x312077656920697320657175616C20746F203100000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x3BA DUP2 PUSH2 0x31B JUMP JUMPDEST DUP2 EQ PUSH2 0x3C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 SWAP1 COINBASE 0xAF 0xE0 0xA5 0x4C 0xAB CALLDATALOAD 0xAE TIMESTAMP PUSH5 0x839E604FB1 GASLIMIT 0x1E NOT 0xE4 0xAC 0x2A SWAP2 TIMESTAMP 0xEE GT CALLDATACOPY 0x26 0xAE 0xC1 DUP16 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1165:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@etherUnitExample_24": { + "entryPoint": 282, + "id": 24, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@timeUnitExample_58": { + "entryPoint": 190, + "id": 58, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_88": { + "entryPoint": 138, + "id": 88, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 396, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 417, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 481, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 496, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 531, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 558, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 590, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 607, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 693, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 783, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 795, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 805, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 852, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 899, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "store_literal_in_memory_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c": { + "entryPoint": 904, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 945, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:3778:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "893:220:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "903:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "969:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "974:2:1", + "type": "", + "value": "19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "910:58:1" + }, + "nodeType": "YulFunctionCall", + "src": "910:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "903:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1075:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c", + "nodeType": "YulIdentifier", + "src": "986:88:1" + }, + "nodeType": "YulFunctionCall", + "src": "986:93:1" + }, + "nodeType": "YulExpressionStatement", + "src": "986:93:1" + }, + { + "nodeType": "YulAssignment", + "src": "1088:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1099:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1104:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1095:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1095:12:1" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1088:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "881:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "889:3:1", + "type": "" + } + ], + "src": "747:366:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1211:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1221:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1233:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1244:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1229:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1229:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1221:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1295:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1308:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1319:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1304:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1304:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1257:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "1257:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1257:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1183:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1195:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1206:4:1", + "type": "" + } + ], + "src": "1119:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1506:248:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1516:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1528:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1524:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1524:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1516:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1563:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1574:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1559:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1559:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1582:4:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1588:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1578:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1578:20:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1552:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1552:47:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1552:47:1" + }, + { + "nodeType": "YulAssignment", + "src": "1608:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1742:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1616:124:1" + }, + "nodeType": "YulFunctionCall", + "src": "1616:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1608:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1486:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1501:4:1", + "type": "" + } + ], + "src": "1335:419:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1800:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1810:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1826:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1820:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1820:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1810:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1793:6:1", + "type": "" + } + ], + "src": "1760:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1937:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1954:3:1" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1959:6:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1947:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1947:19:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1947:19:1" + }, + { + "nodeType": "YulAssignment", + "src": "1975:29:1", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1994:3:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1999:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1990:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1990:14:1" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "1975:11:1" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1909:3:1", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1914:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "1925:11:1", + "type": "" + } + ], + "src": "1841:169:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2060:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2070:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2093:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2075:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2075:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2070:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2104:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2127:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2109:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2104:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2267:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "2269:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "2269:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2269:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2188:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2195:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2263:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2191:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2191:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2185:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2185:81:1" + }, + "nodeType": "YulIf", + "src": "2182:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "2299:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2310:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2313:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2306:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2306:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "2299:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "2047:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "2050:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "2056:3:1", + "type": "" + } + ], + "src": "2016:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2375:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2385:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2408:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2390:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2390:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2385:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2419:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2442:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2424:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2424:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2419:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2617:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "2619:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "2619:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2619:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2529:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2522:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2522:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2515:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2515:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2537:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2544:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2612:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "2540:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2540:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2534:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2534:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2511:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2511:105:1" + }, + "nodeType": "YulIf", + "src": "2508:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "2649:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "2664:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "2667:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "2660:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "2660:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "2649:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "2358:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "2361:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "2367:7:1", + "type": "" + } + ], + "src": "2327:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2723:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2733:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2758:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2751:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2751:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2744:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2744:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2733:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2705:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2715:7:1", + "type": "" + } + ], + "src": "2681:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2822:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2832:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2843:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2832:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2804:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2814:7:1", + "type": "" + } + ], + "src": "2777:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2888:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2905:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2908:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2898:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2898:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2898:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3002:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3005:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2995:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2995:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2995:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3026:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3029:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3019:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3019:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3019:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "2860:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3074:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3091:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3094:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3084:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3084:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3084:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3188:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3191:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3181:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3181:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3181:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3212:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3215:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3205:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3205:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3205:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "3046:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3321:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3338:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3341:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3331:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3331:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3331:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "3232:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3444:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3461:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3464:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3454:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3454:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3454:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "3355:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3584:63:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "3606:6:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3614:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3602:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "3602:14:1" + }, + { + "hexValue": "312077656920697320657175616c20746f2031", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3618:21:1", + "type": "", + "value": "1 wei is equal to 1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3595:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3595:45:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3595:45:1" + } + ] + }, + "name": "store_literal_in_memory_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "3576:6:1", + "type": "" + } + ], + "src": "3478:169:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3696:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3753:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3762:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3765:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3755:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3755:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "3755:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3719:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3744:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3726:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "3726:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "3716:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "3716:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3709:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "3709:43:1" + }, + "nodeType": "YulIf", + "src": "3706:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3689:5:1", + "type": "" + } + ], + "src": "3653:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function store_literal_in_memory_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c(memPtr) {\n\n mstore(add(memPtr, 0), \"1 wei is equal to 1\")\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b441461004657806324475f4c1461007657806397e8218314610080575b600080fd5b610060600480360381019061005b91906101a1565b61008a565b60405161006d9190610213565b60405180910390f35b61007e6100be565b005b61008861011a565b005b6000806000905060038361009e91906102b5565b846100a9919061025f565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610325565b5b603c80146100e0576100df610325565b5b610e1080146100f2576100f1610325565b5b62015180801461010557610104610325565b5b62093a80801461011857610117610325565b5b565b600c60011461015e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101559061022e565b60405180910390fd5b633b9aca00801461017257610171610325565b5b670de0b6b3a7640000801461018a57610189610325565b5b565b60008135905061019b816103b1565b92915050565b600080604083850312156101b8576101b7610383565b5b60006101c68582860161018c565b92505060206101d78582860161018c565b9150509250929050565b6101ea8161030f565b82525050565b60006101fd60138361024e565b915061020882610388565b602082019050919050565b600060208201905061022860008301846101e1565b92915050565b60006020820190508181036000830152610247816101f0565b9050919050565b600082825260208201905092915050565b600061026a8261031b565b91506102758361031b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156102aa576102a9610354565b5b828201905092915050565b60006102c08261031b565b91506102cb8361031b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561030457610303610354565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b7f312077656920697320657175616c20746f203100000000000000000000000000600082015250565b6103ba8161031b565b81146103c557600080fd5b5056fea2646970667358221220f89041afe0a54cab35ae4264839e604fb1451e19e4ac2a9142ee113726aec18f64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x24475F4C EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x97E82183 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1A1 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x213 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x11A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x2B5 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x25F JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0xF2 JUMPI PUSH2 0xF1 PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x325 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0xC PUSH1 0x1 EQ PUSH2 0x15E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x155 SWAP1 PUSH2 0x22E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0x3B9ACA00 DUP1 EQ PUSH2 0x172 JUMPI PUSH2 0x171 PUSH2 0x325 JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP1 EQ PUSH2 0x18A JUMPI PUSH2 0x189 PUSH2 0x325 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19B DUP2 PUSH2 0x3B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B8 JUMPI PUSH2 0x1B7 PUSH2 0x383 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C6 DUP6 DUP3 DUP7 ADD PUSH2 0x18C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D7 DUP6 DUP3 DUP7 ADD PUSH2 0x18C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EA DUP2 PUSH2 0x30F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FD PUSH1 0x13 DUP4 PUSH2 0x24E JUMP JUMPDEST SWAP2 POP PUSH2 0x208 DUP3 PUSH2 0x388 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x228 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x247 DUP2 PUSH2 0x1F0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26A DUP3 PUSH2 0x31B JUMP JUMPDEST SWAP2 POP PUSH2 0x275 DUP4 PUSH2 0x31B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2AA JUMPI PUSH2 0x2A9 PUSH2 0x354 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0 DUP3 PUSH2 0x31B JUMP JUMPDEST SWAP2 POP PUSH2 0x2CB DUP4 PUSH2 0x31B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x304 JUMPI PUSH2 0x303 PUSH2 0x354 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x312077656920697320657175616C20746F203100000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x3BA DUP2 PUSH2 0x31B JUMP JUMPDEST DUP2 EQ PUSH2 0x3C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 SWAP1 COINBASE 0xAF 0xE0 0xA5 0x4C 0xAB CALLDATALOAD 0xAE TIMESTAMP PUSH5 0x839E604FB1 GASLIMIT 0x1E NOT 0xE4 0xAC 0x2A SWAP2 TIMESTAMP 0xEE GT CALLDATACOPY 0x26 0xAE 0xC1 DUP16 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:1165:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;770:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;393:369;;;:::i;:::-;;86:299;;;:::i;:::-;;770:454;839:4;856:16;875:5;856:24;;1122:9;1107:12;:24;;;;:::i;:::-;1099:5;:32;;;;:::i;:::-;1080:15;:51;1076:102;;1162:4;1148:18;;1076:102;1205:11;1198:18;;;770:454;;;;:::o;393:369::-;480:1;467:9;:14;460:22;;;;:::i;:::-;;543:10;530:9;:23;523:31;;;;:::i;:::-;;616:10;605:7;:21;598:29;;;;:::i;:::-;;683:8;673:6;:18;666:26;;;;:::i;:::-;;747:6;736:7;:17;729:25;;;;:::i;:::-;;393:369::o;86:299::-;199:2;190:5;:11;182:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;295:3;285:6;:13;278:21;;;;:::i;:::-;;372:4;361:7;:15;354:23;;;;:::i;:::-;;86:299::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:366::-;889:3;910:67;974:2;969:3;910:67;:::i;:::-;903:74;;986:93;1075:3;986:93;:::i;:::-;1104:2;1099:3;1095:12;1088:19;;747:366;;;:::o;1119:210::-;1206:4;1244:2;1233:9;1229:18;1221:26;;1257:65;1319:1;1308:9;1304:17;1295:6;1257:65;:::i;:::-;1119:210;;;;:::o;1335:419::-;1501:4;1539:2;1528:9;1524:18;1516:26;;1588:9;1582:4;1578:20;1574:1;1563:9;1559:17;1552:47;1616:131;1742:4;1616:131;:::i;:::-;1608:139;;1335:419;;;:::o;1841:169::-;1925:11;1959:6;1954:3;1947:19;1999:4;1994:3;1990:14;1975:29;;1841:169;;;;:::o;2016:305::-;2056:3;2075:20;2093:1;2075:20;:::i;:::-;2070:25;;2109:20;2127:1;2109:20;:::i;:::-;2104:25;;2263:1;2195:66;2191:74;2188:1;2185:81;2182:107;;;2269:18;;:::i;:::-;2182:107;2313:1;2310;2306:9;2299:16;;2016:305;;;;:::o;2327:348::-;2367:7;2390:20;2408:1;2390:20;:::i;:::-;2385:25;;2424:20;2442:1;2424:20;:::i;:::-;2419:25;;2612:1;2544:66;2540:74;2537:1;2534:81;2529:1;2522:9;2515:17;2511:105;2508:131;;;2619:18;;:::i;:::-;2508:131;2667:1;2664;2660:9;2649:20;;2327:348;;;;:::o;2681:90::-;2715:7;2758:5;2751:13;2744:21;2733:32;;2681:90;;;:::o;2777:77::-;2814:7;2843:5;2832:16;;2777:77;;;:::o;2860:180::-;2908:77;2905:1;2898:88;3005:4;3002:1;2995:15;3029:4;3026:1;3019:15;3046:180;3094:77;3091:1;3084:88;3191:4;3188:1;3181:15;3215:4;3212:1;3205:15;3355:117;3464:1;3461;3454:12;3478:169;3618:21;3614:1;3606:6;3602:14;3595:45;3478:169;:::o;3653:122::-;3726:24;3744:5;3726:24;:::i;:::-;3719:5;3716:35;3706:63;;3765:1;3762;3755:12;3706:63;3653:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "204400", + "executionCost": "245", + "totalCost": "204645" + }, + "external": { + "etherUnitExample()": "478", + "timeUnitExample()": "259", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1227, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1227, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1227, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220f89041afe0a54cab35ae4264839e604fb1451e19e4ac2a9142ee113726aec18f64736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 1227, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1227, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1227, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 1227, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 1227, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "24475F4C" + }, + { + "begin": 62, + "end": 1227, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "97E82183" + }, + { + "begin": 62, + "end": 1227, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 1227, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 1227, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 1227, + "name": "REVERT", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 770, + "end": 1224, + "name": "DUP1", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SUB", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "DUP2", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "ADD", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 770, + "end": 1224, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 770, + "end": 1224, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 770, + "end": 1224, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 770, + "end": 1224, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 770, + "end": 1224, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "DUP1", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SUB", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "RETURN", + "source": 0 + }, + { + "begin": 393, + "end": 762, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 393, + "end": 762, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 393, + "end": 762, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 393, + "end": 762, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 393, + "end": 762, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 393, + "end": 762, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 393, + "end": 762, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 393, + "end": 762, + "name": "STOP", + "source": 0 + }, + { + "begin": 86, + "end": 385, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 86, + "end": 385, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 385, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 385, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 385, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 86, + "end": 385, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 86, + "end": 385, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 385, + "name": "STOP", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 770, + "end": 1224, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 839, + "end": 843, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 856, + "end": 872, + "name": "DUP1", + "source": 0 + }, + { + "begin": 875, + "end": 880, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 856, + "end": 880, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 856, + "end": 880, + "name": "POP", + "source": 0 + }, + { + "begin": 1122, + "end": 1131, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 1107, + "end": 1119, + "name": "DUP4", + "source": 0 + }, + { + "begin": 1107, + "end": 1131, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 1107, + "end": 1131, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1107, + "end": 1131, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1107, + "end": 1131, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 1107, + "end": 1131, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1107, + "end": 1131, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 1107, + "end": 1131, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1099, + "end": 1104, + "name": "DUP5", + "source": 0 + }, + { + "begin": 1099, + "end": 1131, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 1099, + "end": 1131, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1099, + "end": 1131, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1099, + "end": 1131, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 1099, + "end": 1131, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 1099, + "end": 1131, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 1099, + "end": 1131, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1080, + "end": 1095, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 1080, + "end": 1131, + "name": "LT", + "source": 0 + }, + { + "begin": 1076, + "end": 1178, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 1076, + "end": 1178, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 1162, + "end": 1166, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 1148, + "end": 1166, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 1148, + "end": 1166, + "name": "POP", + "source": 0 + }, + { + "begin": 1076, + "end": 1178, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 1076, + "end": 1178, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 1205, + "end": 1216, + "name": "DUP1", + "source": 0 + }, + { + "begin": 1198, + "end": 1216, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 1198, + "end": 1216, + "name": "POP", + "source": 0 + }, + { + "begin": 1198, + "end": 1216, + "name": "POP", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "POP", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "POP", + "source": 0 + }, + { + "begin": 770, + "end": 1224, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 393, + "end": 762, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 393, + "end": 762, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 480, + "end": 481, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 467, + "end": 476, + "name": "DUP1", + "source": 0 + }, + { + "begin": 467, + "end": 481, + "name": "EQ", + "source": 0 + }, + { + "begin": 460, + "end": 482, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 460, + "end": 482, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 460, + "end": 482, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 460, + "end": 482, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 460, + "end": 482, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 460, + "end": 482, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 460, + "end": 482, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 460, + "end": 482, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 460, + "end": 482, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 543, + "end": 553, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 530, + "end": 539, + "name": "DUP1", + "source": 0 + }, + { + "begin": 530, + "end": 553, + "name": "EQ", + "source": 0 + }, + { + "begin": 523, + "end": 554, + "name": "PUSH [tag]", + "source": 0, + "value": "26" + }, + { + "begin": 523, + "end": 554, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 523, + "end": 554, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 523, + "end": 554, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 523, + "end": 554, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 523, + "end": 554, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 523, + "end": 554, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 523, + "end": 554, + "name": "tag", + "source": 0, + "value": "26" + }, + { + "begin": 523, + "end": 554, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 616, + "end": 626, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 605, + "end": 612, + "name": "DUP1", + "source": 0 + }, + { + "begin": 605, + "end": 626, + "name": "EQ", + "source": 0 + }, + { + "begin": 598, + "end": 627, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 598, + "end": 627, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 598, + "end": 627, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 598, + "end": 627, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 598, + "end": 627, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 598, + "end": 627, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 598, + "end": 627, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 598, + "end": 627, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 598, + "end": 627, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 683, + "end": 691, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 673, + "end": 679, + "name": "DUP1", + "source": 0 + }, + { + "begin": 673, + "end": 691, + "name": "EQ", + "source": 0 + }, + { + "begin": 666, + "end": 692, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 666, + "end": 692, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 666, + "end": 692, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 666, + "end": 692, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 666, + "end": 692, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 666, + "end": 692, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 666, + "end": 692, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 666, + "end": 692, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 666, + "end": 692, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 747, + "end": 753, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 736, + "end": 743, + "name": "DUP1", + "source": 0 + }, + { + "begin": 736, + "end": 753, + "name": "EQ", + "source": 0 + }, + { + "begin": 729, + "end": 754, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 729, + "end": 754, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 729, + "end": 754, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 729, + "end": 754, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 729, + "end": 754, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 729, + "end": 754, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 729, + "end": 754, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 729, + "end": 754, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 729, + "end": 754, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 393, + "end": 762, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 86, + "end": 385, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 86, + "end": 385, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 199, + "end": 201, + "name": "PUSH", + "source": 0, + "value": "C" + }, + { + "begin": 190, + "end": 195, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 190, + "end": 201, + "name": "EQ", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 225, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 182, + "end": 225, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "PUSH", + "source": 0, + "value": "8C379A000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 182, + "end": 225, + "name": "DUP2", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 182, + "end": 225, + "name": "ADD", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 225, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "PUSH [tag]", + "source": 0, + "value": "37" + }, + { + "begin": 182, + "end": 225, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 182, + "end": 225, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 182, + "end": 225, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 182, + "end": 225, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "DUP1", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "SUB", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "REVERT", + "source": 0 + }, + { + "begin": 182, + "end": 225, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 182, + "end": 225, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 295, + "end": 298, + "name": "PUSH", + "source": 0, + "value": "3B9ACA00" + }, + { + "begin": 285, + "end": 291, + "name": "DUP1", + "source": 0 + }, + { + "begin": 285, + "end": 298, + "name": "EQ", + "source": 0 + }, + { + "begin": 278, + "end": 299, + "name": "PUSH [tag]", + "source": 0, + "value": "38" + }, + { + "begin": 278, + "end": 299, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 278, + "end": 299, + "name": "PUSH [tag]", + "source": 0, + "value": "39" + }, + { + "begin": 278, + "end": 299, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 278, + "end": 299, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 278, + "end": 299, + "name": "tag", + "source": 0, + "value": "39" + }, + { + "begin": 278, + "end": 299, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 278, + "end": 299, + "name": "tag", + "source": 0, + "value": "38" + }, + { + "begin": 278, + "end": 299, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 372, + "end": 376, + "name": "PUSH", + "source": 0, + "value": "DE0B6B3A7640000" + }, + { + "begin": 361, + "end": 368, + "name": "DUP1", + "source": 0 + }, + { + "begin": 361, + "end": 376, + "name": "EQ", + "source": 0 + }, + { + "begin": 354, + "end": 377, + "name": "PUSH [tag]", + "source": 0, + "value": "40" + }, + { + "begin": 354, + "end": 377, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 354, + "end": 377, + "name": "PUSH [tag]", + "source": 0, + "value": "41" + }, + { + "begin": 354, + "end": 377, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 354, + "end": 377, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 354, + "end": 377, + "name": "tag", + "source": 0, + "value": "41" + }, + { + "begin": 354, + "end": 377, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 354, + "end": 377, + "name": "tag", + "source": 0, + "value": "40" + }, + { + "begin": 354, + "end": 377, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 86, + "end": 385, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "49" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "52" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "52" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "55" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "56" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "55" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 1113, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 747, + "end": 1113, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 889, + "end": 892, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 910, + "end": 977, + "name": "PUSH [tag]", + "source": 1, + "value": "59" + }, + { + "begin": 974, + "end": 976, + "name": "PUSH", + "source": 1, + "value": "13" + }, + { + "begin": 969, + "end": 972, + "name": "DUP4", + "source": 1 + }, + { + "begin": 910, + "end": 977, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 910, + "end": 977, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 910, + "end": 977, + "name": "tag", + "source": 1, + "value": "59" + }, + { + "begin": 910, + "end": 977, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 903, + "end": 977, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 903, + "end": 977, + "name": "POP", + "source": 1 + }, + { + "begin": 986, + "end": 1079, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1075, + "end": 1078, + "name": "DUP3", + "source": 1 + }, + { + "begin": 986, + "end": 1079, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 986, + "end": 1079, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 986, + "end": 1079, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 986, + "end": 1079, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1104, + "end": 1106, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1099, + "end": 1102, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1095, + "end": 1107, + "name": "ADD", + "source": 1 + }, + { + "begin": 1088, + "end": 1107, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1088, + "end": 1107, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 1113, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1119, + "end": 1329, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 1119, + "end": 1329, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1206, + "end": 1210, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1244, + "end": 1246, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1233, + "end": 1242, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1229, + "end": 1247, + "name": "ADD", + "source": 1 + }, + { + "begin": 1221, + "end": 1247, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1221, + "end": 1247, + "name": "POP", + "source": 1 + }, + { + "begin": 1257, + "end": 1322, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1319, + "end": 1320, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1308, + "end": 1317, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1304, + "end": 1321, + "name": "ADD", + "source": 1 + }, + { + "begin": 1295, + "end": 1301, + "name": "DUP5", + "source": 1 + }, + { + "begin": 1257, + "end": 1322, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 1257, + "end": 1322, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1257, + "end": 1322, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1257, + "end": 1322, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "POP", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "POP", + "source": 1 + }, + { + "begin": 1119, + "end": 1329, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1335, + "end": 1754, + "name": "tag", + "source": 1, + "value": "37" + }, + { + "begin": 1335, + "end": 1754, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1501, + "end": 1505, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1539, + "end": 1541, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1528, + "end": 1537, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1524, + "end": 1542, + "name": "ADD", + "source": 1 + }, + { + "begin": 1516, + "end": 1542, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1516, + "end": 1542, + "name": "POP", + "source": 1 + }, + { + "begin": 1588, + "end": 1597, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1582, + "end": 1586, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1578, + "end": 1598, + "name": "SUB", + "source": 1 + }, + { + "begin": 1574, + "end": 1575, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1563, + "end": 1572, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1559, + "end": 1576, + "name": "ADD", + "source": 1 + }, + { + "begin": 1552, + "end": 1599, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 1616, + "end": 1747, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1742, + "end": 1746, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1616, + "end": 1747, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 1616, + "end": 1747, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1616, + "end": 1747, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1616, + "end": 1747, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1608, + "end": 1747, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1608, + "end": 1747, + "name": "POP", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "POP", + "source": 1 + }, + { + "begin": 1335, + "end": 1754, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1841, + "end": 2010, + "name": "tag", + "source": 1, + "value": "60" + }, + { + "begin": 1841, + "end": 2010, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1925, + "end": 1936, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1959, + "end": 1965, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1954, + "end": 1957, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1947, + "end": 1966, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 1999, + "end": 2003, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 1994, + "end": 1997, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1990, + "end": 2004, + "name": "ADD", + "source": 1 + }, + { + "begin": 1975, + "end": 2004, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1975, + "end": 2004, + "name": "POP", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "POP", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "POP", + "source": 1 + }, + { + "begin": 1841, + "end": 2010, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2016, + "end": 2321, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 2016, + "end": 2321, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2056, + "end": 2059, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2075, + "end": 2095, + "name": "PUSH [tag]", + "source": 1, + "value": "71" + }, + { + "begin": 2093, + "end": 2094, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2075, + "end": 2095, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2075, + "end": 2095, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2075, + "end": 2095, + "name": "tag", + "source": 1, + "value": "71" + }, + { + "begin": 2075, + "end": 2095, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2070, + "end": 2095, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2070, + "end": 2095, + "name": "POP", + "source": 1 + }, + { + "begin": 2109, + "end": 2129, + "name": "PUSH [tag]", + "source": 1, + "value": "73" + }, + { + "begin": 2127, + "end": 2128, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2109, + "end": 2129, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2109, + "end": 2129, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2109, + "end": 2129, + "name": "tag", + "source": 1, + "value": "73" + }, + { + "begin": 2109, + "end": 2129, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2104, + "end": 2129, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2104, + "end": 2129, + "name": "POP", + "source": 1 + }, + { + "begin": 2263, + "end": 2264, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2195, + "end": 2261, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2191, + "end": 2265, + "name": "SUB", + "source": 1 + }, + { + "begin": 2188, + "end": 2189, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2185, + "end": 2266, + "name": "GT", + "source": 1 + }, + { + "begin": 2182, + "end": 2289, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2182, + "end": 2289, + "name": "PUSH [tag]", + "source": 1, + "value": "74" + }, + { + "begin": 2182, + "end": 2289, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2269, + "end": 2287, + "name": "PUSH [tag]", + "source": 1, + "value": "75" + }, + { + "begin": 2269, + "end": 2287, + "name": "PUSH [tag]", + "source": 1, + "value": "76" + }, + { + "begin": 2269, + "end": 2287, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2269, + "end": 2287, + "name": "tag", + "source": 1, + "value": "75" + }, + { + "begin": 2269, + "end": 2287, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2182, + "end": 2289, + "name": "tag", + "source": 1, + "value": "74" + }, + { + "begin": 2182, + "end": 2289, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2313, + "end": 2314, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2310, + "end": 2311, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2306, + "end": 2315, + "name": "ADD", + "source": 1 + }, + { + "begin": 2299, + "end": 2315, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2299, + "end": 2315, + "name": "POP", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "POP", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "POP", + "source": 1 + }, + { + "begin": 2016, + "end": 2321, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2327, + "end": 2675, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 2327, + "end": 2675, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2367, + "end": 2374, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2390, + "end": 2410, + "name": "PUSH [tag]", + "source": 1, + "value": "78" + }, + { + "begin": 2408, + "end": 2409, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2390, + "end": 2410, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2390, + "end": 2410, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2390, + "end": 2410, + "name": "tag", + "source": 1, + "value": "78" + }, + { + "begin": 2390, + "end": 2410, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2385, + "end": 2410, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2385, + "end": 2410, + "name": "POP", + "source": 1 + }, + { + "begin": 2424, + "end": 2444, + "name": "PUSH [tag]", + "source": 1, + "value": "79" + }, + { + "begin": 2442, + "end": 2443, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2424, + "end": 2444, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 2424, + "end": 2444, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2424, + "end": 2444, + "name": "tag", + "source": 1, + "value": "79" + }, + { + "begin": 2424, + "end": 2444, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2419, + "end": 2444, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2419, + "end": 2444, + "name": "POP", + "source": 1 + }, + { + "begin": 2612, + "end": 2613, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2544, + "end": 2610, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 2540, + "end": 2614, + "name": "DIV", + "source": 1 + }, + { + "begin": 2537, + "end": 2538, + "name": "DUP4", + "source": 1 + }, + { + "begin": 2534, + "end": 2615, + "name": "GT", + "source": 1 + }, + { + "begin": 2529, + "end": 2530, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2522, + "end": 2531, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2515, + "end": 2532, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2511, + "end": 2616, + "name": "AND", + "source": 1 + }, + { + "begin": 2508, + "end": 2639, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2508, + "end": 2639, + "name": "PUSH [tag]", + "source": 1, + "value": "80" + }, + { + "begin": 2508, + "end": 2639, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2619, + "end": 2637, + "name": "PUSH [tag]", + "source": 1, + "value": "81" + }, + { + "begin": 2619, + "end": 2637, + "name": "PUSH [tag]", + "source": 1, + "value": "76" + }, + { + "begin": 2619, + "end": 2637, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2619, + "end": 2637, + "name": "tag", + "source": 1, + "value": "81" + }, + { + "begin": 2619, + "end": 2637, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2508, + "end": 2639, + "name": "tag", + "source": 1, + "value": "80" + }, + { + "begin": 2508, + "end": 2639, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2667, + "end": 2668, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2664, + "end": 2665, + "name": "DUP3", + "source": 1 + }, + { + "begin": 2660, + "end": 2669, + "name": "MUL", + "source": 1 + }, + { + "begin": 2649, + "end": 2669, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2649, + "end": 2669, + "name": "POP", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "POP", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "POP", + "source": 1 + }, + { + "begin": 2327, + "end": 2675, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2681, + "end": 2771, + "name": "tag", + "source": 1, + "value": "56" + }, + { + "begin": 2681, + "end": 2771, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2715, + "end": 2722, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2758, + "end": 2763, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2751, + "end": 2764, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2744, + "end": 2765, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 2733, + "end": 2765, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2733, + "end": 2765, + "name": "POP", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "POP", + "source": 1 + }, + { + "begin": 2681, + "end": 2771, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2777, + "end": 2854, + "name": "tag", + "source": 1, + "value": "72" + }, + { + "begin": 2777, + "end": 2854, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2814, + "end": 2821, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2843, + "end": 2848, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2832, + "end": 2848, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2832, + "end": 2848, + "name": "POP", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "POP", + "source": 1 + }, + { + "begin": 2777, + "end": 2854, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 2860, + "end": 3040, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 2860, + "end": 3040, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2908, + "end": 2985, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2905, + "end": 2906, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2898, + "end": 2986, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3005, + "end": 3009, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 3002, + "end": 3003, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2995, + "end": 3010, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3029, + "end": 3033, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 3026, + "end": 3027, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3019, + "end": 3034, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3046, + "end": 3226, + "name": "tag", + "source": 1, + "value": "76" + }, + { + "begin": 3046, + "end": 3226, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3094, + "end": 3171, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 3091, + "end": 3092, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3084, + "end": 3172, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3191, + "end": 3195, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 3188, + "end": 3189, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 3181, + "end": 3196, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3215, + "end": 3219, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 3212, + "end": 3213, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3205, + "end": 3220, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3355, + "end": 3472, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 3355, + "end": 3472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3464, + "end": 3465, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3461, + "end": 3462, + "name": "DUP1", + "source": 1 + }, + { + "begin": 3454, + "end": 3466, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3478, + "end": 3647, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 3478, + "end": 3647, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3618, + "end": 3639, + "name": "PUSH", + "source": 1, + "value": "312077656920697320657175616C20746F203100000000000000000000000000" + }, + { + "begin": 3614, + "end": 3615, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3606, + "end": 3612, + "name": "DUP3", + "source": 1 + }, + { + "begin": 3602, + "end": 3616, + "name": "ADD", + "source": 1 + }, + { + "begin": 3595, + "end": 3640, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 3478, + "end": 3647, + "name": "POP", + "source": 1 + }, + { + "begin": 3478, + "end": 3647, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 3653, + "end": 3775, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 3653, + "end": 3775, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3726, + "end": 3750, + "name": "PUSH [tag]", + "source": 1, + "value": "91" + }, + { + "begin": 3744, + "end": 3749, + "name": "DUP2", + "source": 1 + }, + { + "begin": 3726, + "end": 3750, + "name": "PUSH [tag]", + "source": 1, + "value": "72" + }, + { + "begin": 3726, + "end": 3750, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 3726, + "end": 3750, + "name": "tag", + "source": 1, + "value": "91" + }, + { + "begin": 3726, + "end": 3750, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3719, + "end": 3724, + "name": "DUP2", + "source": 1 + }, + { + "begin": 3716, + "end": 3751, + "name": "EQ", + "source": 1 + }, + { + "begin": 3706, + "end": 3769, + "name": "PUSH [tag]", + "source": 1, + "value": "92" + }, + { + "begin": 3706, + "end": 3769, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 3765, + "end": 3766, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 3762, + "end": 3763, + "name": "DUP1", + "source": 1 + }, + { + "begin": 3755, + "end": 3767, + "name": "REVERT", + "source": 1 + }, + { + "begin": 3706, + "end": 3769, + "name": "tag", + "source": 1, + "value": "92" + }, + { + "begin": 3706, + "end": 3769, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 3653, + "end": 3775, + "name": "POP", + "source": 1 + }, + { + "begin": 3653, + "end": 3775, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "etherUnitExample()": "97e82183", + "timeUnitExample()": "24475f4c", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"etherUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0xb63c6719b871fc66c2c40cf2bc10561fc3bddd4387082f04c665ab0416fb3067\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22a85e54e420879bee14b66dadf9dc714bfcc8e5c3363c99cc2fe4a07dbb0b61\",\"dweb:/ipfs/QmTD5tqp3f876ouDG46xfBtwUBxuCrBGyABPLCKXJd3W2o\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 89 + ] + }, + "id": 90, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 89, + "linearizedBaseContracts": [ + 89 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 23, + "nodeType": "Block", + "src": "126:259:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "190:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3132", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "199:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "190:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "312077656920697320657175616c20746f2031", + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "203:21:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c", + "typeString": "literal_string \"1 wei is equal to 1\"" + }, + "value": "1 wei is equal to 1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4a5a36af36e543bedf8dbff1e0cb216d97ac8b89327ad1a6f64c53d96cd0f04c", + "typeString": "literal_string \"1 wei is equal to 1\"" + } + ], + "id": 4, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "182:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "182:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10, + "nodeType": "ExpressionStatement", + "src": "182:43:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "285:6:0", + "subdenomination": "gwei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "316539", + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "295:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "285:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 11, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "278:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "278:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16, + "nodeType": "ExpressionStatement", + "src": "278:21:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "361:7:0", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31653138", + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "372:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "src": "361:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 17, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "354:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "354:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 22, + "nodeType": "ExpressionStatement", + "src": "354:23:0" + } + ] + }, + "functionSelector": "97e82183", + "id": 24, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "etherUnitExample", + "nameLocation": "95:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "111:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "126:0:0" + }, + "scope": 89, + "src": "86:299:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 57, + "nodeType": "Block", + "src": "432:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "467:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "480:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "467:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 27, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "460:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 31, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "460:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32, + "nodeType": "ExpressionStatement", + "src": "460:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "530:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "543:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "530:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 33, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "523:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 37, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "523:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38, + "nodeType": "ExpressionStatement", + "src": "523:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "605:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "616:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "605:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 39, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "598:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "598:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 44, + "nodeType": "ExpressionStatement", + "src": "598:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "673:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "683:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "673:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 45, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "666:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "666:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 50, + "nodeType": "ExpressionStatement", + "src": "666:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "736:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "747:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "736:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 51, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "729:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 55, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "729:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 56, + "nodeType": "ExpressionStatement", + "src": "729:25:0" + } + ] + }, + "functionSelector": "24475f4c", + "id": 58, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timeUnitExample", + "nameLocation": "402:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [], + "src": "417:2:0" + }, + "returnParameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [], + "src": "432:0:0" + }, + "scope": 89, + "src": "393:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 87, + "nodeType": "Block", + "src": "845:379:0", + "statements": [ + { + "assignments": [ + 68 + ], + "declarations": [ + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "861:11:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "856:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 67, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "856:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 70, + "initialValue": { + "hexValue": "66616c7365", + "id": 69, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "875:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "856:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 71, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "1080:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1080:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 73, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "1099:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 74, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "1107:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1122:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1107:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1099:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1080:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "區塊的時間戳記至少在3秒以前, 才算有效。\n 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。", + "id": 84, + "nodeType": "IfStatement", + "src": "1076:102:0", + "trueBody": { + "id": 83, + "nodeType": "Block", + "src": "1133:45:0", + "statements": [ + { + "expression": { + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 79, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1148:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1162:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1148:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 82, + "nodeType": "ExpressionStatement", + "src": "1148:18:0" + } + ] + } + }, + { + "expression": { + "id": 85, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1205:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 66, + "id": 86, + "nodeType": "Return", + "src": "1198:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 88, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "779:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 63, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 60, + "mutability": "mutable", + "name": "start", + "nameLocation": "793:5:0", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "788:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 59, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "788:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "805:12:0", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "800:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 61, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "800:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "787:31:0" + }, + "returnParameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 65, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "839:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 64, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "839:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "838:6:0" + }, + "scope": 89, + "src": "770:454:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 90, + "src": "62:1165:0", + "usedErrors": [] + } + ], + "src": "33:1194:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/artifacts/build-info/ffa7a1255419da3c448b74e653736138.json b/Ep4/artifacts/build-info/ffa7a1255419da3c448b74e653736138.json new file mode 100644 index 0000000..ca12535 --- /dev/null +++ b/Ep4/artifacts/build-info/ffa7a1255419da3c448b74e653736138.json @@ -0,0 +1,5987 @@ +{ + "id": "ffa7a1255419da3c448b74e653736138", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.7", + "solcLongVersion": "0.8.7+commit.e28d00a7", + "input": { + "language": "Solidity", + "sources": { + "Ep4/example.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7.0;\r\n\r\ncontract Example {\r\n\r\n function EtherUnitExample() public {\r\n assert(1 wei == 1);\r\n }\r\n\r\n function TimeUnitExample() public pure {\r\n // 1秒\r\n assert(1 seconds == 1);\r\n\r\n // 1分鐘 = 60秒\r\n assert(1 minutes == 60 seconds);\r\n\r\n // 1小時 = 60分鐘\r\n assert(1 hours == 60 minutes);\r\n\r\n // 1天=24小時\r\n assert(1 days == 24 hours);\r\n\r\n // 1周 = 7天\r\n assert(1 weeks == 7 days);\r\n }\r\n\r\n function validate(uint start, uint secondsAfter) public view returns(bool) {\r\n bool isValidated = false;\r\n\t\t// 區塊的時間戳記至少在3秒以前, 才算有效\r\n if (block.timestamp >= start + secondsAfter * 3 seconds) {\r\n isValidated = true;\r\n }\r\n \r\n return isValidated;\r\n }\r\n}" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "": [ + "ast" + ], + "*": [ + "abi", + "metadata", + "devdoc", + "userdoc", + "storageLayout", + "evm.legacyAssembly", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "evm.gasEstimates", + "evm.assembly" + ] + } + } + } + }, + "output": { + "contracts": { + "Ep4/example.sol": { + "Example": { + "abi": [ + { + "inputs": [], + "name": "EtherUnitExample", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "TimeUnitExample", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "start", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "secondsAfter", + "type": "uint256" + } + ], + "name": "validate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "evm": { + "assembly": " /* \"Ep4/example.sol\":62:878 contract Example {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Ep4/example.sol\":62:878 contract Example {\r... */\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 0x19730b44\n eq\n tag_3\n jumpi\n dup1\n 0x822d0647\n eq\n tag_4\n jumpi\n dup1\n 0x9b92a9e8\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Ep4/example.sol\":545:875 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_3:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n tag_9\n jump\t// in\n tag_6:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Ep4/example.sol\":88:160 function EtherUnitExample() public {\r... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"Ep4/example.sol\":168:537 function TimeUnitExample() public pure {\r... */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n stop\n /* \"Ep4/example.sol\":545:875 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n tag_9:\n /* \"Ep4/example.sol\":614:618 bool */\n 0x00\n /* \"Ep4/example.sol\":631:647 bool isValidated */\n dup1\n /* \"Ep4/example.sol\":650:655 false */\n 0x00\n /* \"Ep4/example.sol\":631:655 bool isValidated = false */\n swap1\n pop\n /* \"Ep4/example.sol\":773:782 3 seconds */\n 0x03\n /* \"Ep4/example.sol\":758:770 secondsAfter */\n dup4\n /* \"Ep4/example.sol\":758:782 secondsAfter * 3 seconds */\n tag_17\n swap2\n swap1\n tag_18\n jump\t// in\n tag_17:\n /* \"Ep4/example.sol\":750:755 start */\n dup5\n /* \"Ep4/example.sol\":750:782 start + secondsAfter * 3 seconds */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"Ep4/example.sol\":731:746 block.timestamp */\n timestamp\n /* \"Ep4/example.sol\":731:782 block.timestamp >= start + secondsAfter * 3 seconds */\n lt\n /* \"Ep4/example.sol\":727:829 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21\n jumpi\n /* \"Ep4/example.sol\":813:817 true */\n 0x01\n /* \"Ep4/example.sol\":799:817 isValidated = true */\n swap1\n pop\n /* \"Ep4/example.sol\":727:829 if (block.timestamp >= start + secondsAfter * 3 seconds) {\r... */\n tag_21:\n /* \"Ep4/example.sol\":856:867 isValidated */\n dup1\n /* \"Ep4/example.sol\":849:867 return isValidated */\n swap2\n pop\n pop\n /* \"Ep4/example.sol\":545:875 function validate(uint start, uint secondsAfter) public view returns(bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"Ep4/example.sol\":88:160 function EtherUnitExample() public {\r... */\n tag_13:\n /* \"Ep4/example.sol\":150:151 1 */\n 0x01\n /* \"Ep4/example.sol\":141:146 1 wei */\n dup1\n /* \"Ep4/example.sol\":141:151 1 wei == 1 */\n eq\n /* \"Ep4/example.sol\":134:152 assert(1 wei == 1) */\n tag_23\n jumpi\n tag_24\n tag_25\n jump\t// in\n tag_24:\n tag_23:\n /* \"Ep4/example.sol\":88:160 function EtherUnitExample() public {\r... */\n jump\t// out\n /* \"Ep4/example.sol\":168:537 function TimeUnitExample() public pure {\r... */\n tag_15:\n /* \"Ep4/example.sol\":255:256 1 */\n 0x01\n /* \"Ep4/example.sol\":242:251 1 seconds */\n dup1\n /* \"Ep4/example.sol\":242:256 1 seconds == 1 */\n eq\n /* \"Ep4/example.sol\":235:257 assert(1 seconds == 1) */\n tag_27\n jumpi\n tag_28\n tag_25\n jump\t// in\n tag_28:\n tag_27:\n /* \"Ep4/example.sol\":318:328 60 seconds */\n 0x3c\n /* \"Ep4/example.sol\":305:314 1 minutes */\n dup1\n /* \"Ep4/example.sol\":305:328 1 minutes == 60 seconds */\n eq\n /* \"Ep4/example.sol\":298:329 assert(1 minutes == 60 seconds) */\n tag_29\n jumpi\n tag_30\n tag_25\n jump\t// in\n tag_30:\n tag_29:\n /* \"Ep4/example.sol\":391:401 60 minutes */\n 0x0e10\n /* \"Ep4/example.sol\":380:387 1 hours */\n dup1\n /* \"Ep4/example.sol\":380:401 1 hours == 60 minutes */\n eq\n /* \"Ep4/example.sol\":373:402 assert(1 hours == 60 minutes) */\n tag_31\n jumpi\n tag_32\n tag_25\n jump\t// in\n tag_32:\n tag_31:\n /* \"Ep4/example.sol\":458:466 24 hours */\n 0x015180\n /* \"Ep4/example.sol\":448:454 1 days */\n dup1\n /* \"Ep4/example.sol\":448:466 1 days == 24 hours */\n eq\n /* \"Ep4/example.sol\":441:467 assert(1 days == 24 hours) */\n tag_33\n jumpi\n tag_34\n tag_25\n jump\t// in\n tag_34:\n tag_33:\n /* \"Ep4/example.sol\":522:528 7 days */\n 0x093a80\n /* \"Ep4/example.sol\":511:518 1 weeks */\n dup1\n /* \"Ep4/example.sol\":511:528 1 weeks == 7 days */\n eq\n /* \"Ep4/example.sol\":504:529 assert(1 weeks == 7 days) */\n tag_35\n jumpi\n tag_36\n tag_25\n jump\t// in\n tag_36:\n tag_35:\n /* \"Ep4/example.sol\":168:537 function TimeUnitExample() public pure {\r... */\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_38:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_40\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_41\n jump\t// in\n tag_40:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:626 */\n tag_8:\n /* \"#utility.yul\":220:226 */\n 0x00\n /* \"#utility.yul\":228:234 */\n dup1\n /* \"#utility.yul\":277:279 */\n 0x40\n /* \"#utility.yul\":265:274 */\n dup4\n /* \"#utility.yul\":256:263 */\n dup6\n /* \"#utility.yul\":252:275 */\n sub\n /* \"#utility.yul\":248:280 */\n slt\n /* \"#utility.yul\":245:364 */\n iszero\n tag_43\n jumpi\n /* \"#utility.yul\":283:362 */\n tag_44\n tag_45\n jump\t// in\n tag_44:\n /* \"#utility.yul\":245:364 */\n tag_43:\n /* \"#utility.yul\":403:404 */\n 0x00\n /* \"#utility.yul\":428:481 */\n tag_46\n /* \"#utility.yul\":473:480 */\n dup6\n /* \"#utility.yul\":464:470 */\n dup3\n /* \"#utility.yul\":453:462 */\n dup7\n /* \"#utility.yul\":449:471 */\n add\n /* \"#utility.yul\":428:481 */\n tag_38\n jump\t// in\n tag_46:\n /* \"#utility.yul\":418:481 */\n swap3\n pop\n /* \"#utility.yul\":374:491 */\n pop\n /* \"#utility.yul\":530:532 */\n 0x20\n /* \"#utility.yul\":556:609 */\n tag_47\n /* \"#utility.yul\":601:608 */\n dup6\n /* \"#utility.yul\":592:598 */\n dup3\n /* \"#utility.yul\":581:590 */\n dup7\n /* \"#utility.yul\":577:599 */\n add\n /* \"#utility.yul\":556:609 */\n tag_38\n jump\t// in\n tag_47:\n /* \"#utility.yul\":546:609 */\n swap2\n pop\n /* \"#utility.yul\":501:619 */\n pop\n /* \"#utility.yul\":152:626 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":632:741 */\n tag_48:\n /* \"#utility.yul\":713:734 */\n tag_50\n /* \"#utility.yul\":728:733 */\n dup2\n /* \"#utility.yul\":713:734 */\n tag_51\n jump\t// in\n tag_50:\n /* \"#utility.yul\":708:711 */\n dup3\n /* \"#utility.yul\":701:735 */\n mstore\n /* \"#utility.yul\":632:741 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":747:957 */\n tag_11:\n /* \"#utility.yul\":834:838 */\n 0x00\n /* \"#utility.yul\":872:874 */\n 0x20\n /* \"#utility.yul\":861:870 */\n dup3\n /* \"#utility.yul\":857:875 */\n add\n /* \"#utility.yul\":849:875 */\n swap1\n pop\n /* \"#utility.yul\":885:950 */\n tag_53\n /* \"#utility.yul\":947:948 */\n 0x00\n /* \"#utility.yul\":936:945 */\n dup4\n /* \"#utility.yul\":932:949 */\n add\n /* \"#utility.yul\":923:929 */\n dup5\n /* \"#utility.yul\":885:950 */\n tag_48\n jump\t// in\n tag_53:\n /* \"#utility.yul\":747:957 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1044:1349 */\n tag_20:\n /* \"#utility.yul\":1084:1087 */\n 0x00\n /* \"#utility.yul\":1103:1123 */\n tag_57\n /* \"#utility.yul\":1121:1122 */\n dup3\n /* \"#utility.yul\":1103:1123 */\n tag_58\n jump\t// in\n tag_57:\n /* \"#utility.yul\":1098:1123 */\n swap2\n pop\n /* \"#utility.yul\":1137:1157 */\n tag_59\n /* \"#utility.yul\":1155:1156 */\n dup4\n /* \"#utility.yul\":1137:1157 */\n tag_58\n jump\t// in\n tag_59:\n /* \"#utility.yul\":1132:1157 */\n swap3\n pop\n /* \"#utility.yul\":1291:1292 */\n dup3\n /* \"#utility.yul\":1223:1289 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1219:1293 */\n sub\n /* \"#utility.yul\":1216:1217 */\n dup3\n /* \"#utility.yul\":1213:1294 */\n gt\n /* \"#utility.yul\":1210:1317 */\n iszero\n tag_60\n jumpi\n /* \"#utility.yul\":1297:1315 */\n tag_61\n tag_62\n jump\t// in\n tag_61:\n /* \"#utility.yul\":1210:1317 */\n tag_60:\n /* \"#utility.yul\":1341:1342 */\n dup3\n /* \"#utility.yul\":1338:1339 */\n dup3\n /* \"#utility.yul\":1334:1343 */\n add\n /* \"#utility.yul\":1327:1343 */\n swap1\n pop\n /* \"#utility.yul\":1044:1349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1355:1703 */\n tag_18:\n /* \"#utility.yul\":1395:1402 */\n 0x00\n /* \"#utility.yul\":1418:1438 */\n tag_64\n /* \"#utility.yul\":1436:1437 */\n dup3\n /* \"#utility.yul\":1418:1438 */\n tag_58\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1413:1438 */\n swap2\n pop\n /* \"#utility.yul\":1452:1472 */\n tag_65\n /* \"#utility.yul\":1470:1471 */\n dup4\n /* \"#utility.yul\":1452:1472 */\n tag_58\n jump\t// in\n tag_65:\n /* \"#utility.yul\":1447:1472 */\n swap3\n pop\n /* \"#utility.yul\":1640:1641 */\n dup2\n /* \"#utility.yul\":1572:1638 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1568:1642 */\n div\n /* \"#utility.yul\":1565:1566 */\n dup4\n /* \"#utility.yul\":1562:1643 */\n gt\n /* \"#utility.yul\":1557:1558 */\n dup3\n /* \"#utility.yul\":1550:1559 */\n iszero\n /* \"#utility.yul\":1543:1560 */\n iszero\n /* \"#utility.yul\":1539:1644 */\n and\n /* \"#utility.yul\":1536:1667 */\n iszero\n tag_66\n jumpi\n /* \"#utility.yul\":1647:1665 */\n tag_67\n tag_62\n jump\t// in\n tag_67:\n /* \"#utility.yul\":1536:1667 */\n tag_66:\n /* \"#utility.yul\":1695:1696 */\n dup3\n /* \"#utility.yul\":1692:1693 */\n dup3\n /* \"#utility.yul\":1688:1697 */\n mul\n /* \"#utility.yul\":1677:1697 */\n swap1\n pop\n /* \"#utility.yul\":1355:1703 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1709:1799 */\n tag_51:\n /* \"#utility.yul\":1743:1750 */\n 0x00\n /* \"#utility.yul\":1786:1791 */\n dup2\n /* \"#utility.yul\":1779:1792 */\n iszero\n /* \"#utility.yul\":1772:1793 */\n iszero\n /* \"#utility.yul\":1761:1793 */\n swap1\n pop\n /* \"#utility.yul\":1709:1799 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1805:1882 */\n tag_58:\n /* \"#utility.yul\":1842:1849 */\n 0x00\n /* \"#utility.yul\":1871:1876 */\n dup2\n /* \"#utility.yul\":1860:1876 */\n swap1\n pop\n /* \"#utility.yul\":1805:1882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1888:2068 */\n tag_25:\n /* \"#utility.yul\":1936:2013 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1933:1934 */\n 0x00\n /* \"#utility.yul\":1926:2014 */\n mstore\n /* \"#utility.yul\":2033:2037 */\n 0x01\n /* \"#utility.yul\":2030:2031 */\n 0x04\n /* \"#utility.yul\":2023:2038 */\n mstore\n /* \"#utility.yul\":2057:2061 */\n 0x24\n /* \"#utility.yul\":2054:2055 */\n 0x00\n /* \"#utility.yul\":2047:2062 */\n revert\n /* \"#utility.yul\":2074:2254 */\n tag_62:\n /* \"#utility.yul\":2122:2199 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":2119:2120 */\n 0x00\n /* \"#utility.yul\":2112:2200 */\n mstore\n /* \"#utility.yul\":2219:2223 */\n 0x11\n /* \"#utility.yul\":2216:2217 */\n 0x04\n /* \"#utility.yul\":2209:2224 */\n mstore\n /* \"#utility.yul\":2243:2247 */\n 0x24\n /* \"#utility.yul\":2240:2241 */\n 0x00\n /* \"#utility.yul\":2233:2248 */\n revert\n /* \"#utility.yul\":2383:2500 */\n tag_45:\n /* \"#utility.yul\":2492:2493 */\n 0x00\n /* \"#utility.yul\":2489:2490 */\n dup1\n /* \"#utility.yul\":2482:2494 */\n revert\n /* \"#utility.yul\":2506:2628 */\n tag_41:\n /* \"#utility.yul\":2579:2603 */\n tag_76\n /* \"#utility.yul\":2597:2602 */\n dup2\n /* \"#utility.yul\":2579:2603 */\n tag_58\n jump\t// in\n tag_76:\n /* \"#utility.yul\":2572:2577 */\n dup2\n /* \"#utility.yul\":2569:2604 */\n eq\n /* \"#utility.yul\":2559:2622 */\n tag_77\n jumpi\n /* \"#utility.yul\":2618:2619 */\n 0x00\n /* \"#utility.yul\":2615:2616 */\n dup1\n /* \"#utility.yul\":2608:2620 */\n revert\n /* \"#utility.yul\":2559:2622 */\n tag_77:\n /* \"#utility.yul\":2506:2628 */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220412a104ae68d4634a2a6421267eb424cb115c159be1df767603aad295bad697e64736f6c63430008070033\n}\n", + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50610322806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b4414610046578063822d0647146100765780639b92a9e814610080575b600080fd5b610060600480360381019061005b9190610142565b61008a565b60405161006d9190610191565b60405180910390f35b61007e6100be565b005b6100886100d1565b005b6000806000905060038361009e9190610202565b846100a991906101ac565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610272565b5b565b600180146100e2576100e1610272565b5b603c80146100f3576100f2610272565b5b610e10801461010557610104610272565b5b62015180801461011857610117610272565b5b62093a80801461012b5761012a610272565b5b565b60008135905061013c816102d5565b92915050565b60008060408385031215610159576101586102d0565b5b60006101678582860161012d565b92505060206101788582860161012d565b9150509250929050565b61018b8161025c565b82525050565b60006020820190506101a66000830184610182565b92915050565b60006101b782610268565b91506101c283610268565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f7576101f66102a1565b5b828201905092915050565b600061020d82610268565b915061021883610268565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610251576102506102a1565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6102de81610268565b81146102e957600080fd5b5056fea2646970667358221220412a104ae68d4634a2a6421267eb424cb115c159be1df767603aad295bad697e64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x322 DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x822D0647 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x9B92A9E8 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x142 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x191 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0xD1 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x202 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1AC JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xE2 JUMPI PUSH2 0xE1 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xF3 JUMPI PUSH2 0xF2 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13C DUP2 PUSH2 0x2D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x159 JUMPI PUSH2 0x158 PUSH2 0x2D0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x178 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x18B DUP2 PUSH2 0x25C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x182 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B7 DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C2 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F7 JUMPI PUSH2 0x1F6 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20D DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x218 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x251 JUMPI PUSH2 0x250 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DE DUP2 PUSH2 0x268 JUMP JUMPDEST DUP2 EQ PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 COINBASE 0x2A LT 0x4A 0xE6 DUP14 CHAINID CALLVALUE LOG2 0xA6 TIMESTAMP SLT PUSH8 0xEB424CB115C159BE SAR 0xF7 PUSH8 0x603AAD295BAD697E PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:816:0:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@EtherUnitExample_11": { + "entryPoint": 190, + "id": 11, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@TimeUnitExample_45": { + "entryPoint": 209, + "id": 45, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@validate_75": { + "entryPoint": 138, + "id": 75, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 301, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 322, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 386, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 401, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 428, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 514, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 604, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 616, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 626, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 673, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 720, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 725, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2631:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "59:87:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "69:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "91:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "78:12:1" + }, + "nodeType": "YulFunctionCall", + "src": "78:20:1" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "69:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "107:26:1" + }, + "nodeType": "YulFunctionCall", + "src": "107:33:1" + }, + "nodeType": "YulExpressionStatement", + "src": "107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "37:6:1", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "45:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "53:5:1", + "type": "" + } + ], + "src": "7:139:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "235:391:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "281:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "283:77:1" + }, + "nodeType": "YulFunctionCall", + "src": "283:79:1" + }, + "nodeType": "YulExpressionStatement", + "src": "283:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "256:7:1" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "265:9:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "252:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "252:23:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "277:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "248:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "248:32:1" + }, + "nodeType": "YulIf", + "src": "245:119:1" + }, + { + "nodeType": "YulBlock", + "src": "374:117:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "389:15:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "403:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "393:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "418:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "453:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "464:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "449:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "473:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "428:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "428:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "418:6:1" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "501:118:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "516:16:1", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "530:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "520:6:1", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "546:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "581:9:1" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "592:6:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "577:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "577:22:1" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "601:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "556:20:1" + }, + "nodeType": "YulFunctionCall", + "src": "556:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "546:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "197:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "208:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "220:6:1", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "228:6:1", + "type": "" + } + ], + "src": "152:474:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "691:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "708:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "728:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "713:14:1" + }, + "nodeType": "YulFunctionCall", + "src": "713:21:1" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "701:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "701:34:1" + }, + "nodeType": "YulExpressionStatement", + "src": "701:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "679:5:1", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "686:3:1", + "type": "" + } + ], + "src": "632:109:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "839:118:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "849:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "861:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "872:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "857:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "857:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "849:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "923:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "936:9:1" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "947:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "932:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "932:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "885:37:1" + }, + "nodeType": "YulFunctionCall", + "src": "885:65:1" + }, + "nodeType": "YulExpressionStatement", + "src": "885:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "811:9:1", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "823:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "834:4:1", + "type": "" + } + ], + "src": "747:210:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1003:35:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1013:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1023:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "1023:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1013:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "996:6:1", + "type": "" + } + ], + "src": "963:75:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1088:261:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1098:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1121:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1103:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1103:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1098:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1132:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1155:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1137:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1137:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1132:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1295:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1297:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1297:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1297:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1216:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1223:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1291:1:1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1219:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1219:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1213:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1213:81:1" + }, + "nodeType": "YulIf", + "src": "1210:107:1" + }, + { + "nodeType": "YulAssignment", + "src": "1327:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1338:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1341:1:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1334:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1334:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1327:3:1" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1075:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1078:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1084:3:1", + "type": "" + } + ], + "src": "1044:305:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1403:300:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1413:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1436:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1418:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1418:20:1" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1413:1:1" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1447:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1470:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1452:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "1452:20:1" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1447:1:1" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1645:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1647:16:1" + }, + "nodeType": "YulFunctionCall", + "src": "1647:18:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1647:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1557:1:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1550:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1550:9:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1543:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1543:17:1" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1565:1:1" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1572:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1640:1:1" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1568:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1568:74:1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1562:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "1562:81:1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1539:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1539:105:1" + }, + "nodeType": "YulIf", + "src": "1536:131:1" + }, + { + "nodeType": "YulAssignment", + "src": "1677:20:1", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1692:1:1" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1695:1:1" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1688:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "1688:9:1" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "1677:7:1" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1386:1:1", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1389:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "1395:7:1", + "type": "" + } + ], + "src": "1355:348:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1751:48:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1761:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1786:5:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1779:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1779:13:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1772:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1772:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1761:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1733:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1743:7:1", + "type": "" + } + ], + "src": "1709:90:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1850:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1860:16:1", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1871:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1860:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1842:7:1", + "type": "" + } + ], + "src": "1805:77:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1916:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1933:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1936:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1926:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1926:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1926:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2030:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2033:4:1", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2023:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2023:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2023:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2054:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2057:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2047:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2047:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2047:15:1" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "1888:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2102:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2119:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2122:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2112:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2112:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2112:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2216:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2219:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2209:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2209:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2209:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2240:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2243:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2233:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2233:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2233:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2074:180:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2349:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2366:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2359:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2359:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2359:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "2260:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2472:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2489:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2492:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2482:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2482:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "2383:117:1" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2549:79:1", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2606:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2615:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2608:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2608:12:1" + }, + "nodeType": "YulExpressionStatement", + "src": "2608:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2572:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2597:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2579:17:1" + }, + "nodeType": "YulFunctionCall", + "src": "2579:24:1" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2569:2:1" + }, + "nodeType": "YulFunctionCall", + "src": "2569:35:1" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2562:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "2562:43:1" + }, + "nodeType": "YulIf", + "src": "2559:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2542:5:1", + "type": "" + } + ], + "src": "2506:122:1" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806319730b4414610046578063822d0647146100765780639b92a9e814610080575b600080fd5b610060600480360381019061005b9190610142565b61008a565b60405161006d9190610191565b60405180910390f35b61007e6100be565b005b6100886100d1565b005b6000806000905060038361009e9190610202565b846100a991906101ac565b42106100b457600190505b8091505092915050565b600180146100cf576100ce610272565b5b565b600180146100e2576100e1610272565b5b603c80146100f3576100f2610272565b5b610e10801461010557610104610272565b5b62015180801461011857610117610272565b5b62093a80801461012b5761012a610272565b5b565b60008135905061013c816102d5565b92915050565b60008060408385031215610159576101586102d0565b5b60006101678582860161012d565b92505060206101788582860161012d565b9150509250929050565b61018b8161025c565b82525050565b60006020820190506101a66000830184610182565b92915050565b60006101b782610268565b91506101c283610268565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f7576101f66102a1565b5b828201905092915050565b600061020d82610268565b915061021883610268565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610251576102506102a1565b5b828202905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6102de81610268565b81146102e957600080fd5b5056fea2646970667358221220412a104ae68d4634a2a6421267eb424cb115c159be1df767603aad295bad697e64736f6c63430008070033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19730B44 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x822D0647 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0x9B92A9E8 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x142 JUMP JUMPDEST PUSH2 0x8A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x191 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xBE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0xD1 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x3 DUP4 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x202 JUMP JUMPDEST DUP5 PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1AC JUMP JUMPDEST TIMESTAMP LT PUSH2 0xB4 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xCF JUMPI PUSH2 0xCE PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 DUP1 EQ PUSH2 0xE2 JUMPI PUSH2 0xE1 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH1 0x3C DUP1 EQ PUSH2 0xF3 JUMPI PUSH2 0xF2 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH2 0xE10 DUP1 EQ PUSH2 0x105 JUMPI PUSH2 0x104 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x15180 DUP1 EQ PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x272 JUMP JUMPDEST JUMPDEST PUSH3 0x93A80 DUP1 EQ PUSH2 0x12B JUMPI PUSH2 0x12A PUSH2 0x272 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13C DUP2 PUSH2 0x2D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x159 JUMPI PUSH2 0x158 PUSH2 0x2D0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x178 DUP6 DUP3 DUP7 ADD PUSH2 0x12D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x18B DUP2 PUSH2 0x25C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x182 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B7 DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C2 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F7 JUMPI PUSH2 0x1F6 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20D DUP3 PUSH2 0x268 JUMP JUMPDEST SWAP2 POP PUSH2 0x218 DUP4 PUSH2 0x268 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x251 JUMPI PUSH2 0x250 PUSH2 0x2A1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DE DUP2 PUSH2 0x268 JUMP JUMPDEST DUP2 EQ PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 COINBASE 0x2A LT 0x4A 0xE6 DUP14 CHAINID CALLVALUE LOG2 0xA6 TIMESTAMP SLT PUSH8 0xEB424CB115C159BE SAR 0xF7 PUSH8 0x603AAD295BAD697E PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ", + "sourceMap": "62:816:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;545:330;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;88:72;;;:::i;:::-;;168:369;;;:::i;:::-;;545:330;614:4;631:16;650:5;631:24;;773:9;758:12;:24;;;;:::i;:::-;750:5;:32;;;;:::i;:::-;731:15;:51;727:102;;813:4;799:18;;727:102;856:11;849:18;;;545:330;;;;:::o;88:72::-;150:1;141:5;:10;134:18;;;;:::i;:::-;;88:72::o;168:369::-;255:1;242:9;:14;235:22;;;;:::i;:::-;;318:10;305:9;:23;298:31;;;;:::i;:::-;;391:10;380:7;:21;373:29;;;;:::i;:::-;;458:8;448:6;:18;441:26;;;;:::i;:::-;;522:6;511:7;:17;504:25;;;;:::i;:::-;;168:369::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:474::-;220:6;228;277:2;265:9;256:7;252:23;248:32;245:119;;;283:79;;:::i;:::-;245:119;403:1;428:53;473:7;464:6;453:9;449:22;428:53;:::i;:::-;418:63;;374:117;530:2;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;501:118;152:474;;;;;:::o;632:109::-;713:21;728:5;713:21;:::i;:::-;708:3;701:34;632:109;;:::o;747:210::-;834:4;872:2;861:9;857:18;849:26;;885:65;947:1;936:9;932:17;923:6;885:65;:::i;:::-;747:210;;;;:::o;1044:305::-;1084:3;1103:20;1121:1;1103:20;:::i;:::-;1098:25;;1137:20;1155:1;1137:20;:::i;:::-;1132:25;;1291:1;1223:66;1219:74;1216:1;1213:81;1210:107;;;1297:18;;:::i;:::-;1210:107;1341:1;1338;1334:9;1327:16;;1044:305;;;;:::o;1355:348::-;1395:7;1418:20;1436:1;1418:20;:::i;:::-;1413:25;;1452:20;1470:1;1452:20;:::i;:::-;1447:25;;1640:1;1572:66;1568:74;1565:1;1562:81;1557:1;1550:9;1543:17;1539:105;1536:131;;;1647:18;;:::i;:::-;1536:131;1695:1;1692;1688:9;1677:20;;1355:348;;;;:::o;1709:90::-;1743:7;1786:5;1779:13;1772:21;1761:32;;1709:90;;;:::o;1805:77::-;1842:7;1871:5;1860:16;;1805:77;;;:::o;1888:180::-;1936:77;1933:1;1926:88;2033:4;2030:1;2023:15;2057:4;2054:1;2047:15;2074:180;2122:77;2119:1;2112:88;2219:4;2216:1;2209:15;2243:4;2240:1;2233:15;2383:117;2492:1;2489;2482:12;2506:122;2579:24;2597:5;2579:24;:::i;:::-;2572:5;2569:35;2559:63;;2618:1;2615;2608:12;2559:63;2506:122;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "160400", + "executionCost": "208", + "totalCost": "160608" + }, + "external": { + "EtherUnitExample()": "167", + "TimeUnitExample()": "281", + "validate(uint256,uint256)": "infinite" + } + }, + "legacyAssembly": { + ".code": [ + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 878, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 878, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 878, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 878, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH #[$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 878, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH [$]", + "source": 0, + "value": "0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 878, + "name": "CODECOPY", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 878, + "name": "RETURN", + "source": 0 + } + ], + ".data": { + "0": { + ".auxdata": "a2646970667358221220412a104ae68d4634a2a6421267eb424cb115c159be1df767603aad295bad697e64736f6c63430008070033", + ".code": [ + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "80" + }, + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 62, + "end": 878, + "name": "MSTORE", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "CALLVALUE", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "ISZERO", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH [tag]", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 878, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 878, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "REVERT", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "tag", + "source": 0, + "value": "1" + }, + { + "begin": 62, + "end": 878, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "POP", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 878, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "LT", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH [tag]", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 878, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 878, + "name": "CALLDATALOAD", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "E0" + }, + { + "begin": 62, + "end": 878, + "name": "SHR", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "19730B44" + }, + { + "begin": 62, + "end": 878, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH [tag]", + "source": 0, + "value": "3" + }, + { + "begin": 62, + "end": 878, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "822D0647" + }, + { + "begin": 62, + "end": 878, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH [tag]", + "source": 0, + "value": "4" + }, + { + "begin": 62, + "end": 878, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "9B92A9E8" + }, + { + "begin": 62, + "end": 878, + "name": "EQ", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH [tag]", + "source": 0, + "value": "5" + }, + { + "begin": 62, + "end": 878, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "tag", + "source": 0, + "value": "2" + }, + { + "begin": 62, + "end": 878, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 62, + "end": 878, + "name": "DUP1", + "source": 0 + }, + { + "begin": 62, + "end": 878, + "name": "REVERT", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "tag", + "source": 0, + "value": "3" + }, + { + "begin": 545, + "end": 875, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "PUSH [tag]", + "source": 0, + "value": "6" + }, + { + "begin": 545, + "end": 875, + "name": "PUSH", + "source": 0, + "value": "4" + }, + { + "begin": 545, + "end": 875, + "name": "DUP1", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "CALLDATASIZE", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "SUB", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "DUP2", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "ADD", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "PUSH [tag]", + "source": 0, + "value": "7" + }, + { + "begin": 545, + "end": 875, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "PUSH [tag]", + "source": 0, + "value": "8" + }, + { + "begin": 545, + "end": 875, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 545, + "end": 875, + "name": "tag", + "source": 0, + "value": "7" + }, + { + "begin": 545, + "end": 875, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "PUSH [tag]", + "source": 0, + "value": "9" + }, + { + "begin": 545, + "end": 875, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 545, + "end": 875, + "name": "tag", + "source": 0, + "value": "6" + }, + { + "begin": 545, + "end": 875, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 545, + "end": 875, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "PUSH [tag]", + "source": 0, + "value": "10" + }, + { + "begin": 545, + "end": 875, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "PUSH [tag]", + "source": 0, + "value": "11" + }, + { + "begin": 545, + "end": 875, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 545, + "end": 875, + "name": "tag", + "source": 0, + "value": "10" + }, + { + "begin": 545, + "end": 875, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "PUSH", + "source": 0, + "value": "40" + }, + { + "begin": 545, + "end": 875, + "name": "MLOAD", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "DUP1", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "SUB", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "RETURN", + "source": 0 + }, + { + "begin": 88, + "end": 160, + "name": "tag", + "source": 0, + "value": "4" + }, + { + "begin": 88, + "end": 160, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 160, + "name": "PUSH [tag]", + "source": 0, + "value": "12" + }, + { + "begin": 88, + "end": 160, + "name": "PUSH [tag]", + "source": 0, + "value": "13" + }, + { + "begin": 88, + "end": 160, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 88, + "end": 160, + "name": "tag", + "source": 0, + "value": "12" + }, + { + "begin": 88, + "end": 160, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 160, + "name": "STOP", + "source": 0 + }, + { + "begin": 168, + "end": 537, + "name": "tag", + "source": 0, + "value": "5" + }, + { + "begin": 168, + "end": 537, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 168, + "end": 537, + "name": "PUSH [tag]", + "source": 0, + "value": "14" + }, + { + "begin": 168, + "end": 537, + "name": "PUSH [tag]", + "source": 0, + "value": "15" + }, + { + "begin": 168, + "end": 537, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 168, + "end": 537, + "name": "tag", + "source": 0, + "value": "14" + }, + { + "begin": 168, + "end": 537, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 168, + "end": 537, + "name": "STOP", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "tag", + "source": 0, + "value": "9" + }, + { + "begin": 545, + "end": 875, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 614, + "end": 618, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 631, + "end": 647, + "name": "DUP1", + "source": 0 + }, + { + "begin": 650, + "end": 655, + "name": "PUSH", + "source": 0, + "value": "0" + }, + { + "begin": 631, + "end": 655, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 631, + "end": 655, + "name": "POP", + "source": 0 + }, + { + "begin": 773, + "end": 782, + "name": "PUSH", + "source": 0, + "value": "3" + }, + { + "begin": 758, + "end": 770, + "name": "DUP4", + "source": 0 + }, + { + "begin": 758, + "end": 782, + "name": "PUSH [tag]", + "source": 0, + "value": "17" + }, + { + "begin": 758, + "end": 782, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 758, + "end": 782, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 758, + "end": 782, + "name": "PUSH [tag]", + "source": 0, + "value": "18" + }, + { + "begin": 758, + "end": 782, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 758, + "end": 782, + "name": "tag", + "source": 0, + "value": "17" + }, + { + "begin": 758, + "end": 782, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 750, + "end": 755, + "name": "DUP5", + "source": 0 + }, + { + "begin": 750, + "end": 782, + "name": "PUSH [tag]", + "source": 0, + "value": "19" + }, + { + "begin": 750, + "end": 782, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 750, + "end": 782, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 750, + "end": 782, + "name": "PUSH [tag]", + "source": 0, + "value": "20" + }, + { + "begin": 750, + "end": 782, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 750, + "end": 782, + "name": "tag", + "source": 0, + "value": "19" + }, + { + "begin": 750, + "end": 782, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 731, + "end": 746, + "name": "TIMESTAMP", + "source": 0 + }, + { + "begin": 731, + "end": 782, + "name": "LT", + "source": 0 + }, + { + "begin": 727, + "end": 829, + "name": "PUSH [tag]", + "source": 0, + "value": "21" + }, + { + "begin": 727, + "end": 829, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 813, + "end": 817, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 799, + "end": 817, + "name": "SWAP1", + "source": 0 + }, + { + "begin": 799, + "end": 817, + "name": "POP", + "source": 0 + }, + { + "begin": 727, + "end": 829, + "name": "tag", + "source": 0, + "value": "21" + }, + { + "begin": 727, + "end": 829, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 856, + "end": 867, + "name": "DUP1", + "source": 0 + }, + { + "begin": 849, + "end": 867, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 849, + "end": 867, + "name": "POP", + "source": 0 + }, + { + "begin": 849, + "end": 867, + "name": "POP", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "SWAP3", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "SWAP2", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "POP", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "POP", + "source": 0 + }, + { + "begin": 545, + "end": 875, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 88, + "end": 160, + "name": "tag", + "source": 0, + "value": "13" + }, + { + "begin": 88, + "end": 160, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 150, + "end": 151, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 141, + "end": 146, + "name": "DUP1", + "source": 0 + }, + { + "begin": 141, + "end": 151, + "name": "EQ", + "source": 0 + }, + { + "begin": 134, + "end": 152, + "name": "PUSH [tag]", + "source": 0, + "value": "23" + }, + { + "begin": 134, + "end": 152, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 134, + "end": 152, + "name": "PUSH [tag]", + "source": 0, + "value": "24" + }, + { + "begin": 134, + "end": 152, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 134, + "end": 152, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 134, + "end": 152, + "name": "tag", + "source": 0, + "value": "24" + }, + { + "begin": 134, + "end": 152, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 134, + "end": 152, + "name": "tag", + "source": 0, + "value": "23" + }, + { + "begin": 134, + "end": 152, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 88, + "end": 160, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 168, + "end": 537, + "name": "tag", + "source": 0, + "value": "15" + }, + { + "begin": 168, + "end": 537, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 255, + "end": 256, + "name": "PUSH", + "source": 0, + "value": "1" + }, + { + "begin": 242, + "end": 251, + "name": "DUP1", + "source": 0 + }, + { + "begin": 242, + "end": 256, + "name": "EQ", + "source": 0 + }, + { + "begin": 235, + "end": 257, + "name": "PUSH [tag]", + "source": 0, + "value": "27" + }, + { + "begin": 235, + "end": 257, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 235, + "end": 257, + "name": "PUSH [tag]", + "source": 0, + "value": "28" + }, + { + "begin": 235, + "end": 257, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 235, + "end": 257, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 235, + "end": 257, + "name": "tag", + "source": 0, + "value": "28" + }, + { + "begin": 235, + "end": 257, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 235, + "end": 257, + "name": "tag", + "source": 0, + "value": "27" + }, + { + "begin": 235, + "end": 257, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 318, + "end": 328, + "name": "PUSH", + "source": 0, + "value": "3C" + }, + { + "begin": 305, + "end": 314, + "name": "DUP1", + "source": 0 + }, + { + "begin": 305, + "end": 328, + "name": "EQ", + "source": 0 + }, + { + "begin": 298, + "end": 329, + "name": "PUSH [tag]", + "source": 0, + "value": "29" + }, + { + "begin": 298, + "end": 329, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 298, + "end": 329, + "name": "PUSH [tag]", + "source": 0, + "value": "30" + }, + { + "begin": 298, + "end": 329, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 298, + "end": 329, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 298, + "end": 329, + "name": "tag", + "source": 0, + "value": "30" + }, + { + "begin": 298, + "end": 329, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 298, + "end": 329, + "name": "tag", + "source": 0, + "value": "29" + }, + { + "begin": 298, + "end": 329, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 391, + "end": 401, + "name": "PUSH", + "source": 0, + "value": "E10" + }, + { + "begin": 380, + "end": 387, + "name": "DUP1", + "source": 0 + }, + { + "begin": 380, + "end": 401, + "name": "EQ", + "source": 0 + }, + { + "begin": 373, + "end": 402, + "name": "PUSH [tag]", + "source": 0, + "value": "31" + }, + { + "begin": 373, + "end": 402, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 373, + "end": 402, + "name": "PUSH [tag]", + "source": 0, + "value": "32" + }, + { + "begin": 373, + "end": 402, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 373, + "end": 402, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 373, + "end": 402, + "name": "tag", + "source": 0, + "value": "32" + }, + { + "begin": 373, + "end": 402, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 373, + "end": 402, + "name": "tag", + "source": 0, + "value": "31" + }, + { + "begin": 373, + "end": 402, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 458, + "end": 466, + "name": "PUSH", + "source": 0, + "value": "15180" + }, + { + "begin": 448, + "end": 454, + "name": "DUP1", + "source": 0 + }, + { + "begin": 448, + "end": 466, + "name": "EQ", + "source": 0 + }, + { + "begin": 441, + "end": 467, + "name": "PUSH [tag]", + "source": 0, + "value": "33" + }, + { + "begin": 441, + "end": 467, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 441, + "end": 467, + "name": "PUSH [tag]", + "source": 0, + "value": "34" + }, + { + "begin": 441, + "end": 467, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 441, + "end": 467, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 441, + "end": 467, + "name": "tag", + "source": 0, + "value": "34" + }, + { + "begin": 441, + "end": 467, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 441, + "end": 467, + "name": "tag", + "source": 0, + "value": "33" + }, + { + "begin": 441, + "end": 467, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 522, + "end": 528, + "name": "PUSH", + "source": 0, + "value": "93A80" + }, + { + "begin": 511, + "end": 518, + "name": "DUP1", + "source": 0 + }, + { + "begin": 511, + "end": 528, + "name": "EQ", + "source": 0 + }, + { + "begin": 504, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "35" + }, + { + "begin": 504, + "end": 529, + "name": "JUMPI", + "source": 0 + }, + { + "begin": 504, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "36" + }, + { + "begin": 504, + "end": 529, + "name": "PUSH [tag]", + "source": 0, + "value": "25" + }, + { + "begin": 504, + "end": 529, + "name": "JUMP", + "source": 0, + "value": "[in]" + }, + { + "begin": 504, + "end": 529, + "name": "tag", + "source": 0, + "value": "36" + }, + { + "begin": 504, + "end": 529, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 504, + "end": 529, + "name": "tag", + "source": 0, + "value": "35" + }, + { + "begin": 504, + "end": 529, + "name": "JUMPDEST", + "source": 0 + }, + { + "begin": 168, + "end": 537, + "name": "JUMP", + "source": 0, + "value": "[out]" + }, + { + "begin": 7, + "end": 146, + "name": "tag", + "source": 1, + "value": "38" + }, + { + "begin": 7, + "end": 146, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 53, + "end": 58, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 91, + "end": 97, + "name": "DUP2", + "source": 1 + }, + { + "begin": 78, + "end": 98, + "name": "CALLDATALOAD", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 69, + "end": 98, + "name": "POP", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "40" + }, + { + "begin": 134, + "end": 139, + "name": "DUP2", + "source": 1 + }, + { + "begin": 107, + "end": 140, + "name": "PUSH [tag]", + "source": 1, + "value": "41" + }, + { + "begin": 107, + "end": 140, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 107, + "end": 140, + "name": "tag", + "source": 1, + "value": "40" + }, + { + "begin": 107, + "end": 140, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "POP", + "source": 1 + }, + { + "begin": 7, + "end": 146, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 152, + "end": 626, + "name": "tag", + "source": 1, + "value": "8" + }, + { + "begin": 152, + "end": 626, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 220, + "end": 226, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 228, + "end": 234, + "name": "DUP1", + "source": 1 + }, + { + "begin": 277, + "end": 279, + "name": "PUSH", + "source": 1, + "value": "40" + }, + { + "begin": 265, + "end": 274, + "name": "DUP4", + "source": 1 + }, + { + "begin": 256, + "end": 263, + "name": "DUP6", + "source": 1 + }, + { + "begin": 252, + "end": 275, + "name": "SUB", + "source": 1 + }, + { + "begin": 248, + "end": 280, + "name": "SLT", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "PUSH [tag]", + "source": 1, + "value": "43" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "44" + }, + { + "begin": 283, + "end": 362, + "name": "PUSH [tag]", + "source": 1, + "value": "45" + }, + { + "begin": 283, + "end": 362, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 283, + "end": 362, + "name": "tag", + "source": 1, + "value": "44" + }, + { + "begin": 283, + "end": 362, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 245, + "end": 364, + "name": "tag", + "source": 1, + "value": "43" + }, + { + "begin": 245, + "end": 364, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 403, + "end": 404, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "46" + }, + { + "begin": 473, + "end": 480, + "name": "DUP6", + "source": 1 + }, + { + "begin": 464, + "end": 470, + "name": "DUP3", + "source": 1 + }, + { + "begin": 453, + "end": 462, + "name": "DUP7", + "source": 1 + }, + { + "begin": 449, + "end": 471, + "name": "ADD", + "source": 1 + }, + { + "begin": 428, + "end": 481, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 428, + "end": 481, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 428, + "end": 481, + "name": "tag", + "source": 1, + "value": "46" + }, + { + "begin": 428, + "end": 481, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 418, + "end": 481, + "name": "POP", + "source": 1 + }, + { + "begin": 374, + "end": 491, + "name": "POP", + "source": 1 + }, + { + "begin": 530, + "end": 532, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "47" + }, + { + "begin": 601, + "end": 608, + "name": "DUP6", + "source": 1 + }, + { + "begin": 592, + "end": 598, + "name": "DUP3", + "source": 1 + }, + { + "begin": 581, + "end": 590, + "name": "DUP7", + "source": 1 + }, + { + "begin": 577, + "end": 599, + "name": "ADD", + "source": 1 + }, + { + "begin": 556, + "end": 609, + "name": "PUSH [tag]", + "source": 1, + "value": "38" + }, + { + "begin": 556, + "end": 609, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 556, + "end": 609, + "name": "tag", + "source": 1, + "value": "47" + }, + { + "begin": 556, + "end": 609, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 546, + "end": 609, + "name": "POP", + "source": 1 + }, + { + "begin": 501, + "end": 619, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "POP", + "source": 1 + }, + { + "begin": 152, + "end": 626, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 632, + "end": 741, + "name": "tag", + "source": 1, + "value": "48" + }, + { + "begin": 632, + "end": 741, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "50" + }, + { + "begin": 728, + "end": 733, + "name": "DUP2", + "source": 1 + }, + { + "begin": 713, + "end": 734, + "name": "PUSH [tag]", + "source": 1, + "value": "51" + }, + { + "begin": 713, + "end": 734, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 713, + "end": 734, + "name": "tag", + "source": 1, + "value": "50" + }, + { + "begin": 713, + "end": 734, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 708, + "end": 711, + "name": "DUP3", + "source": 1 + }, + { + "begin": 701, + "end": 735, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "POP", + "source": 1 + }, + { + "begin": 632, + "end": 741, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 747, + "end": 957, + "name": "tag", + "source": 1, + "value": "11" + }, + { + "begin": 747, + "end": 957, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 834, + "end": 838, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 872, + "end": 874, + "name": "PUSH", + "source": 1, + "value": "20" + }, + { + "begin": 861, + "end": 870, + "name": "DUP3", + "source": 1 + }, + { + "begin": 857, + "end": 875, + "name": "ADD", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 849, + "end": 875, + "name": "POP", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "53" + }, + { + "begin": 947, + "end": 948, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 936, + "end": 945, + "name": "DUP4", + "source": 1 + }, + { + "begin": 932, + "end": 949, + "name": "ADD", + "source": 1 + }, + { + "begin": 923, + "end": 929, + "name": "DUP5", + "source": 1 + }, + { + "begin": 885, + "end": 950, + "name": "PUSH [tag]", + "source": 1, + "value": "48" + }, + { + "begin": 885, + "end": 950, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 885, + "end": 950, + "name": "tag", + "source": 1, + "value": "53" + }, + { + "begin": 885, + "end": 950, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "POP", + "source": 1 + }, + { + "begin": 747, + "end": 957, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1044, + "end": 1349, + "name": "tag", + "source": 1, + "value": "20" + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1084, + "end": 1087, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "57" + }, + { + "begin": 1121, + "end": 1122, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1103, + "end": 1123, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1103, + "end": 1123, + "name": "tag", + "source": 1, + "value": "57" + }, + { + "begin": 1103, + "end": 1123, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1098, + "end": 1123, + "name": "POP", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "59" + }, + { + "begin": 1155, + "end": 1156, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1137, + "end": 1157, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1137, + "end": 1157, + "name": "tag", + "source": 1, + "value": "59" + }, + { + "begin": 1137, + "end": 1157, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1132, + "end": 1157, + "name": "POP", + "source": 1 + }, + { + "begin": 1291, + "end": 1292, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1223, + "end": 1289, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1219, + "end": 1293, + "name": "SUB", + "source": 1 + }, + { + "begin": 1216, + "end": 1217, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1213, + "end": 1294, + "name": "GT", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "PUSH [tag]", + "source": 1, + "value": "60" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "61" + }, + { + "begin": 1297, + "end": 1315, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1297, + "end": 1315, + "name": "tag", + "source": 1, + "value": "61" + }, + { + "begin": 1297, + "end": 1315, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1210, + "end": 1317, + "name": "tag", + "source": 1, + "value": "60" + }, + { + "begin": 1210, + "end": 1317, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1341, + "end": 1342, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1338, + "end": 1339, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1334, + "end": 1343, + "name": "ADD", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1327, + "end": 1343, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "POP", + "source": 1 + }, + { + "begin": 1044, + "end": 1349, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1355, + "end": 1703, + "name": "tag", + "source": 1, + "value": "18" + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1395, + "end": 1402, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "64" + }, + { + "begin": 1436, + "end": 1437, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1418, + "end": 1438, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1418, + "end": 1438, + "name": "tag", + "source": 1, + "value": "64" + }, + { + "begin": 1418, + "end": 1438, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1413, + "end": 1438, + "name": "POP", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "65" + }, + { + "begin": 1470, + "end": 1471, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1452, + "end": 1472, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1452, + "end": 1472, + "name": "tag", + "source": 1, + "value": "65" + }, + { + "begin": 1452, + "end": 1472, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1447, + "end": 1472, + "name": "POP", + "source": 1 + }, + { + "begin": 1640, + "end": 1641, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1572, + "end": 1638, + "name": "PUSH", + "source": 1, + "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + }, + { + "begin": 1568, + "end": 1642, + "name": "DIV", + "source": 1 + }, + { + "begin": 1565, + "end": 1566, + "name": "DUP4", + "source": 1 + }, + { + "begin": 1562, + "end": 1643, + "name": "GT", + "source": 1 + }, + { + "begin": 1557, + "end": 1558, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1550, + "end": 1559, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1543, + "end": 1560, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1539, + "end": 1644, + "name": "AND", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "PUSH [tag]", + "source": 1, + "value": "66" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "67" + }, + { + "begin": 1647, + "end": 1665, + "name": "PUSH [tag]", + "source": 1, + "value": "62" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 1647, + "end": 1665, + "name": "tag", + "source": 1, + "value": "67" + }, + { + "begin": 1647, + "end": 1665, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1536, + "end": 1667, + "name": "tag", + "source": 1, + "value": "66" + }, + { + "begin": 1536, + "end": 1667, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1695, + "end": 1696, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1692, + "end": 1693, + "name": "DUP3", + "source": 1 + }, + { + "begin": 1688, + "end": 1697, + "name": "MUL", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1677, + "end": 1697, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP3", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "POP", + "source": 1 + }, + { + "begin": 1355, + "end": 1703, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1709, + "end": 1799, + "name": "tag", + "source": 1, + "value": "51" + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1743, + "end": 1750, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1786, + "end": 1791, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1779, + "end": 1792, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1772, + "end": 1793, + "name": "ISZERO", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1761, + "end": 1793, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "POP", + "source": 1 + }, + { + "begin": 1709, + "end": 1799, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1805, + "end": 1882, + "name": "tag", + "source": 1, + "value": "58" + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1842, + "end": 1849, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1871, + "end": 1876, + "name": "DUP2", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1860, + "end": 1876, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP2", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "SWAP1", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "POP", + "source": 1 + }, + { + "begin": 1805, + "end": 1882, + "name": "JUMP", + "source": 1, + "value": "[out]" + }, + { + "begin": 1888, + "end": 2068, + "name": "tag", + "source": 1, + "value": "25" + }, + { + "begin": 1888, + "end": 2068, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 1936, + "end": 2013, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 1933, + "end": 1934, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 1926, + "end": 2014, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2033, + "end": 2037, + "name": "PUSH", + "source": 1, + "value": "1" + }, + { + "begin": 2030, + "end": 2031, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2023, + "end": 2038, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2057, + "end": 2061, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2054, + "end": 2055, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2047, + "end": 2062, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2074, + "end": 2254, + "name": "tag", + "source": 1, + "value": "62" + }, + { + "begin": 2074, + "end": 2254, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2122, + "end": 2199, + "name": "PUSH", + "source": 1, + "value": "4E487B7100000000000000000000000000000000000000000000000000000000" + }, + { + "begin": 2119, + "end": 2120, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2112, + "end": 2200, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2219, + "end": 2223, + "name": "PUSH", + "source": 1, + "value": "11" + }, + { + "begin": 2216, + "end": 2217, + "name": "PUSH", + "source": 1, + "value": "4" + }, + { + "begin": 2209, + "end": 2224, + "name": "MSTORE", + "source": 1 + }, + { + "begin": 2243, + "end": 2247, + "name": "PUSH", + "source": 1, + "value": "24" + }, + { + "begin": 2240, + "end": 2241, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2233, + "end": 2248, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2383, + "end": 2500, + "name": "tag", + "source": 1, + "value": "45" + }, + { + "begin": 2383, + "end": 2500, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2492, + "end": 2493, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2489, + "end": 2490, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2482, + "end": 2494, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "tag", + "source": 1, + "value": "41" + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "76" + }, + { + "begin": 2597, + "end": 2602, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2579, + "end": 2603, + "name": "PUSH [tag]", + "source": 1, + "value": "58" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMP", + "source": 1, + "value": "[in]" + }, + { + "begin": 2579, + "end": 2603, + "name": "tag", + "source": 1, + "value": "76" + }, + { + "begin": 2579, + "end": 2603, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2572, + "end": 2577, + "name": "DUP2", + "source": 1 + }, + { + "begin": 2569, + "end": 2604, + "name": "EQ", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "PUSH [tag]", + "source": 1, + "value": "77" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPI", + "source": 1 + }, + { + "begin": 2618, + "end": 2619, + "name": "PUSH", + "source": 1, + "value": "0" + }, + { + "begin": 2615, + "end": 2616, + "name": "DUP1", + "source": 1 + }, + { + "begin": 2608, + "end": 2620, + "name": "REVERT", + "source": 1 + }, + { + "begin": 2559, + "end": 2622, + "name": "tag", + "source": 1, + "value": "77" + }, + { + "begin": 2559, + "end": 2622, + "name": "JUMPDEST", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "POP", + "source": 1 + }, + { + "begin": 2506, + "end": 2628, + "name": "JUMP", + "source": 1, + "value": "[out]" + } + ] + } + } + }, + "methodIdentifiers": { + "EtherUnitExample()": "822d0647", + "TimeUnitExample()": "9b92a9e8", + "validate(uint256,uint256)": "19730b44" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EtherUnitExample\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TimeUnitExample\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsAfter\",\"type\":\"uint256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Ep4/example.sol\":\"Example\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Ep4/example.sol\":{\"keccak256\":\"0xf80bbca4c39f7f516b51e88b8276802ecb1ff75c0137653bfd55664d445e0515\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56aa8f981920695e98939159f7066b5275bff070f9dd00ee25ff820f46fae616\",\"dweb:/ipfs/QmVwv4uouX563dZh7uNgLdRviptjadGa46prHpR2TbhMWN\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + } + }, + "errors": [ + { + "component": "general", + "errorCode": "2018", + "formattedMessage": "Warning: Function state mutability can be restricted to pure\n --> Ep4/example.sol:6:5:\n |\n6 | function EtherUnitExample() public {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", + "message": "Function state mutability can be restricted to pure", + "severity": "warning", + "sourceLocation": { + "end": 160, + "file": "Ep4/example.sol", + "start": 88 + }, + "type": "Warning" + } + ], + "sources": { + "Ep4/example.sol": { + "ast": { + "absolutePath": "Ep4/example.sol", + "exportedSymbols": { + "Example": [ + 76 + ] + }, + "id": 77, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:25:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 76, + "linearizedBaseContracts": [ + 76 + ], + "name": "Example", + "nameLocation": "71:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 10, + "nodeType": "Block", + "src": "123:37:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "141:5:0", + "subdenomination": "wei", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "150:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "141:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "134:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "134:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9, + "nodeType": "ExpressionStatement", + "src": "134:18:0" + } + ] + }, + "functionSelector": "822d0647", + "id": 11, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "EtherUnitExample", + "nameLocation": "97:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:0" + }, + "returnParameters": { + "id": 3, + "nodeType": "ParameterList", + "parameters": [], + "src": "123:0:0" + }, + "scope": 76, + "src": "88:72:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 44, + "nodeType": "Block", + "src": "207:330:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "242:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "255:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "242:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "235:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "235:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19, + "nodeType": "ExpressionStatement", + "src": "235:22:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "305:9:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "318:10:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "305:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 20, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "298:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "298:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 25, + "nodeType": "ExpressionStatement", + "src": "298:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "380:7:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3630", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "391:10:0", + "subdenomination": "minutes", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "60" + }, + "src": "380:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 26, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "373:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "373:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 31, + "nodeType": "ExpressionStatement", + "src": "373:29:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "448:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3234", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "458:8:0", + "subdenomination": "hours", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "24" + }, + "src": "448:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 32, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "441:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "441:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "441:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "511:7:0", + "subdenomination": "weeks", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "522:6:0", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_604800_by_1", + "typeString": "int_const 604800" + }, + "value": "7" + }, + "src": "511:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967293, + "src": "504:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "504:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "504:25:0" + } + ] + }, + "functionSelector": "9b92a9e8", + "id": 45, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "TimeUnitExample", + "nameLocation": "177:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [], + "src": "192:2:0" + }, + "returnParameters": { + "id": 13, + "nodeType": "ParameterList", + "parameters": [], + "src": "207:0:0" + }, + "scope": 76, + "src": "168:369:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 74, + "nodeType": "Block", + "src": "620:255:0", + "statements": [ + { + "assignments": [ + 55 + ], + "declarations": [ + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "isValidated", + "nameLocation": "636:11:0", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "631:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 54, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "631:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 57, + "initialValue": { + "hexValue": "66616c7365", + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "650:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "631:24:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 65, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 58, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "731:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "731:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 64, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 60, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "750:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 61, + "name": "secondsAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49, + "src": "758:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "773:9:0", + "subdenomination": "seconds", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "758:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "750:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "731:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 71, + "nodeType": "IfStatement", + "src": "727:102:0", + "trueBody": { + "id": 70, + "nodeType": "Block", + "src": "784:45:0", + "statements": [ + { + "expression": { + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 66, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "799:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "813:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "799:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 69, + "nodeType": "ExpressionStatement", + "src": "799:18:0" + } + ] + } + }, + { + "expression": { + "id": 72, + "name": "isValidated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "856:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 53, + "id": 73, + "nodeType": "Return", + "src": "849:18:0" + } + ] + }, + "functionSelector": "19730b44", + "id": 75, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validate", + "nameLocation": "554:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "start", + "nameLocation": "568:5:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "563:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 46, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "563:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "secondsAfter", + "nameLocation": "580:12:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "575:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 48, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "575:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "562:31:0" + }, + "returnParameters": { + "id": 53, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 52, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "614:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 51, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "614:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "613:6:0" + }, + "scope": 76, + "src": "545:330:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 77, + "src": "62:816:0", + "usedErrors": [] + } + ], + "src": "33:845:0" + }, + "id": 0 + } + } + } +} \ No newline at end of file diff --git a/Ep4/example.sol b/Ep4/example.sol index 5732d69..b957b54 100644 --- a/Ep4/example.sol +++ b/Ep4/example.sol @@ -1,8 +1,20 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.7; +pragma solidity ^0.8.7.0; contract Example { - function TimeUnitExample() public pure { + function etherUnitExample() public pure { + + // wei是貨幣中的最小單位 + require(1 wei == 1, "1 wei is not equal to 1"); + + // 1 gwei is equal to 10^9 wei + require(1 gwei == 1e9, "1 gwei is not equal to 1e9"); + + // 1 ether is equal to 10^18 wei + require(1 ether == 1e18, "1 ether is not equal to 1e18"); + } + + function timeUnitExample() public pure { // 1秒 assert(1 seconds == 1); @@ -19,10 +31,15 @@ contract Example { assert(1 weeks == 7 days); } - function validate(uint start, uint secondsAfter) public view { - // 區塊的時間戳記至少在3秒以前, 才算有效 + function validate(uint start, uint secondsAfter) public view returns(bool) { + bool isValidated = false; + + /// 區塊的時間戳記至少在3秒以前, 才算有效。 + /// 注意: 此為範例,真實合約請不要使用block.timestamp來進行檢驗,具有弱點風險。 if (block.timestamp >= start + secondsAfter * 3 seconds) { - // ... + isValidated = true; } + + return isValidated; } } \ No newline at end of file diff --git a/README.md b/README.md index 903d593..f24c165 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,10 @@ - [【開發智能合約 - Solidity系列】開發環境準備](https://medium.com/willhanchen/%E9%96%8B%E7%99%BC%E6%99%BA%E8%83%BD%E5%90%88%E7%B4%84-solidity%E7%B3%BB%E5%88%97-%E9%96%8B%E7%99%BC%E7%92%B0%E5%A2%83%E6%BA%96%E5%82%99-a3730f8dc88b) - [【開發智能合約 - Solidity系列】Remix編輯器常用的Plugin](https://medium.com/willhanchen/%E9%96%8B%E7%99%BC%E6%99%BA%E8%83%BD%E5%90%88%E7%B4%84-solidity%E7%B3%BB%E5%88%97-remix%E7%B7%A8%E8%BC%AF%E5%99%A8%E5%B8%B8%E7%94%A8%E7%9A%84plugin-7ea454d98809) - [【開發智能合約 - Solidity系列】Remix Editor Change Git Commit Author](https://medium.com/@weihanchen/%E9%96%8B%E7%99%BC%E6%99%BA%E8%83%BD%E5%90%88%E7%B4%84-solidity%E7%B3%BB%E5%88%97-remix-editor-change-git-commit-author-d17b65a4ed8a) +- 【開發智能合約 - Solidity系列】如何使用Remix進行Debug ### 實戰篇 - [【開發智能合約 - Solidity系列】實作篇Ep.1 - 看懂智能合約的脈絡](https://medium.com/willhanchen/%E9%96%8B%E7%99%BC%E6%99%BA%E8%83%BD%E5%90%88%E7%B4%84-solidity%E7%B3%BB%E5%88%97-%E5%AF%A6%E4%BD%9C%E7%AF%87ep-1-%E7%9C%8B%E6%87%82%E6%99%BA%E8%83%BD%E5%90%88%E7%B4%84%E7%9A%84%E8%84%88%E7%B5%A1-b54bb8531a82) - [【開發智能合約 - Solidity系列】實作篇Ep.2 - 合約中的基本組成元素](https://medium.com/willhanchen/%E9%96%8B%E7%99%BC%E6%99%BA%E8%83%BD%E5%90%88%E7%B4%84-solidity%E7%B3%BB%E5%88%97-%E5%AF%A6%E4%BD%9C%E7%AF%87ep-2-%E5%90%88%E7%B4%84%E4%B8%AD%E7%9A%84%E5%9F%BA%E6%9C%AC%E7%B5%84%E6%88%90%E5%85%83%E7%B4%A0-f244915b5ce4) -- [【開發智能合約 — Solidity系列】實作篇Ep.3 -資料型態的特性與流程控制](https://medium.com/@weihanchen/%E9%96%8B%E7%99%BC%E6%99%BA%E8%83%BD%E5%90%88%E7%B4%84-solidity%E7%B3%BB%E5%88%97-%E5%AF%A6%E4%BD%9C%E7%AF%87ep-3-%E8%B3%87%E6%96%99%E5%9E%8B%E6%85%8B%E7%9A%84%E7%89%B9%E6%80%A7%E8%88%87%E6%B5%81%E7%A8%8B%E6%8E%A7%E5%88%B6-4e1e8b60e643) - +- [【開發智能合約 - Solidity系列】實作篇Ep.3 - 資料型態的特性與流程控制](https://medium.com/@weihanchen/%E9%96%8B%E7%99%BC%E6%99%BA%E8%83%BD%E5%90%88%E7%B4%84-solidity%E7%B3%BB%E5%88%97-%E5%AF%A6%E4%BD%9C%E7%AF%87ep-3-%E8%B3%87%E6%96%99%E5%9E%8B%E6%85%8B%E7%9A%84%E7%89%B9%E6%80%A7%E8%88%87%E6%B5%81%E7%A8%8B%E6%8E%A7%E5%88%B6-4e1e8b60e643) +- 【開發智能合約 - Solidity系列】實作篇Ep.4 - 貨幣與時間單位