Skip to content

Instantly share code, notes, and snippets.

@Michael-A-I
Created October 10, 2021 06:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Michael-A-I/d625c402cc1be3d0fc79de425af401be to your computer and use it in GitHub Desktop.
Save Michael-A-I/d625c402cc1be3d0fc79de425af401be to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.9+commit.e5eed63a.js&optimize=false&runs=200&gist=
REMIX EXAMPLE PROJECT
Remix example project is present when Remix loads very first time or there are no files existing in the File Explorer.
It contains 3 directories:
1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name.
2. 'scripts': Holds two scripts to deploy a contract. It is explained below.
3. 'tests': Contains one test file for 'Ballot' contract with unit tests in Solidity.
SCRIPTS
The 'scripts' folder contains example async/await scripts for deploying the 'Storage' contract.
For the deployment of any other contract, 'contractName' and 'constructorArgs' should be updated (along with other code if required).
Scripts have full access to the web3.js and ethers.js libraries.
To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled.
Output from script will appear in remix terminal.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Storage
* @dev Store & retrieve value in a variable
*/
contract Storage {
uint256 number;
/**
* @dev Store value in variable
* @param num value to store
*/
function store(uint256 num) public {
number = num;
}
/**
* @dev Return value
* @return value of 'number'
*/
function retrieve() public view returns (uint256){
return number;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Owner
* @dev Set & change owner
*/
contract Owner {
address private owner;
// event for EVM logging
event OwnerSet(address indexed oldOwner, address indexed newOwner);
// modifier to check if caller is owner
modifier isOwner() {
// If the first argument of 'require' evaluates to 'false', execution terminates and all
// changes to the state and to Ether balances are reverted.
// This used to consume all gas in old EVM versions, but not anymore.
// It is often a good idea to use 'require' to check if functions are called correctly.
// As a second argument, you can also provide an explanation about what went wrong.
require(msg.sender == owner, "Caller is not owner");
_;
}
/**
* @dev Set contract deployer as owner
*/
constructor() {
owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
emit OwnerSet(address(0), owner);
}
/**
* @dev Change owner
* @param newOwner address of new owner
*/
function changeOwner(address newOwner) public isOwner {
emit OwnerSet(owner, newOwner);
owner = newOwner;
}
/**
* @dev Return owner address
* @return address of owner
*/
function getOwner() external view returns (address) {
return owner;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Ballot
* @dev Implements voting process along with vote delegation
*/
contract Ballot {
struct Voter {
uint weight; // weight is accumulated by delegation
bool voted; // if true, that person already voted
address delegate; // person delegated to
uint vote; // index of the voted proposal
}
struct Proposal {
// If you can limit the length to a certain number of bytes,
// always use one of bytes1 to bytes32 because they are much cheaper
bytes32 name; // short name (up to 32 bytes)
uint voteCount; // number of accumulated votes
}
address public chairperson;
mapping(address => Voter) public voters;
Proposal[] public proposals;
/**
* @dev Create a new ballot to choose one of 'proposalNames'.
* @param proposalNames names of proposals
*/
constructor(bytes32[] memory proposalNames) {
chairperson = msg.sender;
voters[chairperson].weight = 1;
for (uint i = 0; i < proposalNames.length; i++) {
// 'Proposal({...})' creates a temporary
// Proposal object and 'proposals.push(...)'
// appends it to the end of 'proposals'.
proposals.push(Proposal({
name: proposalNames[i],
voteCount: 0
}));
}
}
/**
* @dev Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'.
* @param voter address of voter
*/
function giveRightToVote(address voter) public {
require(
msg.sender == chairperson,
"Only chairperson can give right to vote."
);
require(
!voters[voter].voted,
"The voter already voted."
);
require(voters[voter].weight == 0);
voters[voter].weight = 1;
}
/**
* @dev Delegate your vote to the voter 'to'.
* @param to address to which vote is delegated
*/
function delegate(address to) public {
Voter storage sender = voters[msg.sender];
require(!sender.voted, "You already voted.");
require(to != msg.sender, "Self-delegation is disallowed.");
while (voters[to].delegate != address(0)) {
to = voters[to].delegate;
// We found a loop in the delegation, not allowed.
require(to != msg.sender, "Found loop in delegation.");
}
sender.voted = true;
sender.delegate = to;
Voter storage delegate_ = voters[to];
if (delegate_.voted) {
// If the delegate already voted,
// directly add to the number of votes
proposals[delegate_.vote].voteCount += sender.weight;
} else {
// If the delegate did not vote yet,
// add to her weight.
delegate_.weight += sender.weight;
}
}
/**
* @dev Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'.
* @param proposal index of proposal in the proposals array
*/
function vote(uint proposal) public {
Voter storage sender = voters[msg.sender];
require(sender.weight != 0, "Has no right to vote");
require(!sender.voted, "Already voted.");
sender.voted = true;
sender.vote = proposal;
// If 'proposal' is out of the range of the array,
// this will throw automatically and revert all
// changes.
proposals[proposal].voteCount += sender.weight;
}
/**
* @dev Computes the winning proposal taking all previous votes into account.
* @return winningProposal_ index of winning proposal in the proposals array
*/
function winningProposal() public view
returns (uint winningProposal_)
{
uint winningVoteCount = 0;
for (uint p = 0; p < proposals.length; p++) {
if (proposals[p].voteCount > winningVoteCount) {
winningVoteCount = proposals[p].voteCount;
winningProposal_ = p;
}
}
}
/**
* @dev Calls winningProposal() function to get the index of the winner contained in the proposals array and then
* @return winnerName_ the name of the winner
*/
function winnerName() public view
returns (bytes32 winnerName_)
{
winnerName_ = proposals[winningProposal()].name;
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_57": {
"entryPoint": null,
"id": 57,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 92,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 111,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 62,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 57,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 72,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1048:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "400:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "460:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "517:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "526:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "529:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "519:6:1"
},
"nodeType": "YulFunctionCall",
"src": "519:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "519:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "483:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "508:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "490:17:1"
},
"nodeType": "YulFunctionCall",
"src": "490:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "480:2:1"
},
"nodeType": "YulFunctionCall",
"src": "480:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "473:6:1"
},
"nodeType": "YulFunctionCall",
"src": "473:43:1"
},
"nodeType": "YulIf",
"src": "470:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "453:5:1",
"type": ""
}
],
"src": "417:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "608:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "618:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "633:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "627:5:1"
},
"nodeType": "YulFunctionCall",
"src": "627:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "618:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "676:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "649:26:1"
},
"nodeType": "YulFunctionCall",
"src": "649:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "649:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "586:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "594:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "602:5:1",
"type": ""
}
],
"src": "545:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "771:274:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "817:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "819:77:1"
},
"nodeType": "YulFunctionCall",
"src": "819:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "819:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "792:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "801:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "788:3:1"
},
"nodeType": "YulFunctionCall",
"src": "788:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "813:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "784:3:1"
},
"nodeType": "YulFunctionCall",
"src": "784:32:1"
},
"nodeType": "YulIf",
"src": "781:119:1"
},
{
"nodeType": "YulBlock",
"src": "910:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "925:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "939:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "929:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "954:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1000:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1011:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "996:3:1"
},
"nodeType": "YulFunctionCall",
"src": "996:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1020:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "964:31:1"
},
"nodeType": "YulFunctionCall",
"src": "964:64:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "954:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "741:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "752:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "764:6:1",
"type": ""
}
],
"src": "694:351:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b5060405160e338038060e38339818101604052810190602d9190606f565b80600081905550506097565b600080fd5b6000819050919050565b604f81603e565b8114605957600080fd5b50565b6000815190506069816048565b92915050565b60006020828403121560825760816039565b5b6000608e84828501605c565b91505092915050565b603f8060a46000396000f3fe6080604052600080fdfea26469706673582212207adf91ef75035c3b49ab64e03b1181bb505bef5935275c800617a6294583170c64736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0xE3 CODESIZE SUB DUP1 PUSH1 0xE3 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH1 0x2D SWAP2 SWAP1 PUSH1 0x6F JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP PUSH1 0x97 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x4F DUP2 PUSH1 0x3E JUMP JUMPDEST DUP2 EQ PUSH1 0x59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH1 0x69 DUP2 PUSH1 0x48 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x82 JUMPI PUSH1 0x81 PUSH1 0x39 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x8E DUP5 DUP3 DUP6 ADD PUSH1 0x5C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3F DUP1 PUSH1 0xA4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0xDF91EF75035C3B49AB64E03B1181BB505BEF5935275C800617A629 GASLIMIT DUP4 OR 0xC PUSH5 0x736F6C6343 STOP ADDMOD MULMOD STOP CALLER ",
"sourceMap": "437:105:0:-:0;;;481:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;522:5;515:4;:12;;;;481:53;437:105;;88:117:1;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;437:105:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600080fdfea26469706673582212207adf91ef75035c3b49ab64e03b1181bb505bef5935275c800617a6294583170c64736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0xDF91EF75035C3B49AB64E03B1181BB505BEF5935275C800617A629 GASLIMIT DUP4 OR 0xC PUSH5 0x736F6C6343 STOP ADDMOD MULMOD STOP CALLER ",
"sourceMap": "437:105:0:-:0;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "12600",
"executionCost": "infinite",
"totalCost": "infinite"
}
},
"methodIdentifiers": {}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_data",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
}
]
}
{
"compiler": {
"version": "0.8.9+commit.e5eed63a"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_data",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/section-6-constructors.sol": "Base"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/section-6-constructors.sol": {
"keccak256": "0xa028cdc83555398f78a5ed1443b73d9c02d85de9f4cb736ed4084811bf48e871",
"urls": [
"bzz-raw://48b02e1adecc8e09eee8da9deff8aff84aa3e0462968cfe34a1f8904b5c8f359",
"dweb:/ipfs/QmUodPkm2SPVJrbkifJG1gRuTCXPwkz1EZHudgoiPN8xKh"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_57": {
"entryPoint": null,
"id": 57,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506005806000819055505060b6806100296000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063f31604c714602d575b600080fd5b60336047565b604051603e91906067565b60405180910390f35b60008054905090565b6000819050919050565b6061816050565b82525050565b6000602082019050607a6000830184605a565b9291505056fea2646970667358221220b0952e5fe6bf513ec86cbdb57a69596dce02b01faee070e33ffd486650b4064164736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP PUSH1 0xB6 DUP1 PUSH2 0x29 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF31604C7 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x67 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x61 DUP2 PUSH1 0x50 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x7A PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x5A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 SWAP6 0x2E 0x5F 0xE6 0xBF MLOAD RETURNDATACOPY 0xC8 PUSH13 0xBDB57A69596DCE02B01FAEE070 0xE3 EXTCODEHASH REVERT BASEFEE PUSH7 0x50B4064164736F PUSH13 0x63430008090033000000000000 ",
"sourceMap": "544:118:0:-:0;;;;;;;;;;;;;569:1;522:5;515:4;:12;;;;481:53;544:118;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@setData_69": {
"entryPoint": 71,
"id": 69,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 90,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 103,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 80,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:439:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:1",
"type": ""
}
],
"src": "7:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "155:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "172:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "195:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "177:17:1"
},
"nodeType": "YulFunctionCall",
"src": "177:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "165:6:1"
},
"nodeType": "YulFunctionCall",
"src": "165:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "165:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "143:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "150:3:1",
"type": ""
}
],
"src": "90:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "312:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "322:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "334:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "345:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "330:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "322:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "402:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "415:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "411:3:1"
},
"nodeType": "YulFunctionCall",
"src": "411:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "358:43:1"
},
"nodeType": "YulFunctionCall",
"src": "358:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "358:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "284:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "296:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "307:4:1",
"type": ""
}
],
"src": "214:222:1"
}
]
},
"contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b506004361060285760003560e01c8063f31604c714602d575b600080fd5b60336047565b604051603e91906067565b60405180910390f35b60008054905090565b6000819050919050565b6061816050565b82525050565b6000602082019050607a6000830184605a565b9291505056fea2646970667358221220b0952e5fe6bf513ec86cbdb57a69596dce02b01faee070e33ffd486650b4064164736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF31604C7 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x67 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x61 DUP2 PUSH1 0x50 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x7A PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x5A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 SWAP6 0x2E 0x5F 0xE6 0xBF MLOAD RETURNDATACOPY 0xC8 PUSH13 0xBDB57A69596DCE02B01FAEE070 0xE3 EXTCODEHASH REVERT BASEFEE PUSH7 0x50B4064164736F PUSH13 0x63430008090033000000000000 ",
"sourceMap": "544:118:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;587:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;626:4;649;;642:11;;587:73;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "36400",
"executionCost": "22206",
"totalCost": "58606"
},
"external": {
"setData()": "2415"
}
},
"methodIdentifiers": {
"setData()": "f31604c7"
}
},
"abi": [
{
"inputs": [],
"name": "setData",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.9+commit.e5eed63a"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "setData",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/section-6-constructors.sol": "Derived"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/section-6-constructors.sol": {
"keccak256": "0xa028cdc83555398f78a5ed1443b73d9c02d85de9f4cb736ed4084811bf48e871",
"urls": [
"bzz-raw://48b02e1adecc8e09eee8da9deff8aff84aa3e0462968cfe34a1f8904b5c8f359",
"dweb:/ipfs/QmUodPkm2SPVJrbkifJG1gRuTCXPwkz1EZHudgoiPN8xKh"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405261012c600055600c600155602f60025534801561002057600080fd5b506101c3806100306000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80637d9fd1c314610030575b600080fd5b61003861004e565b60405161004591906100b5565b60405180910390f35b6000806017905060015460005411801561006b5750600254600154105b1561009457808161007c91906100ff565b90506001548161008c9190610159565b915050610099565b809150505b90565b6000819050919050565b6100af8161009c565b82525050565b60006020820190506100ca60008301846100a6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061010a8261009c565b91506101158361009c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561014e5761014d6100d0565b5b828202905092915050565b60006101648261009c565b915061016f8361009c565b925082821015610182576101816100d0565b5b82820390509291505056fea26469706673582212208741020f89b70b0a4fd7c42d75ef9fc8716cb53f12f4d3f3475ddb8f9afdeb6c64736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH2 0x12C PUSH1 0x0 SSTORE PUSH1 0xC PUSH1 0x1 SSTORE PUSH1 0x2F PUSH1 0x2 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C3 DUP1 PUSH2 0x30 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 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7D9FD1C3 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45 SWAP2 SWAP1 PUSH2 0xB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x17 SWAP1 POP PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD GT DUP1 ISZERO PUSH2 0x6B JUMPI POP PUSH1 0x2 SLOAD PUSH1 0x1 SLOAD LT JUMPDEST ISZERO PUSH2 0x94 JUMPI DUP1 DUP2 PUSH2 0x7C SWAP2 SWAP1 PUSH2 0xFF JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD DUP2 PUSH2 0x8C SWAP2 SWAP1 PUSH2 0x159 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x99 JUMP JUMPDEST DUP1 SWAP2 POP POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAF DUP2 PUSH2 0x9C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x10A DUP3 PUSH2 0x9C JUMP JUMPDEST SWAP2 POP PUSH2 0x115 DUP4 PUSH2 0x9C JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x14E JUMPI PUSH2 0x14D PUSH2 0xD0 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x164 DUP3 PUSH2 0x9C JUMP JUMPDEST SWAP2 POP PUSH2 0x16F DUP4 PUSH2 0x9C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x182 JUMPI PUSH2 0x181 PUSH2 0xD0 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP8 COINBASE MUL 0xF DUP10 0xB7 SIGNEXTEND EXP 0x4F 0xD7 0xC4 0x2D PUSH22 0xEF9FC8716CB53F12F4D3F3475DDB8F9AFDEB6C64736F PUSH13 0x63430008090033000000000000 ",
"sourceMap": "1381:394:0:-:0;;;1422:3;1413:12;;1444:2;1435:11;;1465:2;1456:11;;1381:394;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@returnD_129": {
"entryPoint": 78,
"id": 129,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 166,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 181,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 255,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 345,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 156,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 208,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1176:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:1",
"type": ""
}
],
"src": "7:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "155:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "172:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "195:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "177:17:1"
},
"nodeType": "YulFunctionCall",
"src": "177:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "165:6:1"
},
"nodeType": "YulFunctionCall",
"src": "165:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "165:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "143:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "150:3:1",
"type": ""
}
],
"src": "90:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "312:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "322:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "334:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "345:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "330:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "322:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "402:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "415:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "411:3:1"
},
"nodeType": "YulFunctionCall",
"src": "411:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "358:43:1"
},
"nodeType": "YulFunctionCall",
"src": "358:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "358:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "284:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "296:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "307:4:1",
"type": ""
}
],
"src": "214:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "470:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "487:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "490:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "480:6:1"
},
"nodeType": "YulFunctionCall",
"src": "480:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "480:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "584:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "587:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "577:6:1"
},
"nodeType": "YulFunctionCall",
"src": "577:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "577:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "608:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "611:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "601:6:1"
},
"nodeType": "YulFunctionCall",
"src": "601:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "601:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "442:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "676:300:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "686:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "709:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "691:17:1"
},
"nodeType": "YulFunctionCall",
"src": "691:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "686:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "720:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "743:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "725:17:1"
},
"nodeType": "YulFunctionCall",
"src": "725:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "720:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "918:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "920:16:1"
},
"nodeType": "YulFunctionCall",
"src": "920:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "920:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "830:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "823:6:1"
},
"nodeType": "YulFunctionCall",
"src": "823:9:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "816:6:1"
},
"nodeType": "YulFunctionCall",
"src": "816:17:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "838:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "845:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "913:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "841:3:1"
},
"nodeType": "YulFunctionCall",
"src": "841:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "835:2:1"
},
"nodeType": "YulFunctionCall",
"src": "835:81:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "812:3:1"
},
"nodeType": "YulFunctionCall",
"src": "812:105:1"
},
"nodeType": "YulIf",
"src": "809:131:1"
},
{
"nodeType": "YulAssignment",
"src": "950:20:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "965:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "968:1:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "961:3:1"
},
"nodeType": "YulFunctionCall",
"src": "961:9:1"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "950:7:1"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "659:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "662:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "668:7:1",
"type": ""
}
],
"src": "628:348:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1027:146:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1037:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1060:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1042:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1042:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1037:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1071:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1094:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1076:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1076:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1071:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1118:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1120:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1120:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1120:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1112:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1115:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1109:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1109:8:1"
},
"nodeType": "YulIf",
"src": "1106:34:1"
},
{
"nodeType": "YulAssignment",
"src": "1150:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1162:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1165:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1158:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1158:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1150:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1013:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1016:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "1022:4:1",
"type": ""
}
],
"src": "982:191:1"
}
]
},
"contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\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 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}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c80637d9fd1c314610030575b600080fd5b61003861004e565b60405161004591906100b5565b60405180910390f35b6000806017905060015460005411801561006b5750600254600154105b1561009457808161007c91906100ff565b90506001548161008c9190610159565b915050610099565b809150505b90565b6000819050919050565b6100af8161009c565b82525050565b60006020820190506100ca60008301846100a6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061010a8261009c565b91506101158361009c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561014e5761014d6100d0565b5b828202905092915050565b60006101648261009c565b915061016f8361009c565b925082821015610182576101816100d0565b5b82820390509291505056fea26469706673582212208741020f89b70b0a4fd7c42d75ef9fc8716cb53f12f4d3f3475ddb8f9afdeb6c64736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7D9FD1C3 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45 SWAP2 SWAP1 PUSH2 0xB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x17 SWAP1 POP PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD GT DUP1 ISZERO PUSH2 0x6B JUMPI POP PUSH1 0x2 SLOAD PUSH1 0x1 SLOAD LT JUMPDEST ISZERO PUSH2 0x94 JUMPI DUP1 DUP2 PUSH2 0x7C SWAP2 SWAP1 PUSH2 0xFF JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD DUP2 PUSH2 0x8C SWAP2 SWAP1 PUSH2 0x159 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x99 JUMP JUMPDEST DUP1 SWAP2 POP POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAF DUP2 PUSH2 0x9C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x10A DUP3 PUSH2 0x9C JUMP JUMPDEST SWAP2 POP PUSH2 0x115 DUP4 PUSH2 0x9C JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x14E JUMPI PUSH2 0x14D PUSH2 0xD0 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x164 DUP3 PUSH2 0x9C JUMP JUMPDEST SWAP2 POP PUSH2 0x16F DUP4 PUSH2 0x9C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x182 JUMPI PUSH2 0x181 PUSH2 0xD0 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP8 COINBASE MUL 0xF DUP10 0xB7 SIGNEXTEND EXP 0x4F 0xD7 0xC4 0x2D PUSH22 0xEF9FC8716CB53F12F4D3F3475DDB8F9AFDEB6C64736F PUSH13 0x63430008090033000000000000 ",
"sourceMap": "1381:394:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1486:266;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;1525:4;1544:6;1553:2;1544:11;;1587:1;;1585;;:3;:10;;;;;1594:1;;1592;;:3;1585:10;1582:160;;;1637:1;1632:6;;;;;:::i;:::-;;;1668:1;;1664;:5;;;;:::i;:::-;1657:12;;;;;1582:160;1726:1;1719:8;;;1486:266;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:180::-;490:77;487:1;480:88;587:4;584:1;577:15;611:4;608:1;601:15;628:348;668:7;691:20;709:1;691:20;:::i;:::-;686:25;;725:20;743:1;725:20;:::i;:::-;720:25;;913:1;845:66;841:74;838:1;835:81;830:1;823:9;816:17;812:105;809:131;;;920:18;;:::i;:::-;809:131;968:1;965;961:9;950:20;;628:348;;;;:::o;982:191::-;1022:4;1042:20;1060:1;1042:20;:::i;:::-;1037:25;;1076:20;1094:1;1076:20;:::i;:::-;1071:25;;1115:1;1112;1109:8;1106:34;;;1120:18;;:::i;:::-;1106:34;1165:1;1162;1158:9;1150:17;;982:191;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "90200",
"executionCost": "66459",
"totalCost": "156659"
},
"external": {
"returnD()": "infinite"
}
},
"methodIdentifiers": {
"returnD()": "7d9fd1c3"
}
},
"abi": [
{
"inputs": [],
"name": "returnD",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.9+commit.e5eed63a"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "returnD",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/debug.sol": "finalExercise"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/debug.sol": {
"keccak256": "0x931ee6557dfb6a743c9fe85fd432feb711c72ce64bd0e3343f1321ba28d1b674",
"urls": [
"bzz-raw://9266de659ef1752fcf4d659c4f84fe7c2aad520dbcc63e77d1653865405fd1ef",
"dweb:/ipfs/QmW7WhANDHiTt5saPWsFA6rVppdnwphPaXMqvtVsx7jRt2"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052602d600055600c60015534801561001a57600080fd5b5061043a8061002a6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063166e7bdd1461005c57806380f7a0181461007a578063b93c0937146100aa578063e500ba43146100da578063e581bdca1461010a575b600080fd5b610064610128565b60405161007191906101c1565b60405180910390f35b610094600480360381019061008f919061020d565b610149565b6040516100a191906101c1565b60405180910390f35b6100c460048036038101906100bf9190610285565b610164565b6040516100d191906101c1565b60405180910390f35b6100f460048036038101906100ef919061020d565b61016c565b60405161010191906101c1565b60405180910390f35b610112610187565b60405161011f91906101c1565b60405180910390f35b6000806003905060008160015461013f91906102f4565b9050809250505090565b6000808284610158919061034a565b90508091505092915050565b600092915050565b600080828461017b91906103d3565b90508091505092915050565b6000806005905060008160015461019e91906102f4565b9050809250505090565b6000819050919050565b6101bb816101a8565b82525050565b60006020820190506101d660008301846101b2565b92915050565b600080fd5b6101ea816101a8565b81146101f557600080fd5b50565b600081359050610207816101e1565b92915050565b60008060408385031215610224576102236101dc565b5b6000610232858286016101f8565b9250506020610243858286016101f8565b9150509250929050565b60008115159050919050565b6102628161024d565b811461026d57600080fd5b50565b60008135905061027f81610259565b92915050565b6000806040838503121561029c5761029b6101dc565b5b60006102aa85828601610270565b92505060206102bb85828601610270565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006102ff826101a8565b915061030a836101a8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561033f5761033e6102c5565b5b828201905092915050565b6000610355826101a8565b9150610360836101a8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610399576103986102c5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006103de826101a8565b91506103e9836101a8565b9250826103f9576103f86103a4565b5b82820490509291505056fea26469706673582212202b58ba7496df0a774c8e8329605a546a11c64910e0c80d57a90a242d162aec1864736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x2D PUSH1 0x0 SSTORE PUSH1 0xC PUSH1 0x1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x43A DUP1 PUSH2 0x2A 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 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x166E7BDD EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x80F7A018 EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0xB93C0937 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0xE500BA43 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xE581BDCA EQ PUSH2 0x10A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x128 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x94 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x20D JUMP JUMPDEST PUSH2 0x149 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA1 SWAP2 SWAP1 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x285 JUMP JUMPDEST PUSH2 0x164 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD1 SWAP2 SWAP1 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEF SWAP2 SWAP1 PUSH2 0x20D JUMP JUMPDEST PUSH2 0x16C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x101 SWAP2 SWAP1 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x112 PUSH2 0x187 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x3 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 SLOAD PUSH2 0x13F SWAP2 SWAP1 PUSH2 0x2F4 JUMP JUMPDEST SWAP1 POP DUP1 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 PUSH2 0x158 SWAP2 SWAP1 PUSH2 0x34A JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 PUSH2 0x17B SWAP2 SWAP1 PUSH2 0x3D3 JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 SLOAD PUSH2 0x19E SWAP2 SWAP1 PUSH2 0x2F4 JUMP JUMPDEST SWAP1 POP DUP1 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BB DUP2 PUSH2 0x1A8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EA DUP2 PUSH2 0x1A8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x207 DUP2 PUSH2 0x1E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x224 JUMPI PUSH2 0x223 PUSH2 0x1DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x232 DUP6 DUP3 DUP7 ADD PUSH2 0x1F8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x243 DUP6 DUP3 DUP7 ADD PUSH2 0x1F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x262 DUP2 PUSH2 0x24D JUMP JUMPDEST DUP2 EQ PUSH2 0x26D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x27F DUP2 PUSH2 0x259 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29C JUMPI PUSH2 0x29B PUSH2 0x1DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2AA DUP6 DUP3 DUP7 ADD PUSH2 0x270 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2BB DUP6 DUP3 DUP7 ADD PUSH2 0x270 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2FF DUP3 PUSH2 0x1A8 JUMP JUMPDEST SWAP2 POP PUSH2 0x30A DUP4 PUSH2 0x1A8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x33F JUMPI PUSH2 0x33E PUSH2 0x2C5 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x355 DUP3 PUSH2 0x1A8 JUMP JUMPDEST SWAP2 POP PUSH2 0x360 DUP4 PUSH2 0x1A8 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x399 JUMPI PUSH2 0x398 PUSH2 0x2C5 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3DE DUP3 PUSH2 0x1A8 JUMP JUMPDEST SWAP2 POP PUSH2 0x3E9 DUP4 PUSH2 0x1A8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3F9 JUMPI PUSH2 0x3F8 PUSH2 0x3A4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2B PC 0xBA PUSH21 0x96DF0A774C8E8329605A546A11C64910E0C80D57A9 EXP 0x24 0x2D AND 0x2A 0xEC XOR PUSH5 0x736F6C6343 STOP ADDMOD MULMOD STOP CALLER ",
"sourceMap": "586:755:0:-:0;;;728:2;719:11;;744:2;735:11;;586:755;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@addNewValues_53": {
"entryPoint": 391,
"id": 53,
"parameterSlots": 0,
"returnSlots": 1
},
"@addValues_35": {
"entryPoint": 296,
"id": 35,
"parameterSlots": 0,
"returnSlots": 1
},
"@divideCalculatorByFour_89": {
"entryPoint": 364,
"id": 89,
"parameterSlots": 2,
"returnSlots": 1
},
"@multiplyCalculatorByFour_71": {
"entryPoint": 329,
"id": 71,
"parameterSlots": 2,
"returnSlots": 1
},
"@remoteControlOpen_11": {
"entryPoint": 356,
"id": 11,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bool": {
"entryPoint": 624,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 504,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_boolt_bool": {
"entryPoint": 645,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256t_uint256": {
"entryPoint": 525,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 434,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 449,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 756,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_div_t_uint256": {
"entryPoint": 979,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 842,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 589,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 424,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 709,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x12": {
"entryPoint": 932,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 476,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_bool": {
"entryPoint": 601,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 481,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:3572:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:1",
"type": ""
}
],
"src": "7:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "155:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "172:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "195:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "177:17:1"
},
"nodeType": "YulFunctionCall",
"src": "177:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "165:6:1"
},
"nodeType": "YulFunctionCall",
"src": "165:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "165:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "143:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "150:3:1",
"type": ""
}
],
"src": "90:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "312:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "322:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "334:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "345:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "330:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "322:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "402:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "415:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "411:3:1"
},
"nodeType": "YulFunctionCall",
"src": "411:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "358:43:1"
},
"nodeType": "YulFunctionCall",
"src": "358:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "358:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "284:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "296:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "307:4:1",
"type": ""
}
],
"src": "214:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "482:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "492:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "508:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "502:5:1"
},
"nodeType": "YulFunctionCall",
"src": "502:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "492:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "475:6:1",
"type": ""
}
],
"src": "442:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "612:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "629:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "632:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "622:6:1"
},
"nodeType": "YulFunctionCall",
"src": "622:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "622:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "523:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "735:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "752:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "755:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "745:6:1"
},
"nodeType": "YulFunctionCall",
"src": "745:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "745:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "646:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "812:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "869:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "878:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "881:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "871:6:1"
},
"nodeType": "YulFunctionCall",
"src": "871:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "871:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "835:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "860:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "842:17:1"
},
"nodeType": "YulFunctionCall",
"src": "842:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "832:2:1"
},
"nodeType": "YulFunctionCall",
"src": "832:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "825:6:1"
},
"nodeType": "YulFunctionCall",
"src": "825:43:1"
},
"nodeType": "YulIf",
"src": "822:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "805:5:1",
"type": ""
}
],
"src": "769:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "949:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "959:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "981:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "968:12:1"
},
"nodeType": "YulFunctionCall",
"src": "968:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "959:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1024:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "997:26:1"
},
"nodeType": "YulFunctionCall",
"src": "997:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "997:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "927:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "935:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "943:5:1",
"type": ""
}
],
"src": "897:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1125:391:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1171:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1173:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1173:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1173:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1146:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1155:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1142:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1142:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1167:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1138:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1138:32:1"
},
"nodeType": "YulIf",
"src": "1135:119:1"
},
{
"nodeType": "YulBlock",
"src": "1264:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1279:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1293:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1283:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1308:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1343:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1354:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1339:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1339:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1363:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1318:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1318:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1308:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1391:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1406:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1420:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1410:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1436:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1471:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1482:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1467:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1467:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1491:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1446:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1446:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1436:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1087:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1098:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1110:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1118:6:1",
"type": ""
}
],
"src": "1042:474:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1564:48:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1574:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1599:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1592:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1592:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1585:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1585:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1574:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1546:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1556:7:1",
"type": ""
}
],
"src": "1522:90:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1658:76:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1712:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1721:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1724:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1714:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1714:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1714:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1681:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1703:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "1688:14:1"
},
"nodeType": "YulFunctionCall",
"src": "1688:21:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1678:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1678:32:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1671:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1671:40:1"
},
"nodeType": "YulIf",
"src": "1668:60:1"
}
]
},
"name": "validator_revert_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1651:5:1",
"type": ""
}
],
"src": "1618:116:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1789:84:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1799:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1821:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1808:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1808:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1799:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1861:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "1837:23:1"
},
"nodeType": "YulFunctionCall",
"src": "1837:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1837:30:1"
}
]
},
"name": "abi_decode_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1767:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1775:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1783:5:1",
"type": ""
}
],
"src": "1740:133:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1956:385:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2002:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2004:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2004:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2004:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1977:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1986:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1973:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1973:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1998:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1969:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1969:32:1"
},
"nodeType": "YulIf",
"src": "1966:119:1"
},
{
"nodeType": "YulBlock",
"src": "2095:114:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2110:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2124:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2114:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2139:60:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2171:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2182:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2167:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2167:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2191:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nodeType": "YulIdentifier",
"src": "2149:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2149:50:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2139:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "2219:115:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2234:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2248:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2238:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2264:60:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2296:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2307:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2292:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2292:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2316:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nodeType": "YulIdentifier",
"src": "2274:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2274:50:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2264:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_boolt_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1918:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1929:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1941:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1949:6:1",
"type": ""
}
],
"src": "1879:462:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2375:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2392:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2395:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2385:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2385:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "2385:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2489:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2492:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2482:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2482:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2482:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2513:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2516:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2506:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2506:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2506:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "2347:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2577:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2587:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2610:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2592:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2592:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2587:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2621:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2644:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2626:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2626:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2621:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2784:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "2786:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2786:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2786:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2705:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2712:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2780:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2708:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2708:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2702:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2702:81:1"
},
"nodeType": "YulIf",
"src": "2699:107:1"
},
{
"nodeType": "YulAssignment",
"src": "2816:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2827:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2830:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2823:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2823:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "2816:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "2564:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "2567:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "2573:3:1",
"type": ""
}
],
"src": "2533:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2892:300:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2902:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2925:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2907:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2907:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2902:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2936:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2959:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2941:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2941:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2936:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3134:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "3136:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3136:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "3136:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3046:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3039:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3039:9:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3032:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3032:17:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3054:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3061:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3129:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "3057:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3057:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3051:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3051:81:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3028:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3028:105:1"
},
"nodeType": "YulIf",
"src": "3025:131:1"
},
{
"nodeType": "YulAssignment",
"src": "3166:20:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3181:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3184:1:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "3177:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3177:9:1"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "3166:7:1"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "2875:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "2878:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "2884:7:1",
"type": ""
}
],
"src": "2844:348:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3226:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3243:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3246:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3236:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3236:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3236:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3340:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3343:4:1",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3333:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3333:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3333:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3364:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3367:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3357:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3357:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3357:15:1"
}
]
},
"name": "panic_error_0x12",
"nodeType": "YulFunctionDefinition",
"src": "3198:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3426:143:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3436:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3459:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3441:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3441:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3436:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3470:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3493:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3475:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3475:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3470:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3517:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x12",
"nodeType": "YulIdentifier",
"src": "3519:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3519:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "3519:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3514:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3507:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3507:9:1"
},
"nodeType": "YulIf",
"src": "3504:35:1"
},
{
"nodeType": "YulAssignment",
"src": "3549:14:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3558:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3561:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "3554:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3554:9:1"
},
"variableNames": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "3549:1:1"
}
]
}
]
},
"name": "checked_div_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "3415:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "3418:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nodeType": "YulTypedName",
"src": "3424:1:1",
"type": ""
}
],
"src": "3384:185:1"
}
]
},
"contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_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 cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_boolt_bool(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_bool(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\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 panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100575760003560e01c8063166e7bdd1461005c57806380f7a0181461007a578063b93c0937146100aa578063e500ba43146100da578063e581bdca1461010a575b600080fd5b610064610128565b60405161007191906101c1565b60405180910390f35b610094600480360381019061008f919061020d565b610149565b6040516100a191906101c1565b60405180910390f35b6100c460048036038101906100bf9190610285565b610164565b6040516100d191906101c1565b60405180910390f35b6100f460048036038101906100ef919061020d565b61016c565b60405161010191906101c1565b60405180910390f35b610112610187565b60405161011f91906101c1565b60405180910390f35b6000806003905060008160015461013f91906102f4565b9050809250505090565b6000808284610158919061034a565b90508091505092915050565b600092915050565b600080828461017b91906103d3565b90508091505092915050565b6000806005905060008160015461019e91906102f4565b9050809250505090565b6000819050919050565b6101bb816101a8565b82525050565b60006020820190506101d660008301846101b2565b92915050565b600080fd5b6101ea816101a8565b81146101f557600080fd5b50565b600081359050610207816101e1565b92915050565b60008060408385031215610224576102236101dc565b5b6000610232858286016101f8565b9250506020610243858286016101f8565b9150509250929050565b60008115159050919050565b6102628161024d565b811461026d57600080fd5b50565b60008135905061027f81610259565b92915050565b6000806040838503121561029c5761029b6101dc565b5b60006102aa85828601610270565b92505060206102bb85828601610270565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006102ff826101a8565b915061030a836101a8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561033f5761033e6102c5565b5b828201905092915050565b6000610355826101a8565b9150610360836101a8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610399576103986102c5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006103de826101a8565b91506103e9836101a8565b9250826103f9576103f86103a4565b5b82820490509291505056fea26469706673582212202b58ba7496df0a774c8e8329605a546a11c64910e0c80d57a90a242d162aec1864736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x166E7BDD EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x80F7A018 EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0xB93C0937 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0xE500BA43 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xE581BDCA EQ PUSH2 0x10A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x128 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x94 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x20D JUMP JUMPDEST PUSH2 0x149 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA1 SWAP2 SWAP1 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x285 JUMP JUMPDEST PUSH2 0x164 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD1 SWAP2 SWAP1 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEF SWAP2 SWAP1 PUSH2 0x20D JUMP JUMPDEST PUSH2 0x16C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x101 SWAP2 SWAP1 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x112 PUSH2 0x187 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x3 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 SLOAD PUSH2 0x13F SWAP2 SWAP1 PUSH2 0x2F4 JUMP JUMPDEST SWAP1 POP DUP1 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 PUSH2 0x158 SWAP2 SWAP1 PUSH2 0x34A JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 PUSH2 0x17B SWAP2 SWAP1 PUSH2 0x3D3 JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 SLOAD PUSH2 0x19E SWAP2 SWAP1 PUSH2 0x2F4 JUMP JUMPDEST SWAP1 POP DUP1 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BB DUP2 PUSH2 0x1A8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EA DUP2 PUSH2 0x1A8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x207 DUP2 PUSH2 0x1E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x224 JUMPI PUSH2 0x223 PUSH2 0x1DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x232 DUP6 DUP3 DUP7 ADD PUSH2 0x1F8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x243 DUP6 DUP3 DUP7 ADD PUSH2 0x1F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x262 DUP2 PUSH2 0x24D JUMP JUMPDEST DUP2 EQ PUSH2 0x26D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x27F DUP2 PUSH2 0x259 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29C JUMPI PUSH2 0x29B PUSH2 0x1DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2AA DUP6 DUP3 DUP7 ADD PUSH2 0x270 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2BB DUP6 DUP3 DUP7 ADD PUSH2 0x270 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2FF DUP3 PUSH2 0x1A8 JUMP JUMPDEST SWAP2 POP PUSH2 0x30A DUP4 PUSH2 0x1A8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x33F JUMPI PUSH2 0x33E PUSH2 0x2C5 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x355 DUP3 PUSH2 0x1A8 JUMP JUMPDEST SWAP2 POP PUSH2 0x360 DUP4 PUSH2 0x1A8 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x399 JUMPI PUSH2 0x398 PUSH2 0x2C5 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3DE DUP3 PUSH2 0x1A8 JUMP JUMPDEST SWAP2 POP PUSH2 0x3E9 DUP4 PUSH2 0x1A8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3F9 JUMPI PUSH2 0x3F8 PUSH2 0x3A4 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2B PC 0xBA PUSH21 0x96DF0A774C8E8329605A546A11C64910E0C80D57A9 EXP 0x24 0x2D AND 0x2A 0xEC XOR PUSH5 0x736F6C6343 STOP ADDMOD MULMOD STOP CALLER ",
"sourceMap": "586:755:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;760:123;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1045:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;624:83;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1193:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;895:134;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;760:123;802:4;817:6;826:1;817:10;;836:11;854:1;850;;:5;;;;:::i;:::-;836:19;;871:6;864:13;;;;760:123;:::o;1045:138::-;1114:4;1130:11;1148:1;1144;:5;;;;:::i;:::-;1130:19;;1166:6;1159:13;;;1045:138;;;;:::o;624:83::-;699:4;624:83;;;;:::o;1193:133::-;1261:4;1277:11;1295:1;1291;:5;;;;:::i;:::-;1277:19;;1313:6;1306:13;;;1193:133;;;;:::o;895:134::-;940:4;963:6;972:1;963:10;;982:11;1000:1;996;;:5;;;;:::i;:::-;982:19;;1017:6;1010:13;;;;895:134;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:474::-;1110:6;1118;1167:2;1155:9;1146:7;1142:23;1138:32;1135:119;;;1173:79;;:::i;:::-;1135:119;1293:1;1318:53;1363:7;1354:6;1343:9;1339:22;1318:53;:::i;:::-;1308:63;;1264:117;1420:2;1446:53;1491:7;1482:6;1471:9;1467:22;1446:53;:::i;:::-;1436:63;;1391:118;1042:474;;;;;:::o;1522:90::-;1556:7;1599:5;1592:13;1585:21;1574:32;;1522:90;;;:::o;1618:116::-;1688:21;1703:5;1688:21;:::i;:::-;1681:5;1678:32;1668:60;;1724:1;1721;1714:12;1668:60;1618:116;:::o;1740:133::-;1783:5;1821:6;1808:20;1799:29;;1837:30;1861:5;1837:30;:::i;:::-;1740:133;;;;:::o;1879:462::-;1941:6;1949;1998:2;1986:9;1977:7;1973:23;1969:32;1966:119;;;2004:79;;:::i;:::-;1966:119;2124:1;2149:50;2191:7;2182:6;2171:9;2167:22;2149:50;:::i;:::-;2139:60;;2095:114;2248:2;2274:50;2316:7;2307:6;2296:9;2292:22;2274:50;:::i;:::-;2264:60;;2219:115;1879:462;;;;;:::o;2347:180::-;2395:77;2392:1;2385:88;2492:4;2489:1;2482:15;2516:4;2513:1;2506:15;2533:305;2573:3;2592:20;2610:1;2592:20;:::i;:::-;2587:25;;2626:20;2644:1;2626:20;:::i;:::-;2621:25;;2780:1;2712:66;2708:74;2705:1;2702:81;2699:107;;;2786:18;;:::i;:::-;2699:107;2830:1;2827;2823:9;2816:16;;2533:305;;;;:::o;2844:348::-;2884:7;2907:20;2925:1;2907:20;:::i;:::-;2902:25;;2941:20;2959:1;2941:20;:::i;:::-;2936:25;;3129:1;3061:66;3057:74;3054:1;3051:81;3046:1;3039:9;3032:17;3028:105;3025:131;;;3136:18;;:::i;:::-;3025:131;3184:1;3181;3177:9;3166:20;;2844:348;;;;:::o;3198:180::-;3246:77;3243:1;3236:88;3343:4;3340:1;3333:15;3367:4;3364:1;3357:15;3384:185;3424:1;3441:20;3459:1;3441:20;:::i;:::-;3436:25;;3475:20;3493:1;3475:20;:::i;:::-;3470:25;;3514:1;3504:35;;3519:18;;:::i;:::-;3504:35;3561:1;3558;3554:9;3549:14;;3384:185;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "216400",
"executionCost": "44469",
"totalCost": "260869"
},
"external": {
"addNewValues()": "infinite",
"addValues()": "infinite",
"divideCalculatorByFour(uint256,uint256)": "infinite",
"multiplyCalculatorByFour(uint256,uint256)": "infinite",
"remoteControlOpen(bool,bool)": "infinite"
}
},
"methodIdentifiers": {
"addNewValues()": "e581bdca",
"addValues()": "166e7bdd",
"divideCalculatorByFour(uint256,uint256)": "e500ba43",
"multiplyCalculatorByFour(uint256,uint256)": "80f7a018",
"remoteControlOpen(bool,bool)": "b93c0937"
}
},
"abi": [
{
"inputs": [],
"name": "addNewValues",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "addValues",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "a",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "b",
"type": "uint256"
}
],
"name": "divideCalculatorByFour",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "a",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "b",
"type": "uint256"
}
],
"name": "multiplyCalculatorByFour",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "closedDoor",
"type": "bool"
},
{
"internalType": "bool",
"name": "openDoor",
"type": "bool"
}
],
"name": "remoteControlOpen",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.9+commit.e5eed63a"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "addNewValues",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "addValues",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "a",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "b",
"type": "uint256"
}
],
"name": "divideCalculatorByFour",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "a",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "b",
"type": "uint256"
}
],
"name": "multiplyCalculatorByFour",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "closedDoor",
"type": "bool"
},
{
"internalType": "bool",
"name": "openDoor",
"type": "bool"
}
],
"name": "remoteControlOpen",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/debug.sol": "learnFunctions"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/debug.sol": {
"keccak256": "0x931ee6557dfb6a743c9fe85fd432feb711c72ce64bd0e3343f1321ba28d1b674",
"urls": [
"bzz-raw://9266de659ef1752fcf4d659c4f84fe7c2aad520dbcc63e77d1653865405fd1ef",
"dweb:/ipfs/QmW7WhANDHiTt5saPWsFA6rVppdnwphPaXMqvtVsx7jRt2"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "6080604052600a60005561012c6001556001600260006101000a81548160ff0219169083151502179055506040518060400160405280602081526020017f4572726f722120546865726520686173206265656e2061206d697374616b652181525060039080519060200190610075929190610088565b5034801561008257600080fd5b5061012d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100c957805160ff19168380011785556100f7565b828001600101855582156100f7579182015b828111156100f65782518255916020019190600101906100db565b5b5090506101049190610108565b5090565b61012a91905b8082111561012657600081600090555060010161010e565b5090565b90565b6101568061013c6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063166e7bdd14610051578063273d1a3e1461006f5780633fcbb982146100b7578063e581bdca146100d5575b600080fd5b6100596100f3565b6040518082815260200191505060405180910390f35b61009d6004803603602081101561008557600080fd5b81019080803515159060200190929190505050610110565b604051808215151515815260200191505060405180910390f35b6100bf610117565b6040518082815260200191505060405180910390f35b6100dd61011c565b6040518082815260200191505060405180910390f35b600080600290506000600390506000818301905080935050505090565b6000919050565b600090565b60009056fea265627a7a723158204193b0b5074d3710de28384b7e5bf9a02621b064b4d860607bff125acf74539b64736f6c634300050f0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0x0 SSTORE PUSH2 0x12C PUSH1 0x1 SSTORE PUSH1 0x1 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4572726F722120546865726520686173206265656E2061206D697374616B6521 DUP2 MSTORE POP PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x75 SWAP3 SWAP2 SWAP1 PUSH2 0x88 JUMP JUMPDEST POP CALLVALUE DUP1 ISZERO PUSH2 0x82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12D JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0xC9 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xF7 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xF7 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xF6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xDB JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x108 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x12A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x126 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x10E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x156 DUP1 PUSH2 0x13C 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 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x166E7BDD EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x273D1A3E EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x3FCBB982 EQ PUSH2 0xB7 JUMPI DUP1 PUSH4 0xE581BDCA EQ PUSH2 0xD5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x110 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBF PUSH2 0x117 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDD PUSH2 0x11C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 SWAP1 POP PUSH1 0x0 PUSH1 0x3 SWAP1 POP PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP1 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 COINBASE SWAP4 0xB0 0xB5 SMOD 0x4D CALLDATACOPY LT 0xDE 0x28 CODESIZE 0x4B PUSH31 0x5BF9A02621B064B4D860607BFF125ACF74539B64736F6C634300050F003200 ",
"sourceMap": "35:580:0:-;;;89:2;69:22;;115:3;97:21;;143:4;124:23;;;;;;;;;;;;;;;;;;;;153:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;35:580;8:9:-1;5:2;;;30:1;27;20:12;5:2;35:580:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c8063166e7bdd14610051578063273d1a3e1461006f5780633fcbb982146100b7578063e581bdca146100d5575b600080fd5b6100596100f3565b6040518082815260200191505060405180910390f35b61009d6004803603602081101561008557600080fd5b81019080803515159060200190929190505050610110565b604051808215151515815260200191505060405180910390f35b6100bf610117565b6040518082815260200191505060405180910390f35b6100dd61011c565b6040518082815260200191505060405180910390f35b600080600290506000600390506000818301905080935050505090565b6000919050565b600090565b60009056fea265627a7a723158204193b0b5074d3710de28384b7e5bf9a02621b064b4d860607bff125acf74539b64736f6c634300050f0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x166E7BDD EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x273D1A3E EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x3FCBB982 EQ PUSH2 0xB7 JUMPI DUP1 PUSH4 0xE581BDCA EQ PUSH2 0xD5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x110 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBF PUSH2 0x117 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDD PUSH2 0x11C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 SWAP1 POP PUSH1 0x0 PUSH1 0x3 SWAP1 POP PUSH1 0x0 DUP2 DUP4 ADD SWAP1 POP DUP1 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 COINBASE SWAP4 0xB0 0xB5 SMOD 0x4D CALLDATACOPY LT 0xDE 0x28 CODESIZE 0x4B PUSH31 0x5BF9A02621B064B4D860607BFF125ACF74539B64736F6C634300050F003200 ",
"sourceMap": "35:580:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35:580:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;302:152;;;:::i;:::-;;;;;;;;;;;;;;;;;;;224:68;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;224:68:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;540;;;:::i;:::-;;;;;;;;;;;;;;;;;;;464:66;;;:::i;:::-;;;;;;;;;;;;;;;;;;;302:152;343:4;358:6;366:1;358:9;;377:6;385:1;377:9;;396:11;414:1;410;:5;396:19;;441:6;434:13;;;;;302:152;:::o;224:68::-;284:4;224:68;;;:::o;540:::-;587:4;540:68;:::o;464:66::-;509:4;464:66;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "68400",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"addNewValues()": "249",
"addValues()": "236",
"learnFunctions()": "227",
"remoteControlOpen(bool)": "310"
}
},
"methodIdentifiers": {
"addNewValues()": "e581bdca",
"addValues()": "166e7bdd",
"learnFunctions()": "3fcbb982",
"remoteControlOpen(bool)": "273d1a3e"
}
},
"abi": [
{
"constant": true,
"inputs": [],
"name": "addNewValues",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "addValues",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "learnFunctions",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "bool",
"name": "closedDoor",
"type": "bool"
}
],
"name": "remoteControlOpen",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.15+commit.6a57276f"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [],
"name": "addNewValues",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "addValues",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "learnFunctions",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "bool",
"name": "closedDoor",
"type": "bool"
}
],
"name": "remoteControlOpen",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contracts/exercise-assignment.sol": "learnVariables"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/exercise-assignment.sol": {
"keccak256": "0xf3031593e46ab19a498957757b61aa5c852c35177d79ad47ca41f7c4fbef37dd",
"urls": [
"bzz-raw://5ae6adee121a8eb00ed2205d4c47e512dac308b98f132fab9a3c9e8572dd675c",
"dweb:/ipfs/QmdypTJosTr6kKAd9Z7k1gvi2L5FA66UqWmXXZry6EACP1"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"extract_byte_array_length": {
"entryPoint": 578,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 531,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:516:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "35:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "52:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "55:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "45:6:1"
},
"nodeType": "YulFunctionCall",
"src": "45:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "45:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "149:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "152:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "142:6:1"
},
"nodeType": "YulFunctionCall",
"src": "142:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "142:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "173:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "176:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "166:6:1"
},
"nodeType": "YulFunctionCall",
"src": "166:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "166:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "7:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "244:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "254:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "268:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "274:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "264:3:1"
},
"nodeType": "YulFunctionCall",
"src": "264:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "254:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "285:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "315:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "321:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "311:3:1"
},
"nodeType": "YulFunctionCall",
"src": "311:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "289:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "362:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "376:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "390:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "398:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "386:3:1"
},
"nodeType": "YulFunctionCall",
"src": "386:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "376:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "342:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "335:6:1"
},
"nodeType": "YulFunctionCall",
"src": "335:26:1"
},
"nodeType": "YulIf",
"src": "332:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "465:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "479:16:1"
},
"nodeType": "YulFunctionCall",
"src": "479:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "479:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "429:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "452:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "460:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "449:2:1"
},
"nodeType": "YulFunctionCall",
"src": "449:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "426:2:1"
},
"nodeType": "YulFunctionCall",
"src": "426:38:1"
},
"nodeType": "YulIf",
"src": "423:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "228:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "237:6:1",
"type": ""
}
],
"src": "193:320:1"
}
]
},
"contents": "{\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040526040518060c00160405280600160ff168152602001600260ff168152602001600360ff168152602001600460ff168152602001600560ff168152602001600660ff1681525060009060066200005b9291906200010c565b506040518060400160405280600d81526020017f48656c6c6f2c20576f726c64210000000000000000000000000000000000000081525060019080519060200190620000a992919062000163565b506040518060400160405280600481526020017f626c75650000000000000000000000000000000000000000000000000000000081525060029080519060200190620000f792919062000163565b503480156200010557600080fd5b5062000278565b82805482825590600052602060002090810192821562000150579160200282015b828111156200014f578251829060ff169055916020019190600101906200012d565b5b5090506200015f9190620001f4565b5090565b828054620001719062000242565b90600052602060002090601f016020900481019282620001955760008555620001e1565b82601f10620001b057805160ff1916838001178555620001e1565b82800160010185558215620001e1579182015b82811115620001e0578251825591602001919060010190620001c3565b5b509050620001f09190620001f4565b5090565b5b808211156200020f576000816000905550600101620001f5565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200025b57607f821691505b6020821081141562000272576200027162000213565b5b50919050565b610a5580620002886000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806382343a1e1161005b57806382343a1e14610100578063dea0a47114610130578063e2015dda1461014e578063ef5fb05b1461017e5761007d565b806346c0d4d2146100825780634fff3470146100b25780636aa2afd5146100d0575b600080fd5b61009c600480360381019061009791906105b1565b61019c565b6040516100a991906105ed565b60405180910390f35b6100ba610210565b6040516100c791906106a1565b60405180910390f35b6100ea60048036038101906100e591906107f8565b6102a2565b6040516100f791906106a1565b60405180910390f35b61011a600480360381019061011591906105b1565b61034d565b60405161012791906105ed565b60405180910390f35b610138610371565b60405161014591906105ed565b60405180910390f35b61016860048036038101906101639190610841565b610409565b604051610175919061089c565b60405180910390f35b610186610432565b60405161019391906106a1565b60405180910390f35b600080600090506000600190505b600080549050811015610206576101df600082815481106101ce576101cd6108b7565b5b906000526020600020015485610409565b156101f35781806101ef90610915565b9250505b80806101fe90610915565b9150506101aa565b5080915050919050565b60606002805461021f9061098d565b80601f016020809104026020016040519081016040528092919081815260200182805461024b9061098d565b80156102985780601f1061026d57610100808354040283529160200191610298565b820191906000526020600020905b81548152906001019060200180831161027b57829003601f168201915b5050505050905090565b606081600290805190602001906102ba9291906104c4565b50600280546102c89061098d565b80601f01602080910402602001604051908101604052809291908181526020018280546102f49061098d565b80156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b50505050509050919050565b6000818154811061035d57600080fd5b906000526020600020016000915090505481565b600080600280546103819061098d565b80601f01602080910402602001604051908101604052809291908181526020018280546103ad9061098d565b80156103fa5780601f106103cf576101008083540402835291602001916103fa565b820191906000526020600020905b8154815290600101906020018083116103dd57829003601f168201915b50505050509050805191505090565b600080828461041891906109ee565b1415610427576001905061042c565b600090505b92915050565b6060600180546104419061098d565b80601f016020809104026020016040519081016040528092919081815260200182805461046d9061098d565b80156104ba5780601f1061048f576101008083540402835291602001916104ba565b820191906000526020600020905b81548152906001019060200180831161049d57829003601f168201915b5050505050905090565b8280546104d09061098d565b90600052602060002090601f0160209004810192826104f25760008555610539565b82601f1061050b57805160ff1916838001178555610539565b82800160010185558215610539579182015b8281111561053857825182559160200191906001019061051d565b5b509050610546919061054a565b5090565b5b8082111561056357600081600090555060010161054b565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61058e8161057b565b811461059957600080fd5b50565b6000813590506105ab81610585565b92915050565b6000602082840312156105c7576105c6610571565b5b60006105d58482850161059c565b91505092915050565b6105e78161057b565b82525050565b600060208201905061060260008301846105de565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610642578082015181840152602081019050610627565b83811115610651576000848401525b50505050565b6000601f19601f8301169050919050565b600061067382610608565b61067d8185610613565b935061068d818560208601610624565b61069681610657565b840191505092915050565b600060208201905081810360008301526106bb8184610668565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61070582610657565b810181811067ffffffffffffffff82111715610724576107236106cd565b5b80604052505050565b6000610737610567565b905061074382826106fc565b919050565b600067ffffffffffffffff821115610763576107626106cd565b5b61076c82610657565b9050602081019050919050565b82818337600083830152505050565b600061079b61079684610748565b61072d565b9050828152602081018484840111156107b7576107b66106c8565b5b6107c2848285610779565b509392505050565b600082601f8301126107df576107de6106c3565b5b81356107ef848260208601610788565b91505092915050565b60006020828403121561080e5761080d610571565b5b600082013567ffffffffffffffff81111561082c5761082b610576565b5b610838848285016107ca565b91505092915050565b6000806040838503121561085857610857610571565b5b60006108668582860161059c565b92505060206108778582860161059c565b9150509250929050565b60008115159050919050565b61089681610881565b82525050565b60006020820190506108b1600083018461088d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006109208261057b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610953576109526108e6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806109a557607f821691505b602082108114156109b9576109b861095e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006109f98261057b565b9150610a048361057b565b925082610a1457610a136109bf565b5b82820690509291505056fea264697066735822122097a57aa4d88d89a1cce30f8a5466ede28b0e36a4a618c6a62a5a427a8f3a05ad64736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 PUSH1 0xFF AND DUP2 MSTORE POP PUSH1 0x0 SWAP1 PUSH1 0x6 PUSH3 0x5B SWAP3 SWAP2 SWAP1 PUSH3 0x10C JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x48656C6C6F2C20576F726C642100000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0xA9 SWAP3 SWAP2 SWAP1 PUSH3 0x163 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x626C756500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0xF7 SWAP3 SWAP2 SWAP1 PUSH3 0x163 JUMP JUMPDEST POP CALLVALUE DUP1 ISZERO PUSH3 0x105 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x278 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH3 0x150 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x14F JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH1 0xFF AND SWAP1 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x12D JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x15F SWAP2 SWAP1 PUSH3 0x1F4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x171 SWAP1 PUSH3 0x242 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x195 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x1E1 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x1B0 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1E1 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1E1 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1E0 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1C3 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x1F0 SWAP2 SWAP1 PUSH3 0x1F4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x20F JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x1F5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x25B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x272 JUMPI PUSH3 0x271 PUSH3 0x213 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA55 DUP1 PUSH3 0x288 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x82343A1E GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x82343A1E EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0xDEA0A471 EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0xE2015DDA EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0xEF5FB05B EQ PUSH2 0x17E JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x46C0D4D2 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x4FFF3470 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x6AA2AFD5 EQ PUSH2 0xD0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x5B1 JUMP JUMPDEST PUSH2 0x19C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x5ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBA PUSH2 0x210 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC7 SWAP2 SWAP1 PUSH2 0x6A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE5 SWAP2 SWAP1 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP2 SWAP1 PUSH2 0x6A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x115 SWAP2 SWAP1 PUSH2 0x5B1 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x5ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x138 PUSH2 0x371 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x145 SWAP2 SWAP1 PUSH2 0x5ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x168 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x163 SWAP2 SWAP1 PUSH2 0x841 JUMP JUMPDEST PUSH2 0x409 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x89C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x186 PUSH2 0x432 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x6A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x0 PUSH1 0x1 SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x206 JUMPI PUSH2 0x1DF PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1CE JUMPI PUSH2 0x1CD PUSH2 0x8B7 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH2 0x409 JUMP JUMPDEST ISZERO PUSH2 0x1F3 JUMPI DUP2 DUP1 PUSH2 0x1EF SWAP1 PUSH2 0x915 JUMP JUMPDEST SWAP3 POP POP JUMPDEST DUP1 DUP1 PUSH2 0x1FE SWAP1 PUSH2 0x915 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1AA JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x21F SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x24B SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x298 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x26D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x298 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x27B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x2BA SWAP3 SWAP2 SWAP1 PUSH2 0x4C4 JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH2 0x2C8 SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2F4 SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x341 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x316 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x341 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x324 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 DUP1 SLOAD PUSH2 0x381 SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3CF JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DD JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 PUSH2 0x418 SWAP2 SWAP1 PUSH2 0x9EE JUMP JUMPDEST EQ ISZERO PUSH2 0x427 JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x42C JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x441 SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x46D SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4BA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4BA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x49D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x4D0 SWAP1 PUSH2 0x98D JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x539 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x50B JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x539 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x539 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x538 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x51D JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x54A JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x563 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x54B JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x58E DUP2 PUSH2 0x57B JUMP JUMPDEST DUP2 EQ PUSH2 0x599 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5AB DUP2 PUSH2 0x585 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5C7 JUMPI PUSH2 0x5C6 PUSH2 0x571 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x5D5 DUP5 DUP3 DUP6 ADD PUSH2 0x59C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5E7 DUP2 PUSH2 0x57B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x602 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5DE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x642 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x627 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x673 DUP3 PUSH2 0x608 JUMP JUMPDEST PUSH2 0x67D DUP2 DUP6 PUSH2 0x613 JUMP JUMPDEST SWAP4 POP PUSH2 0x68D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x624 JUMP JUMPDEST PUSH2 0x696 DUP2 PUSH2 0x657 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6BB DUP2 DUP5 PUSH2 0x668 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x705 DUP3 PUSH2 0x657 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x724 JUMPI PUSH2 0x723 PUSH2 0x6CD JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x737 PUSH2 0x567 JUMP JUMPDEST SWAP1 POP PUSH2 0x743 DUP3 DUP3 PUSH2 0x6FC JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x763 JUMPI PUSH2 0x762 PUSH2 0x6CD JUMP JUMPDEST JUMPDEST PUSH2 0x76C DUP3 PUSH2 0x657 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x79B PUSH2 0x796 DUP5 PUSH2 0x748 JUMP JUMPDEST PUSH2 0x72D JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x7B7 JUMPI PUSH2 0x7B6 PUSH2 0x6C8 JUMP JUMPDEST JUMPDEST PUSH2 0x7C2 DUP5 DUP3 DUP6 PUSH2 0x779 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x7DF JUMPI PUSH2 0x7DE PUSH2 0x6C3 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7EF DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x788 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x80E JUMPI PUSH2 0x80D PUSH2 0x571 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x82C JUMPI PUSH2 0x82B PUSH2 0x576 JUMP JUMPDEST JUMPDEST PUSH2 0x838 DUP5 DUP3 DUP6 ADD PUSH2 0x7CA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x858 JUMPI PUSH2 0x857 PUSH2 0x571 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x866 DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x877 DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x896 DUP2 PUSH2 0x881 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x8B1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x88D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 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 PUSH2 0x920 DUP3 PUSH2 0x57B JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x953 JUMPI PUSH2 0x952 PUSH2 0x8E6 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x9A5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x9B9 JUMPI PUSH2 0x9B8 PUSH2 0x95E JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x9F9 DUP3 PUSH2 0x57B JUMP JUMPDEST SWAP2 POP PUSH2 0xA04 DUP4 PUSH2 0x57B JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xA14 JUMPI PUSH2 0xA13 PUSH2 0x9BF JUMP JUMPDEST JUMPDEST DUP3 DUP3 MOD SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP8 0xA5 PUSH27 0xA4D88D89A1CCE30F8A5466EDE28B0E36A4A618C6A62A5A427A8F3A SDIV 0xAD PUSH5 0x736F6C6343 STOP ADDMOD MULMOD STOP CALLER ",
"sourceMap": "36:1311:0:-:0;;;72:42;;;;;;;;102:1;72:42;;;;;;104:1;72:42;;;;;;106:1;72:42;;;;;;108:1;72:42;;;;;;110:1;72:42;;;;;;112:1;72:42;;;;;;;;;;;;;:::i;:::-;;697:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;839:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;36:1311;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:180:1:-;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:320;237:6;274:1;268:4;264:12;254:22;;321:1;315:4;311:12;342:18;332:81;;398:4;390:6;386:17;376:27;;332:81;460:2;452:6;449:14;429:18;426:38;423:84;;;479:18;;:::i;:::-;423:84;244:269;193:320;;;:::o;36:1311:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@changeColorLength_123": {
"entryPoint": 881,
"id": 123,
"parameterSlots": 0,
"returnSlots": 1
},
"@changeColor_99": {
"entryPoint": 674,
"id": 99,
"parameterSlots": 1,
"returnSlots": 1
},
"@checkMultiplesValidity_71": {
"entryPoint": 1033,
"id": 71,
"parameterSlots": 2,
"returnSlots": 1
},
"@checkMultiples_49": {
"entryPoint": 412,
"id": 49,
"parameterSlots": 1,
"returnSlots": 1
},
"@numbersList_11": {
"entryPoint": 845,
"id": 11,
"parameterSlots": 0,
"returnSlots": 0
},
"@sayHello_82": {
"entryPoint": 1074,
"id": 82,
"parameterSlots": 0,
"returnSlots": 1
},
"@viewColor_107": {
"entryPoint": 528,
"id": 107,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 1928,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 1994,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1436,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptr": {
"entryPoint": 2040,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 1457,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_uint256": {
"entryPoint": 2113,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 2189,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1640,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 1502,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 2204,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1697,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 1517,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1837,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1383,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 1864,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 1544,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 1555,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 2177,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1403,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory": {
"entryPoint": 1913,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory": {
"entryPoint": 1572,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 2445,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1788,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"increment_t_uint256": {
"entryPoint": 2325,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mod_t_uint256": {
"entryPoint": 2542,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 2278,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x12": {
"entryPoint": 2495,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 2398,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 2231,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1741,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1731,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 1736,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 1398,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1393,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1623,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_uint256": {
"entryPoint": 1413,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:7783:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "400:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "460:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "517:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "526:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "529:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "519:6:1"
},
"nodeType": "YulFunctionCall",
"src": "519:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "519:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "483:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "508:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "490:17:1"
},
"nodeType": "YulFunctionCall",
"src": "490:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "480:2:1"
},
"nodeType": "YulFunctionCall",
"src": "480:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "473:6:1"
},
"nodeType": "YulFunctionCall",
"src": "473:43:1"
},
"nodeType": "YulIf",
"src": "470:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "453:5:1",
"type": ""
}
],
"src": "417:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "597:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "607:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "629:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "616:12:1"
},
"nodeType": "YulFunctionCall",
"src": "616:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "607:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "672:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "645:26:1"
},
"nodeType": "YulFunctionCall",
"src": "645:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "645:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "575:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "583:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "591:5:1",
"type": ""
}
],
"src": "545:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "756:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "802:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "804:77:1"
},
"nodeType": "YulFunctionCall",
"src": "804:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "804:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "777:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "786:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "773:3:1"
},
"nodeType": "YulFunctionCall",
"src": "773:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "798:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "769:3:1"
},
"nodeType": "YulFunctionCall",
"src": "769:32:1"
},
"nodeType": "YulIf",
"src": "766:119:1"
},
{
"nodeType": "YulBlock",
"src": "895:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "910:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "924:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "914:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "939:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "974:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "985:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "970:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "994:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "949:20:1"
},
"nodeType": "YulFunctionCall",
"src": "949:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "939:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "726:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "737:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "749:6:1",
"type": ""
}
],
"src": "690:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1090:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1107:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1130:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1112:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1112:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1100:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1100:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1100:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1078:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1085:3:1",
"type": ""
}
],
"src": "1025:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1247:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1257:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1269:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1280:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1265:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1265:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1257:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1337:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1350:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1361:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1346:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1346:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1293:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1293:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1293:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1219:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1231:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1242:4:1",
"type": ""
}
],
"src": "1149:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1436:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1447:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1463:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1457:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1457:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1447:6:1"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1419:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1429:6:1",
"type": ""
}
],
"src": "1377:99:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1578:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1595:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1600:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1588:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1588:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "1588:19:1"
},
{
"nodeType": "YulAssignment",
"src": "1616:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1635:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1640:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1631:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1631:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1616:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1550:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1555:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1566:11:1",
"type": ""
}
],
"src": "1482:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1706:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1716:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1725:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1720:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1785:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1810:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1815:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1806:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1806:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1829:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1834:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1825:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1825:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1819:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1819:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1799:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1799:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "1799:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1746:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1749:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1743:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1743:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1757:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1759:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1768:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1771:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1764:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1764:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1759:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1739:3:1",
"statements": []
},
"src": "1735:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1882:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1932:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1937:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1928:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1928:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1946:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1921:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1921:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "1921:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1863:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1866:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1860:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1860:13:1"
},
"nodeType": "YulIf",
"src": "1857:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1688:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1693:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1698:6:1",
"type": ""
}
],
"src": "1657:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2018:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2028:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2046:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2053:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2042:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2042:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2062:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "2058:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2058:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2038:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2038:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "2028:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2001:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "2011:6:1",
"type": ""
}
],
"src": "1970:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2170:272:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2180:53:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2227:5:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2194:32:1"
},
"nodeType": "YulFunctionCall",
"src": "2194:39:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2184:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2242:78:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2308:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2313:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2249:58:1"
},
"nodeType": "YulFunctionCall",
"src": "2249:71:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2242:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2355:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2362:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2351:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2351:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2369:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2374:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2329:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2329:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "2329:52:1"
},
{
"nodeType": "YulAssignment",
"src": "2390:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2401:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2428:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2406:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2406:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2397:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2397:39:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2390:3:1"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2151:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2158:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2166:3:1",
"type": ""
}
],
"src": "2078:364:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2566:195:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2576:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2588:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2599:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2584:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2584:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2576:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2623:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2634:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2619:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2619:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2642:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2648:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2638:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2638:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2612:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2612:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "2612:47:1"
},
{
"nodeType": "YulAssignment",
"src": "2668:86:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2740:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2749:4:1"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2676:63:1"
},
"nodeType": "YulFunctionCall",
"src": "2676:78:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2668:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2538:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2550:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2561:4:1",
"type": ""
}
],
"src": "2448:313:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2856:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2873:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2876:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2866:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2866:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2866:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "2767:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2979:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2996:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2999:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2989:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2989:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2989:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "2890:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3041:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3058:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3061:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3051:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3051:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3051:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3155:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3158:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3148:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3148:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3148:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3179:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3182:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3172:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3172:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3172:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "3013:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3242:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3252:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3274:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3304:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "3282:21:1"
},
"nodeType": "YulFunctionCall",
"src": "3282:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3270:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3270:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "3256:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3421:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "3423:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3423:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "3423:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "3364:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3376:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3361:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3361:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "3400:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3412:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3397:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3397:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "3358:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3358:62:1"
},
"nodeType": "YulIf",
"src": "3355:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3459:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "3463:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3452:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3452:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "3452:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3228:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "3236:4:1",
"type": ""
}
],
"src": "3199:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3527:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3537:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "3547:18:1"
},
"nodeType": "YulFunctionCall",
"src": "3547:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3537:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3596:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3604:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "3576:19:1"
},
"nodeType": "YulFunctionCall",
"src": "3576:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "3576:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "3511:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3520:6:1",
"type": ""
}
],
"src": "3486:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3688:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3793:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "3795:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3795:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "3795:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3765:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3773:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3762:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3762:30:1"
},
"nodeType": "YulIf",
"src": "3759:56:1"
},
{
"nodeType": "YulAssignment",
"src": "3825:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3855:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "3833:21:1"
},
"nodeType": "YulFunctionCall",
"src": "3833:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3825:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3899:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3911:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3917:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3907:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3907:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "3899:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3672:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "3683:4:1",
"type": ""
}
],
"src": "3621:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3986:103:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4009:3:1"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4014:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4019:6:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "3996:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3996:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "3996:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4067:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4072:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4063:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4063:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4081:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4056:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4056:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "4056:27:1"
}
]
},
"name": "copy_calldata_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "3968:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "3973:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3978:6:1",
"type": ""
}
],
"src": "3935:154:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4179:328:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4189:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4256:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4214:41:1"
},
"nodeType": "YulFunctionCall",
"src": "4214:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "4198:15:1"
},
"nodeType": "YulFunctionCall",
"src": "4198:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4189:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4280:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4287:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4273:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4273:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "4273:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4303:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4318:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4325:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4314:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4314:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4307:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4368:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "4370:77:1"
},
"nodeType": "YulFunctionCall",
"src": "4370:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "4370:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4349:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4354:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4345:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4345:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4363:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4342:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4342:25:1"
},
"nodeType": "YulIf",
"src": "4339:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4484:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4489:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4494:6:1"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "4460:23:1"
},
"nodeType": "YulFunctionCall",
"src": "4460:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "4460:41:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4152:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4157:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4165:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "4173:5:1",
"type": ""
}
],
"src": "4095:412:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4589:278:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4638:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "4640:77:1"
},
"nodeType": "YulFunctionCall",
"src": "4640:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "4640:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4617:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4625:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4613:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4613:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4632:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "4609:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4609:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4602:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4602:35:1"
},
"nodeType": "YulIf",
"src": "4599:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4730:34:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4757:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "4744:12:1"
},
"nodeType": "YulFunctionCall",
"src": "4744:20:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4734:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4773:88:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4834:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4842:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4830:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4830:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4849:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4857:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4782:47:1"
},
"nodeType": "YulFunctionCall",
"src": "4782:79:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "4773:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4567:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4575:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "4583:5:1",
"type": ""
}
],
"src": "4527:340:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4949:433:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4995:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "4997:77:1"
},
"nodeType": "YulFunctionCall",
"src": "4997:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "4997:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4970:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4979:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4966:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4966:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4991:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "4962:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4962:32:1"
},
"nodeType": "YulIf",
"src": "4959:119:1"
},
{
"nodeType": "YulBlock",
"src": "5088:287:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5103:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5134:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5145:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5130:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5130:17:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5117:12:1"
},
"nodeType": "YulFunctionCall",
"src": "5117:31:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5107:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5195:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "5197:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5197:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5197:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5167:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5175:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5164:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5164:30:1"
},
"nodeType": "YulIf",
"src": "5161:117:1"
},
{
"nodeType": "YulAssignment",
"src": "5292:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5337:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5348:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5333:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5333:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5357:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5302:30:1"
},
"nodeType": "YulFunctionCall",
"src": "5302:63:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5292:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4919:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "4930:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4942:6:1",
"type": ""
}
],
"src": "4873:509:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5471:391:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5517:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "5519:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5519:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5519:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5492:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5501:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5488:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5488:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5513:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5484:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5484:32:1"
},
"nodeType": "YulIf",
"src": "5481:119:1"
},
{
"nodeType": "YulBlock",
"src": "5610:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5625:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5639:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5629:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5654:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5689:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5700:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5685:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5685:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5709:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "5664:20:1"
},
"nodeType": "YulFunctionCall",
"src": "5664:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5654:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5737:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5752:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5766:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5756:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5782:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5817:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5828:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5813:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5813:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5837:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "5792:20:1"
},
"nodeType": "YulFunctionCall",
"src": "5792:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5782:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5433:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "5444:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5456:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5464:6:1",
"type": ""
}
],
"src": "5388:474:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5910:48:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5920:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5945:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5938:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5938:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5931:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5931:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "5920:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5892:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "5902:7:1",
"type": ""
}
],
"src": "5868:90:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6023:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6040:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6060:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "6045:14:1"
},
"nodeType": "YulFunctionCall",
"src": "6045:21:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6033:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6033:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "6033:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6011:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6018:3:1",
"type": ""
}
],
"src": "5964:109:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6171:118:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6181:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6193:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6204:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6189:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6189:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6181:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6255:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6268:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6279:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6264:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6264:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "6217:37:1"
},
"nodeType": "YulFunctionCall",
"src": "6217:65:1"
},
"nodeType": "YulExpressionStatement",
"src": "6217:65:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6143:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6155:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6166:4:1",
"type": ""
}
],
"src": "6079:210:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6323:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6340:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6343:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6333:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6333:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "6333:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6437:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6440:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6430:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6430:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6430:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6461:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6464:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6454:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6454:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6454:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "6295:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6509:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6526:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6529:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6519:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6519:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "6519:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6623:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6626:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6616:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6616:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6616:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6647:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6650:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6640:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6640:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6640:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "6481:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6710:190:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6720:33:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6747:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "6729:17:1"
},
"nodeType": "YulFunctionCall",
"src": "6729:24:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6720:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6843:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "6845:16:1"
},
"nodeType": "YulFunctionCall",
"src": "6845:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "6845:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6768:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6775:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "6765:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6765:77:1"
},
"nodeType": "YulIf",
"src": "6762:103:1"
},
{
"nodeType": "YulAssignment",
"src": "6874:20:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6885:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6892:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6881:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6881:13:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "6874:3:1"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6696:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "6706:3:1",
"type": ""
}
],
"src": "6667:233:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6934:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6951:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6954:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6944:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6944:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "6944:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7048:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7051:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7041:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7041:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7041:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7072:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7075:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7065:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7065:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7065:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "6906:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7143:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7153:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "7167:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7173:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "7163:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7163:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7153:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "7184:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "7214:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7220:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7210:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7210:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "7188:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7261:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7275:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7289:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7297:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7285:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7285:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7275:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "7241:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "7234:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7234:26:1"
},
"nodeType": "YulIf",
"src": "7231:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7364:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "7378:16:1"
},
"nodeType": "YulFunctionCall",
"src": "7378:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "7378:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "7328:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7351:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7359:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "7348:2:1"
},
"nodeType": "YulFunctionCall",
"src": "7348:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "7325:2:1"
},
"nodeType": "YulFunctionCall",
"src": "7325:38:1"
},
"nodeType": "YulIf",
"src": "7322:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "7127:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7136:6:1",
"type": ""
}
],
"src": "7092:320:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7446:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7463:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7466:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7456:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7456:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "7456:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7560:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7563:4:1",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7553:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7553:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7553:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7584:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7587:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7577:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7577:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7577:15:1"
}
]
},
"name": "panic_error_0x12",
"nodeType": "YulFunctionDefinition",
"src": "7418:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7638:142:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7648:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7671:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7653:17:1"
},
"nodeType": "YulFunctionCall",
"src": "7653:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7648:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "7682:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7705:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7687:17:1"
},
"nodeType": "YulFunctionCall",
"src": "7687:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7682:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7729:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x12",
"nodeType": "YulIdentifier",
"src": "7731:16:1"
},
"nodeType": "YulFunctionCall",
"src": "7731:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "7731:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7726:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "7719:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7719:9:1"
},
"nodeType": "YulIf",
"src": "7716:35:1"
},
{
"nodeType": "YulAssignment",
"src": "7760:14:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7769:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7772:1:1"
}
],
"functionName": {
"name": "mod",
"nodeType": "YulIdentifier",
"src": "7765:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7765:9:1"
},
"variableNames": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "7760:1:1"
}
]
}
]
},
"name": "mod_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "7627:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "7630:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nodeType": "YulTypedName",
"src": "7636:1:1",
"type": ""
}
],
"src": "7604:176:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_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_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 array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_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 cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\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 panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\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 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_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function mod_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061007d5760003560e01c806382343a1e1161005b57806382343a1e14610100578063dea0a47114610130578063e2015dda1461014e578063ef5fb05b1461017e5761007d565b806346c0d4d2146100825780634fff3470146100b25780636aa2afd5146100d0575b600080fd5b61009c600480360381019061009791906105b1565b61019c565b6040516100a991906105ed565b60405180910390f35b6100ba610210565b6040516100c791906106a1565b60405180910390f35b6100ea60048036038101906100e591906107f8565b6102a2565b6040516100f791906106a1565b60405180910390f35b61011a600480360381019061011591906105b1565b61034d565b60405161012791906105ed565b60405180910390f35b610138610371565b60405161014591906105ed565b60405180910390f35b61016860048036038101906101639190610841565b610409565b604051610175919061089c565b60405180910390f35b610186610432565b60405161019391906106a1565b60405180910390f35b600080600090506000600190505b600080549050811015610206576101df600082815481106101ce576101cd6108b7565b5b906000526020600020015485610409565b156101f35781806101ef90610915565b9250505b80806101fe90610915565b9150506101aa565b5080915050919050565b60606002805461021f9061098d565b80601f016020809104026020016040519081016040528092919081815260200182805461024b9061098d565b80156102985780601f1061026d57610100808354040283529160200191610298565b820191906000526020600020905b81548152906001019060200180831161027b57829003601f168201915b5050505050905090565b606081600290805190602001906102ba9291906104c4565b50600280546102c89061098d565b80601f01602080910402602001604051908101604052809291908181526020018280546102f49061098d565b80156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b50505050509050919050565b6000818154811061035d57600080fd5b906000526020600020016000915090505481565b600080600280546103819061098d565b80601f01602080910402602001604051908101604052809291908181526020018280546103ad9061098d565b80156103fa5780601f106103cf576101008083540402835291602001916103fa565b820191906000526020600020905b8154815290600101906020018083116103dd57829003601f168201915b50505050509050805191505090565b600080828461041891906109ee565b1415610427576001905061042c565b600090505b92915050565b6060600180546104419061098d565b80601f016020809104026020016040519081016040528092919081815260200182805461046d9061098d565b80156104ba5780601f1061048f576101008083540402835291602001916104ba565b820191906000526020600020905b81548152906001019060200180831161049d57829003601f168201915b5050505050905090565b8280546104d09061098d565b90600052602060002090601f0160209004810192826104f25760008555610539565b82601f1061050b57805160ff1916838001178555610539565b82800160010185558215610539579182015b8281111561053857825182559160200191906001019061051d565b5b509050610546919061054a565b5090565b5b8082111561056357600081600090555060010161054b565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61058e8161057b565b811461059957600080fd5b50565b6000813590506105ab81610585565b92915050565b6000602082840312156105c7576105c6610571565b5b60006105d58482850161059c565b91505092915050565b6105e78161057b565b82525050565b600060208201905061060260008301846105de565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610642578082015181840152602081019050610627565b83811115610651576000848401525b50505050565b6000601f19601f8301169050919050565b600061067382610608565b61067d8185610613565b935061068d818560208601610624565b61069681610657565b840191505092915050565b600060208201905081810360008301526106bb8184610668565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61070582610657565b810181811067ffffffffffffffff82111715610724576107236106cd565b5b80604052505050565b6000610737610567565b905061074382826106fc565b919050565b600067ffffffffffffffff821115610763576107626106cd565b5b61076c82610657565b9050602081019050919050565b82818337600083830152505050565b600061079b61079684610748565b61072d565b9050828152602081018484840111156107b7576107b66106c8565b5b6107c2848285610779565b509392505050565b600082601f8301126107df576107de6106c3565b5b81356107ef848260208601610788565b91505092915050565b60006020828403121561080e5761080d610571565b5b600082013567ffffffffffffffff81111561082c5761082b610576565b5b610838848285016107ca565b91505092915050565b6000806040838503121561085857610857610571565b5b60006108668582860161059c565b92505060206108778582860161059c565b9150509250929050565b60008115159050919050565b61089681610881565b82525050565b60006020820190506108b1600083018461088d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006109208261057b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610953576109526108e6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806109a557607f821691505b602082108114156109b9576109b861095e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006109f98261057b565b9150610a048361057b565b925082610a1457610a136109bf565b5b82820690509291505056fea264697066735822122097a57aa4d88d89a1cce30f8a5466ede28b0e36a4a618c6a62a5a427a8f3a05ad64736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x82343A1E GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x82343A1E EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0xDEA0A471 EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0xE2015DDA EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0xEF5FB05B EQ PUSH2 0x17E JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x46C0D4D2 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x4FFF3470 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x6AA2AFD5 EQ PUSH2 0xD0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x5B1 JUMP JUMPDEST PUSH2 0x19C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x5ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBA PUSH2 0x210 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC7 SWAP2 SWAP1 PUSH2 0x6A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE5 SWAP2 SWAP1 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF7 SWAP2 SWAP1 PUSH2 0x6A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x115 SWAP2 SWAP1 PUSH2 0x5B1 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x5ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x138 PUSH2 0x371 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x145 SWAP2 SWAP1 PUSH2 0x5ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x168 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x163 SWAP2 SWAP1 PUSH2 0x841 JUMP JUMPDEST PUSH2 0x409 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x89C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x186 PUSH2 0x432 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x6A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x0 PUSH1 0x1 SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x206 JUMPI PUSH2 0x1DF PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1CE JUMPI PUSH2 0x1CD PUSH2 0x8B7 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH2 0x409 JUMP JUMPDEST ISZERO PUSH2 0x1F3 JUMPI DUP2 DUP1 PUSH2 0x1EF SWAP1 PUSH2 0x915 JUMP JUMPDEST SWAP3 POP POP JUMPDEST DUP1 DUP1 PUSH2 0x1FE SWAP1 PUSH2 0x915 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1AA JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x21F SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x24B SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x298 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x26D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x298 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x27B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x2BA SWAP3 SWAP2 SWAP1 PUSH2 0x4C4 JUMP JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH2 0x2C8 SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2F4 SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x341 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x316 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x341 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x324 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 DUP1 SLOAD PUSH2 0x381 SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AD SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3CF JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DD JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 PUSH2 0x418 SWAP2 SWAP1 PUSH2 0x9EE JUMP JUMPDEST EQ ISZERO PUSH2 0x427 JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x42C JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x441 SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x46D SWAP1 PUSH2 0x98D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4BA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4BA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x49D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x4D0 SWAP1 PUSH2 0x98D JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x539 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x50B JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x539 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x539 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x538 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x51D JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x54A JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x563 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x54B JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x58E DUP2 PUSH2 0x57B JUMP JUMPDEST DUP2 EQ PUSH2 0x599 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5AB DUP2 PUSH2 0x585 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5C7 JUMPI PUSH2 0x5C6 PUSH2 0x571 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x5D5 DUP5 DUP3 DUP6 ADD PUSH2 0x59C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5E7 DUP2 PUSH2 0x57B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x602 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5DE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x642 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x627 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x673 DUP3 PUSH2 0x608 JUMP JUMPDEST PUSH2 0x67D DUP2 DUP6 PUSH2 0x613 JUMP JUMPDEST SWAP4 POP PUSH2 0x68D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x624 JUMP JUMPDEST PUSH2 0x696 DUP2 PUSH2 0x657 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x6BB DUP2 DUP5 PUSH2 0x668 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x705 DUP3 PUSH2 0x657 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x724 JUMPI PUSH2 0x723 PUSH2 0x6CD JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x737 PUSH2 0x567 JUMP JUMPDEST SWAP1 POP PUSH2 0x743 DUP3 DUP3 PUSH2 0x6FC JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x763 JUMPI PUSH2 0x762 PUSH2 0x6CD JUMP JUMPDEST JUMPDEST PUSH2 0x76C DUP3 PUSH2 0x657 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x79B PUSH2 0x796 DUP5 PUSH2 0x748 JUMP JUMPDEST PUSH2 0x72D JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x7B7 JUMPI PUSH2 0x7B6 PUSH2 0x6C8 JUMP JUMPDEST JUMPDEST PUSH2 0x7C2 DUP5 DUP3 DUP6 PUSH2 0x779 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x7DF JUMPI PUSH2 0x7DE PUSH2 0x6C3 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7EF DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x788 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x80E JUMPI PUSH2 0x80D PUSH2 0x571 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x82C JUMPI PUSH2 0x82B PUSH2 0x576 JUMP JUMPDEST JUMPDEST PUSH2 0x838 DUP5 DUP3 DUP6 ADD PUSH2 0x7CA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x858 JUMPI PUSH2 0x857 PUSH2 0x571 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x866 DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x877 DUP6 DUP3 DUP7 ADD PUSH2 0x59C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x896 DUP2 PUSH2 0x881 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x8B1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x88D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 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 PUSH2 0x920 DUP3 PUSH2 0x57B JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x953 JUMPI PUSH2 0x952 PUSH2 0x8E6 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x9A5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x9B9 JUMPI PUSH2 0x9B8 PUSH2 0x95E JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x9F9 DUP3 PUSH2 0x57B JUMP JUMPDEST SWAP2 POP PUSH2 0xA04 DUP4 PUSH2 0x57B JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xA14 JUMPI PUSH2 0xA13 PUSH2 0x9BF JUMP JUMPDEST JUMPDEST DUP3 DUP3 MOD SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP8 0xA5 PUSH27 0xA4D88D89A1CCE30F8A5466EDE28B0E36A4A618C6A62A5A427A8F3A SDIV 0xAD PUSH5 0x736F6C6343 STOP ADDMOD MULMOD STOP CALLER ",
"sourceMap": "36:1311:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;123:320;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1044:101;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;879:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;72:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1165:175;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;459:223;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;742:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;123:320;178:4;202:10;215:1;202:14;;239:6;246:1;239:8;;235:153;253:11;:18;;;;249:1;:22;235:153;;;293:44;316:11;328:1;316:14;;;;;;;;:::i;:::-;;;;;;;;;;332:4;293:22;:44::i;:::-;290:88;;;356:7;;;;;:::i;:::-;;;;290:88;272:3;;;;;:::i;:::-;;;;235:153;;;;413:5;406:12;;;123:320;;;:::o;1044:101::-;1085:13;1125;1118:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1044:101;:::o;879:150::-;937:13;977:6;961:13;:22;;;;;;;;;;;;:::i;:::-;;1009:13;1002:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;879:150;;;:::o;72:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1165:175::-;1214:4;1238:26;1273:13;1238:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1313:13;:20;1306:27;;;1165:175;:::o;459:223::-;536:4;579:1;571:5;563;:13;;;;:::i;:::-;:17;560:107;;;602:4;595:11;;;;560:107;651:5;644:12;;459:223;;;;;:::o;742:87::-;782:13;813:9;806:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;742:87;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:99::-;1429:6;1463:5;1457:12;1447:22;;1377:99;;;:::o;1482:169::-;1566:11;1600:6;1595:3;1588:19;1640:4;1635:3;1631:14;1616:29;;1482:169;;;;:::o;1657:307::-;1725:1;1735:113;1749:6;1746:1;1743:13;1735:113;;;1834:1;1829:3;1825:11;1819:18;1815:1;1810:3;1806:11;1799:39;1771:2;1768:1;1764:10;1759:15;;1735:113;;;1866:6;1863:1;1860:13;1857:101;;;1946:1;1937:6;1932:3;1928:16;1921:27;1857:101;1706:258;1657:307;;;:::o;1970:102::-;2011:6;2062:2;2058:7;2053:2;2046:5;2042:14;2038:28;2028:38;;1970:102;;;:::o;2078:364::-;2166:3;2194:39;2227:5;2194:39;:::i;:::-;2249:71;2313:6;2308:3;2249:71;:::i;:::-;2242:78;;2329:52;2374:6;2369:3;2362:4;2355:5;2351:16;2329:52;:::i;:::-;2406:29;2428:6;2406:29;:::i;:::-;2401:3;2397:39;2390:46;;2170:272;2078:364;;;;:::o;2448:313::-;2561:4;2599:2;2588:9;2584:18;2576:26;;2648:9;2642:4;2638:20;2634:1;2623:9;2619:17;2612:47;2676:78;2749:4;2740:6;2676:78;:::i;:::-;2668:86;;2448:313;;;;:::o;2767:117::-;2876:1;2873;2866:12;2890:117;2999:1;2996;2989:12;3013:180;3061:77;3058:1;3051:88;3158:4;3155:1;3148:15;3182:4;3179:1;3172:15;3199:281;3282:27;3304:4;3282:27;:::i;:::-;3274:6;3270:40;3412:6;3400:10;3397:22;3376:18;3364:10;3361:34;3358:62;3355:88;;;3423:18;;:::i;:::-;3355:88;3463:10;3459:2;3452:22;3242:238;3199:281;;:::o;3486:129::-;3520:6;3547:20;;:::i;:::-;3537:30;;3576:33;3604:4;3596:6;3576:33;:::i;:::-;3486:129;;;:::o;3621:308::-;3683:4;3773:18;3765:6;3762:30;3759:56;;;3795:18;;:::i;:::-;3759:56;3833:29;3855:6;3833:29;:::i;:::-;3825:37;;3917:4;3911;3907:15;3899:23;;3621:308;;;:::o;3935:154::-;4019:6;4014:3;4009;3996:30;4081:1;4072:6;4067:3;4063:16;4056:27;3935:154;;;:::o;4095:412::-;4173:5;4198:66;4214:49;4256:6;4214:49;:::i;:::-;4198:66;:::i;:::-;4189:75;;4287:6;4280:5;4273:21;4325:4;4318:5;4314:16;4363:3;4354:6;4349:3;4345:16;4342:25;4339:112;;;4370:79;;:::i;:::-;4339:112;4460:41;4494:6;4489:3;4484;4460:41;:::i;:::-;4179:328;4095:412;;;;;:::o;4527:340::-;4583:5;4632:3;4625:4;4617:6;4613:17;4609:27;4599:122;;4640:79;;:::i;:::-;4599:122;4757:6;4744:20;4782:79;4857:3;4849:6;4842:4;4834:6;4830:17;4782:79;:::i;:::-;4773:88;;4589:278;4527:340;;;;:::o;4873:509::-;4942:6;4991:2;4979:9;4970:7;4966:23;4962:32;4959:119;;;4997:79;;:::i;:::-;4959:119;5145:1;5134:9;5130:17;5117:31;5175:18;5167:6;5164:30;5161:117;;;5197:79;;:::i;:::-;5161:117;5302:63;5357:7;5348:6;5337:9;5333:22;5302:63;:::i;:::-;5292:73;;5088:287;4873:509;;;;:::o;5388:474::-;5456:6;5464;5513:2;5501:9;5492:7;5488:23;5484:32;5481:119;;;5519:79;;:::i;:::-;5481:119;5639:1;5664:53;5709:7;5700:6;5689:9;5685:22;5664:53;:::i;:::-;5654:63;;5610:117;5766:2;5792:53;5837:7;5828:6;5817:9;5813:22;5792:53;:::i;:::-;5782:63;;5737:118;5388:474;;;;;:::o;5868:90::-;5902:7;5945:5;5938:13;5931:21;5920:32;;5868:90;;;:::o;5964:109::-;6045:21;6060:5;6045:21;:::i;:::-;6040:3;6033:34;5964:109;;:::o;6079:210::-;6166:4;6204:2;6193:9;6189:18;6181:26;;6217:65;6279:1;6268:9;6264:17;6255:6;6217:65;:::i;:::-;6079:210;;;;:::o;6295:180::-;6343:77;6340:1;6333:88;6440:4;6437:1;6430:15;6464:4;6461:1;6454:15;6481:180;6529:77;6526:1;6519:88;6626:4;6623:1;6616:15;6650:4;6647:1;6640:15;6667:233;6706:3;6729:24;6747:5;6729:24;:::i;:::-;6720:33;;6775:66;6768:5;6765:77;6762:103;;;6845:18;;:::i;:::-;6762:103;6892:1;6885:5;6881:13;6874:20;;6667:233;;;:::o;6906:180::-;6954:77;6951:1;6944:88;7051:4;7048:1;7041:15;7075:4;7072:1;7065:15;7092:320;7136:6;7173:1;7167:4;7163:12;7153:22;;7220:1;7214:4;7210:12;7241:18;7231:81;;7297:4;7289:6;7285:17;7275:27;;7231:81;7359:2;7351:6;7348:14;7328:18;7325:38;7322:84;;;7378:18;;:::i;:::-;7322:84;7143:269;7092:320;;;:::o;7418:180::-;7466:77;7463:1;7456:88;7563:4;7560:1;7553:15;7587:4;7584:1;7577:15;7604:176;7636:1;7653:20;7671:1;7653:20;:::i;:::-;7648:25;;7687:20;7705:1;7687:20;:::i;:::-;7682:25;;7726:1;7716:35;;7731:18;;:::i;:::-;7716:35;7772:1;7769;7765:9;7760:14;;7604:176;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "529000",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"changeColor(string)": "infinite",
"changeColorLength()": "infinite",
"checkMultiples(uint256)": "infinite",
"checkMultiplesValidity(uint256,uint256)": "infinite",
"numbersList(uint256)": "infinite",
"sayHello()": "infinite",
"viewColor()": "infinite"
}
},
"methodIdentifiers": {
"changeColor(string)": "6aa2afd5",
"changeColorLength()": "dea0a471",
"checkMultiples(uint256)": "46c0d4d2",
"checkMultiplesValidity(uint256,uint256)": "e2015dda",
"numbersList(uint256)": "82343a1e",
"sayHello()": "ef5fb05b",
"viewColor()": "4fff3470"
}
},
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_color",
"type": "string"
}
],
"name": "changeColor",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "changeColorLength",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_num",
"type": "uint256"
}
],
"name": "checkMultiples",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_num1",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_num2",
"type": "uint256"
}
],
"name": "checkMultiplesValidity",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "numbersList",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "sayHello",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "viewColor",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.9+commit.e5eed63a"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_color",
"type": "string"
}
],
"name": "changeColor",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "changeColorLength",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_num",
"type": "uint256"
}
],
"name": "checkMultiples",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_num1",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_num2",
"type": "uint256"
}
],
"name": "checkMultiplesValidity",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "numbersList",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "sayHello",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "viewColor",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/loop.sol": "loopContract"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/loop.sol": {
"keccak256": "0x2fbdef3a566b15f7066cbdb83877e58eaccaa72a89d7067642f206d66c7ff0a2",
"urls": [
"bzz-raw://e66f834546ddbd7fe1580b3047eda59254ea9917be619a8903ab18c6e9a5735d",
"dweb:/ipfs/QmUsKpFbovz3rm5LJ4mLSAqP3A6dYtD54Jx6sDinPQAFU4"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_21": {
"entryPoint": null,
"id": 21,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr_fromMemory": {
"entryPoint": 513,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr_fromMemory": {
"entryPoint": 579,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 658,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptrt_uint256_fromMemory": {
"entryPoint": 679,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"allocate_memory": {
"entryPoint": 386,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 243,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 413,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 625,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 462,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 818,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 337,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 771,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 290,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 263,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 268,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 258,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 253,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 273,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_uint256": {
"entryPoint": 635,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4280:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "423:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "440:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "443:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "433:6:1"
},
"nodeType": "YulFunctionCall",
"src": "433:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "433:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "334:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "546:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "563:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "566:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "556:6:1"
},
"nodeType": "YulFunctionCall",
"src": "556:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "556:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "457:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "628:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "638:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "656:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "663:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "652:3:1"
},
"nodeType": "YulFunctionCall",
"src": "652:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "672:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "668:3:1"
},
"nodeType": "YulFunctionCall",
"src": "668:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "648:3:1"
},
"nodeType": "YulFunctionCall",
"src": "648:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "638:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "611:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "621:6:1",
"type": ""
}
],
"src": "580:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "716:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "733:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "736:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "726:6:1"
},
"nodeType": "YulFunctionCall",
"src": "726:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "726:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "830:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "833:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "823:6:1"
},
"nodeType": "YulFunctionCall",
"src": "823:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "823:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "854:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "857:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "847:6:1"
},
"nodeType": "YulFunctionCall",
"src": "847:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "847:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "688:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "917:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "927:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "949:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "979:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "957:21:1"
},
"nodeType": "YulFunctionCall",
"src": "957:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "945:3:1"
},
"nodeType": "YulFunctionCall",
"src": "945:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "931:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1096:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1098:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1098:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1098:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1039:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1051:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1036:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1036:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1075:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1087:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1072:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1072:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1033:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1033:62:1"
},
"nodeType": "YulIf",
"src": "1030:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1134:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1138:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1127:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1127:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "1127:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "903:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "911:4:1",
"type": ""
}
],
"src": "874:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1202:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1212:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1222:18:1"
},
"nodeType": "YulFunctionCall",
"src": "1222:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1212:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1271:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1279:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1251:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1251:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1251:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1186:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1195:6:1",
"type": ""
}
],
"src": "1161:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1363:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1468:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1470:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1470:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1470:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1440:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1448:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1437:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1437:30:1"
},
"nodeType": "YulIf",
"src": "1434:56:1"
},
{
"nodeType": "YulAssignment",
"src": "1500:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1530:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1508:21:1"
},
"nodeType": "YulFunctionCall",
"src": "1508:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1500:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1574:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1586:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1592:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1582:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1582:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1574:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1347:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1358:4:1",
"type": ""
}
],
"src": "1296:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1659:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1669:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1678:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1673:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1738:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1763:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1768:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1759:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1759:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1782:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1787:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1778:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1778:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1772:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1772:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1752:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1752:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "1752:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1699:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1702:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1696:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1696:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1710:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1712:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1721:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1724:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1717:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1717:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1712:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1692:3:1",
"statements": []
},
"src": "1688:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1835:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1885:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1890:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1881:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1881:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1899:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1874:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1874:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "1874:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1816:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1819:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1813:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1813:13:1"
},
"nodeType": "YulIf",
"src": "1810:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1641:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1646:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1651:6:1",
"type": ""
}
],
"src": "1610:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2018:326:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2028:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2095:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2053:41:1"
},
"nodeType": "YulFunctionCall",
"src": "2053:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2037:15:1"
},
"nodeType": "YulFunctionCall",
"src": "2037:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2028:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2119:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2126:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2112:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2112:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "2112:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2142:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2157:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2164:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2153:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2153:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2146:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2207:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "2209:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2209:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2209:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2188:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2193:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2184:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2184:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2202:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2181:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2181:25:1"
},
"nodeType": "YulIf",
"src": "2178:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2321:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2326:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2331:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2299:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2299:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "2299:39:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1991:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1996:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2004:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2012:5:1",
"type": ""
}
],
"src": "1923:421:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2437:282:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2486:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "2488:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2488:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2488:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2465:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2473:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2461:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2461:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2480:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2457:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2457:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2450:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2450:35:1"
},
"nodeType": "YulIf",
"src": "2447:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2578:27:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2598:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2592:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2592:13:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2582:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2614:99:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2686:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2694:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2682:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2682:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2701:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2709:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "2623:58:1"
},
"nodeType": "YulFunctionCall",
"src": "2623:90:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2614:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2415:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2423:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2431:5:1",
"type": ""
}
],
"src": "2364:355:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2770:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2780:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2791:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2780:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2752:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2762:7:1",
"type": ""
}
],
"src": "2725:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2851:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2908:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2917:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2920:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2910:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2910:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2910:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2874:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2899:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2881:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2881:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2871:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2871:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2864:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2864:43:1"
},
"nodeType": "YulIf",
"src": "2861:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2844:5:1",
"type": ""
}
],
"src": "2808:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2999:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3009:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3024:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3018:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3018:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3009:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3067:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "3040:26:1"
},
"nodeType": "YulFunctionCall",
"src": "3040:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "3040:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2977:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2985:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2993:5:1",
"type": ""
}
],
"src": "2936:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3189:576:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3235:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3237:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3237:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3237:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3210:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3219:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3206:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3206:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3231:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3202:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3202:32:1"
},
"nodeType": "YulIf",
"src": "3199:119:1"
},
{
"nodeType": "YulBlock",
"src": "3328:291:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3343:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3367:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3378:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3363:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3363:17:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3357:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3357:24:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3347:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3428:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3430:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3430:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3430:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3400:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3408:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3397:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3397:30:1"
},
"nodeType": "YulIf",
"src": "3394:117:1"
},
{
"nodeType": "YulAssignment",
"src": "3525:84:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3581:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3592:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3577:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3577:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3601:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3535:41:1"
},
"nodeType": "YulFunctionCall",
"src": "3535:74:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3525:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3629:129:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3644:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3658:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3648:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3674:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3720:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3731:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3716:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3716:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3740:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "3684:31:1"
},
"nodeType": "YulFunctionCall",
"src": "3684:64:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3674:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptrt_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3151:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3162:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3174:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3182:6:1",
"type": ""
}
],
"src": "3085:680:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3799:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3816:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3819:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3809:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3809:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3809:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3913:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3916:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3906:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3906:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3906:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3937:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3940:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3930:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3930:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3930:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "3771:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4008:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4018:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4032:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4038:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "4028:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4028:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4018:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4049:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4079:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4085:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4075:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4075:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "4053:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4126:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4140:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4154:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4162:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4150:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4150:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4140:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4106:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4099:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4099:26:1"
},
"nodeType": "YulIf",
"src": "4096:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4229:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "4243:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4243:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4243:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4193:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4216:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4224:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4213:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4213:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4190:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4190:38:1"
},
"nodeType": "YulIf",
"src": "4187:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "3992:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4001:6:1",
"type": ""
}
],
"src": "3957:320:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506040516103b13803806103b1833981810160405281019061003291906102a7565b8160009080519060200190610048929190610050565b505050610364565b82805461005c90610332565b90600052602060002090601f01602090048101928261007e57600085556100c5565b82601f1061009757805160ff19168380011785556100c5565b828001600101855582156100c5579182015b828111156100c45782518255916020019190600101906100a9565b5b5090506100d291906100d6565b5090565b5b808211156100ef5760008160009055506001016100d7565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61015a82610111565b810181811067ffffffffffffffff8211171561017957610178610122565b5b80604052505050565b600061018c6100f3565b90506101988282610151565b919050565b600067ffffffffffffffff8211156101b8576101b7610122565b5b6101c182610111565b9050602081019050919050565b60005b838110156101ec5780820151818401526020810190506101d1565b838111156101fb576000848401525b50505050565b600061021461020f8461019d565b610182565b9050828152602081018484840111156102305761022f61010c565b5b61023b8482856101ce565b509392505050565b600082601f83011261025857610257610107565b5b8151610268848260208601610201565b91505092915050565b6000819050919050565b61028481610271565b811461028f57600080fd5b50565b6000815190506102a18161027b565b92915050565b600080604083850312156102be576102bd6100fd565b5b600083015167ffffffffffffffff8111156102dc576102db610102565b5b6102e885828601610243565b92505060206102f985828601610292565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061034a57607f821691505b6020821081141561035e5761035d610303565b5b50919050565b603f806103726000396000f3fe6080604052600080fdfea26469706673582212204fd4644a93efda1e5321795a8075ba08452f9da3f4d4a47b52ab2c8afdbffa4864736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x3B1 CODESIZE SUB DUP1 PUSH2 0x3B1 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x2A7 JUMP JUMPDEST DUP2 PUSH1 0x0 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x48 SWAP3 SWAP2 SWAP1 PUSH2 0x50 JUMP JUMPDEST POP POP POP PUSH2 0x364 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x5C SWAP1 PUSH2 0x332 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x7E JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0xC5 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x97 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xC5 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xC5 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xC4 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xA9 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0xD2 SWAP2 SWAP1 PUSH2 0xD6 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0xD7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x15A DUP3 PUSH2 0x111 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x179 JUMPI PUSH2 0x178 PUSH2 0x122 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18C PUSH2 0xF3 JUMP JUMPDEST SWAP1 POP PUSH2 0x198 DUP3 DUP3 PUSH2 0x151 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1B8 JUMPI PUSH2 0x1B7 PUSH2 0x122 JUMP JUMPDEST JUMPDEST PUSH2 0x1C1 DUP3 PUSH2 0x111 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1EC JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1D1 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1FB JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x214 PUSH2 0x20F DUP5 PUSH2 0x19D JUMP JUMPDEST PUSH2 0x182 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x230 JUMPI PUSH2 0x22F PUSH2 0x10C JUMP JUMPDEST JUMPDEST PUSH2 0x23B DUP5 DUP3 DUP6 PUSH2 0x1CE JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x258 JUMPI PUSH2 0x257 PUSH2 0x107 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x268 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x201 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x284 DUP2 PUSH2 0x271 JUMP JUMPDEST DUP2 EQ PUSH2 0x28F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2A1 DUP2 PUSH2 0x27B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BE JUMPI PUSH2 0x2BD PUSH2 0xFD JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DC JUMPI PUSH2 0x2DB PUSH2 0x102 JUMP JUMPDEST JUMPDEST PUSH2 0x2E8 DUP6 DUP3 DUP7 ADD PUSH2 0x243 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2F9 DUP6 DUP3 DUP7 ADD PUSH2 0x292 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x34A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x35E JUMPI PUSH2 0x35D PUSH2 0x303 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x3F DUP1 PUSH2 0x372 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F 0xD4 PUSH5 0x4A93EFDA1E MSTORE8 0x21 PUSH26 0x5A8075BA08452F9DA3F4D4A47B52AB2C8AFDBFFA4864736F6C63 NUMBER STOP ADDMOD MULMOD STOP CALLER ",
"sourceMap": "35:171:0:-:0;;;92:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;163:5;152:4;:16;;;;;;;;;;;;:::i;:::-;;92:107;;35:171;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:307::-;1678:1;1688:113;1702:6;1699:1;1696:13;1688:113;;;1787:1;1782:3;1778:11;1772:18;1768:1;1763:3;1759:11;1752:39;1724:2;1721:1;1717:10;1712:15;;1688:113;;;1819:6;1816:1;1813:13;1810:101;;;1899:1;1890:6;1885:3;1881:16;1874:27;1810:101;1659:258;1610:307;;;:::o;1923:421::-;2012:5;2037:66;2053:49;2095:6;2053:49;:::i;:::-;2037:66;:::i;:::-;2028:75;;2126:6;2119:5;2112:21;2164:4;2157:5;2153:16;2202:3;2193:6;2188:3;2184:16;2181:25;2178:112;;;2209:79;;:::i;:::-;2178:112;2299:39;2331:6;2326:3;2321;2299:39;:::i;:::-;2018:326;1923:421;;;;;:::o;2364:355::-;2431:5;2480:3;2473:4;2465:6;2461:17;2457:27;2447:122;;2488:79;;:::i;:::-;2447:122;2598:6;2592:13;2623:90;2709:3;2701:6;2694:4;2686:6;2682:17;2623:90;:::i;:::-;2614:99;;2437:282;2364:355;;;;:::o;2725:77::-;2762:7;2791:5;2780:16;;2725:77;;;:::o;2808:122::-;2881:24;2899:5;2881:24;:::i;:::-;2874:5;2871:35;2861:63;;2920:1;2917;2910:12;2861:63;2808:122;:::o;2936:143::-;2993:5;3024:6;3018:13;3009:22;;3040:33;3067:5;3040:33;:::i;:::-;2936:143;;;;:::o;3085:680::-;3174:6;3182;3231:2;3219:9;3210:7;3206:23;3202:32;3199:119;;;3237:79;;:::i;:::-;3199:119;3378:1;3367:9;3363:17;3357:24;3408:18;3400:6;3397:30;3394:117;;;3430:79;;:::i;:::-;3394:117;3535:74;3601:7;3592:6;3581:9;3577:22;3535:74;:::i;:::-;3525:84;;3328:291;3658:2;3684:64;3740:7;3731:6;3720:9;3716:22;3684:64;:::i;:::-;3674:74;;3629:129;3085:680;;;;;:::o;3771:180::-;3819:77;3816:1;3809:88;3916:4;3913:1;3906:15;3940:4;3937:1;3930:15;3957:320;4001:6;4038:1;4032:4;4028:12;4018:22;;4085:1;4079:4;4075:12;4106:18;4096:81;;4162:4;4154:6;4150:17;4140:27;;4096:81;4224:2;4216:6;4213:14;4193:18;4190:38;4187:84;;;4243:18;;:::i;:::-;4187:84;4008:269;3957:320;;;:::o;35:171:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600080fdfea26469706673582212204fd4644a93efda1e5321795a8075ba08452f9da3f4d4a47b52ab2c8afdbffa4864736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F 0xD4 PUSH5 0x4A93EFDA1E MSTORE8 0x21 PUSH26 0x5A8075BA08452F9DA3F4D4A47B52AB2C8AFDBFFA4864736F6C63 NUMBER STOP ADDMOD MULMOD STOP CALLER ",
"sourceMap": "35:171:0:-:0;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "12600",
"executionCost": "infinite",
"totalCost": "infinite"
}
},
"methodIdentifiers": {}
},
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "uint256",
"name": "age",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
}
]
}
{
"compiler": {
"version": "0.8.9+commit.e5eed63a"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "uint256",
"name": "age",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/section-6-constructors.sol": "Member"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/section-6-constructors.sol": {
"keccak256": "0xa028cdc83555398f78a5ed1443b73d9c02d85de9f4cb736ed4084811bf48e871",
"urls": [
"bzz-raw://48b02e1adecc8e09eee8da9deff8aff84aa3e0462968cfe34a1f8904b5c8f359",
"dweb:/ipfs/QmUodPkm2SPVJrbkifJG1gRuTCXPwkz1EZHudgoiPN8xKh"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_21": {
"entryPoint": null,
"id": 21,
"parameterSlots": 2,
"returnSlots": 0
},
"@_36": {
"entryPoint": null,
"id": 36,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr_fromMemory": {
"entryPoint": 517,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr_fromMemory": {
"entryPoint": 583,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 662,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptrt_uint256_fromMemory": {
"entryPoint": 683,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"allocate_memory": {
"entryPoint": 390,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 247,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 417,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 629,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 466,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 822,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 341,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 775,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 294,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 267,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 272,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 262,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 257,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 277,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_uint256": {
"entryPoint": 639,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4280:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "423:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "440:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "443:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "433:6:1"
},
"nodeType": "YulFunctionCall",
"src": "433:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "433:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "334:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "546:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "563:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "566:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "556:6:1"
},
"nodeType": "YulFunctionCall",
"src": "556:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "556:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "457:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "628:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "638:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "656:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "663:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "652:3:1"
},
"nodeType": "YulFunctionCall",
"src": "652:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "672:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "668:3:1"
},
"nodeType": "YulFunctionCall",
"src": "668:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "648:3:1"
},
"nodeType": "YulFunctionCall",
"src": "648:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "638:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "611:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "621:6:1",
"type": ""
}
],
"src": "580:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "716:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "733:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "736:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "726:6:1"
},
"nodeType": "YulFunctionCall",
"src": "726:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "726:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "830:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "833:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "823:6:1"
},
"nodeType": "YulFunctionCall",
"src": "823:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "823:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "854:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "857:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "847:6:1"
},
"nodeType": "YulFunctionCall",
"src": "847:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "847:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "688:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "917:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "927:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "949:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "979:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "957:21:1"
},
"nodeType": "YulFunctionCall",
"src": "957:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "945:3:1"
},
"nodeType": "YulFunctionCall",
"src": "945:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "931:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1096:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1098:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1098:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1098:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1039:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1051:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1036:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1036:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1075:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1087:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1072:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1072:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1033:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1033:62:1"
},
"nodeType": "YulIf",
"src": "1030:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1134:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1138:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1127:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1127:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "1127:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "903:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "911:4:1",
"type": ""
}
],
"src": "874:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1202:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1212:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1222:18:1"
},
"nodeType": "YulFunctionCall",
"src": "1222:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1212:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1271:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1279:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1251:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1251:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1251:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1186:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1195:6:1",
"type": ""
}
],
"src": "1161:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1363:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1468:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1470:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1470:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1470:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1440:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1448:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1437:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1437:30:1"
},
"nodeType": "YulIf",
"src": "1434:56:1"
},
{
"nodeType": "YulAssignment",
"src": "1500:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1530:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1508:21:1"
},
"nodeType": "YulFunctionCall",
"src": "1508:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1500:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1574:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1586:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1592:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1582:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1582:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1574:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1347:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1358:4:1",
"type": ""
}
],
"src": "1296:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1659:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1669:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1678:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1673:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1738:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1763:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1768:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1759:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1759:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1782:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1787:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1778:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1778:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1772:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1772:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1752:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1752:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "1752:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1699:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1702:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1696:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1696:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1710:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1712:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1721:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1724:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1717:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1717:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1712:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1692:3:1",
"statements": []
},
"src": "1688:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1835:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1885:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1890:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1881:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1881:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1899:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1874:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1874:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "1874:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1816:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1819:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1813:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1813:13:1"
},
"nodeType": "YulIf",
"src": "1810:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1641:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1646:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1651:6:1",
"type": ""
}
],
"src": "1610:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2018:326:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2028:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2095:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2053:41:1"
},
"nodeType": "YulFunctionCall",
"src": "2053:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2037:15:1"
},
"nodeType": "YulFunctionCall",
"src": "2037:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2028:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2119:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2126:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2112:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2112:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "2112:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2142:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2157:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2164:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2153:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2153:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2146:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2207:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "2209:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2209:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2209:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2188:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2193:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2184:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2184:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2202:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2181:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2181:25:1"
},
"nodeType": "YulIf",
"src": "2178:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2321:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2326:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2331:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2299:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2299:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "2299:39:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1991:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1996:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2004:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2012:5:1",
"type": ""
}
],
"src": "1923:421:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2437:282:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2486:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "2488:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2488:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2488:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2465:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2473:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2461:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2461:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2480:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2457:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2457:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2450:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2450:35:1"
},
"nodeType": "YulIf",
"src": "2447:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2578:27:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2598:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2592:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2592:13:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2582:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2614:99:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2686:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2694:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2682:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2682:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2701:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2709:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "2623:58:1"
},
"nodeType": "YulFunctionCall",
"src": "2623:90:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2614:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2415:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2423:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2431:5:1",
"type": ""
}
],
"src": "2364:355:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2770:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2780:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2791:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2780:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2752:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2762:7:1",
"type": ""
}
],
"src": "2725:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2851:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2908:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2917:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2920:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2910:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2910:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2910:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2874:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2899:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2881:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2881:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2871:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2871:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2864:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2864:43:1"
},
"nodeType": "YulIf",
"src": "2861:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2844:5:1",
"type": ""
}
],
"src": "2808:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2999:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3009:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3024:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3018:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3018:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3009:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3067:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "3040:26:1"
},
"nodeType": "YulFunctionCall",
"src": "3040:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "3040:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2977:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2985:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2993:5:1",
"type": ""
}
],
"src": "2936:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3189:576:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3235:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3237:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3237:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3237:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3210:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3219:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3206:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3206:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3231:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3202:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3202:32:1"
},
"nodeType": "YulIf",
"src": "3199:119:1"
},
{
"nodeType": "YulBlock",
"src": "3328:291:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3343:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3367:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3378:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3363:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3363:17:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3357:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3357:24:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3347:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3428:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3430:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3430:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3430:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3400:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3408:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3397:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3397:30:1"
},
"nodeType": "YulIf",
"src": "3394:117:1"
},
{
"nodeType": "YulAssignment",
"src": "3525:84:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3581:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3592:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3577:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3577:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3601:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3535:41:1"
},
"nodeType": "YulFunctionCall",
"src": "3535:74:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3525:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3629:129:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3644:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3658:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3648:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3674:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3720:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3731:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3716:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3716:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3740:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "3684:31:1"
},
"nodeType": "YulFunctionCall",
"src": "3684:64:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3674:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptrt_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3151:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3162:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3174:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3182:6:1",
"type": ""
}
],
"src": "3085:680:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3799:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3816:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3819:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3809:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3809:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3809:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3913:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3916:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3906:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3906:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3906:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3937:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3940:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3930:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3930:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3930:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "3771:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4008:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4018:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4032:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4038:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "4028:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4028:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4018:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4049:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4079:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4085:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4075:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4075:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "4053:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4126:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4140:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4154:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4162:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4150:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4150:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4140:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4106:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4099:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4099:26:1"
},
"nodeType": "YulIf",
"src": "4096:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4229:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "4243:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4243:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4243:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4193:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4216:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4224:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4213:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4213:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4190:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4190:38:1"
},
"nodeType": "YulIf",
"src": "4187:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "3992:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4001:6:1",
"type": ""
}
],
"src": "3957:320:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506040516105a93803806105a9833981810160405281019061003291906102ab565b8181816000908051906020019061004a929190610054565b5050505050610368565b82805461006090610336565b90600052602060002090601f01602090048101928261008257600085556100c9565b82601f1061009b57805160ff19168380011785556100c9565b828001600101855582156100c9579182015b828111156100c85782518255916020019190600101906100ad565b5b5090506100d691906100da565b5090565b5b808211156100f35760008160009055506001016100db565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61015e82610115565b810181811067ffffffffffffffff8211171561017d5761017c610126565b5b80604052505050565b60006101906100f7565b905061019c8282610155565b919050565b600067ffffffffffffffff8211156101bc576101bb610126565b5b6101c582610115565b9050602081019050919050565b60005b838110156101f05780820151818401526020810190506101d5565b838111156101ff576000848401525b50505050565b6000610218610213846101a1565b610186565b90508281526020810184848401111561023457610233610110565b5b61023f8482856101d2565b509392505050565b600082601f83011261025c5761025b61010b565b5b815161026c848260208601610205565b91505092915050565b6000819050919050565b61028881610275565b811461029357600080fd5b50565b6000815190506102a58161027f565b92915050565b600080604083850312156102c2576102c1610101565b5b600083015167ffffffffffffffff8111156102e0576102df610106565b5b6102ec85828601610247565b92505060206102fd85828601610296565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061034e57607f821691505b6020821081141561036257610361610307565b5b50919050565b610232806103776000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806317d7de7c14610030575b600080fd5b61003861004e565b6040516100459190610179565b60405180910390f35b60606000805461005d906101ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610089906101ca565b80156100d65780601f106100ab576101008083540402835291602001916100d6565b820191906000526020600020905b8154815290600101906020018083116100b957829003601f168201915b5050505050905090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561011a5780820151818401526020810190506100ff565b83811115610129576000848401525b50505050565b6000601f19601f8301169050919050565b600061014b826100e0565b61015581856100eb565b93506101658185602086016100fc565b61016e8161012f565b840191505092915050565b600060208201905081810360008301526101938184610140565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806101e257607f821691505b602082108114156101f6576101f561019b565b5b5091905056fea26469706673582212204416f2ca80dcb6a3eb0fa73fcb4b9b4e1fd08d2e33a2c13ec296e2734a47fdb964736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x5A9 CODESIZE SUB DUP1 PUSH2 0x5A9 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x2AB JUMP JUMPDEST DUP2 DUP2 DUP2 PUSH1 0x0 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x4A SWAP3 SWAP2 SWAP1 PUSH2 0x54 JUMP JUMPDEST POP POP POP POP POP PUSH2 0x368 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x60 SWAP1 PUSH2 0x336 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x82 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0xC9 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x9B JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xC9 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xC9 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xC8 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xAD JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xDA JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xF3 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0xDB JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x15E DUP3 PUSH2 0x115 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x17D JUMPI PUSH2 0x17C PUSH2 0x126 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x190 PUSH2 0xF7 JUMP JUMPDEST SWAP1 POP PUSH2 0x19C DUP3 DUP3 PUSH2 0x155 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1BC JUMPI PUSH2 0x1BB PUSH2 0x126 JUMP JUMPDEST JUMPDEST PUSH2 0x1C5 DUP3 PUSH2 0x115 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1F0 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1D5 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1FF JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x218 PUSH2 0x213 DUP5 PUSH2 0x1A1 JUMP JUMPDEST PUSH2 0x186 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x234 JUMPI PUSH2 0x233 PUSH2 0x110 JUMP JUMPDEST JUMPDEST PUSH2 0x23F DUP5 DUP3 DUP6 PUSH2 0x1D2 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x25C JUMPI PUSH2 0x25B PUSH2 0x10B JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x26C DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x205 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x288 DUP2 PUSH2 0x275 JUMP JUMPDEST DUP2 EQ PUSH2 0x293 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2A5 DUP2 PUSH2 0x27F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C2 JUMPI PUSH2 0x2C1 PUSH2 0x101 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2E0 JUMPI PUSH2 0x2DF PUSH2 0x106 JUMP JUMPDEST JUMPDEST PUSH2 0x2EC DUP6 DUP3 DUP7 ADD PUSH2 0x247 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2FD DUP6 DUP3 DUP7 ADD PUSH2 0x296 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x34E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x362 JUMPI PUSH2 0x361 PUSH2 0x307 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x232 DUP1 PUSH2 0x377 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 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x179 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x5D SWAP1 PUSH2 0x1CA JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x89 SWAP1 PUSH2 0x1CA JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xFF JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x129 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14B DUP3 PUSH2 0xE0 JUMP JUMPDEST PUSH2 0x155 DUP2 DUP6 PUSH2 0xEB JUMP JUMPDEST SWAP4 POP PUSH2 0x165 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFC JUMP JUMPDEST PUSH2 0x16E DUP2 PUSH2 0x12F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x193 DUP2 DUP5 PUSH2 0x140 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1E2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1F6 JUMPI PUSH2 0x1F5 PUSH2 0x19B JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DIFFICULTY AND CALLCODE 0xCA DUP1 0xDC 0xB6 LOG3 0xEB 0xF 0xA7 EXTCODEHASH 0xCB 0x4B SWAP12 0x4E 0x1F 0xD0 DUP14 0x2E CALLER LOG2 0xC1 RETURNDATACOPY 0xC2 SWAP7 0xE2 PUSH20 0x4A47FDB964736F6C634300080900330000000000 ",
"sourceMap": "208:227:0:-:0;;;245:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;296:5;302:4;163:5;152:4;:16;;;;;;;;;;;;:::i;:::-;;92:107;;245:85;;208:227;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:307::-;1678:1;1688:113;1702:6;1699:1;1696:13;1688:113;;;1787:1;1782:3;1778:11;1772:18;1768:1;1763:3;1759:11;1752:39;1724:2;1721:1;1717:10;1712:15;;1688:113;;;1819:6;1816:1;1813:13;1810:101;;;1899:1;1890:6;1885:3;1881:16;1874:27;1810:101;1659:258;1610:307;;;:::o;1923:421::-;2012:5;2037:66;2053:49;2095:6;2053:49;:::i;:::-;2037:66;:::i;:::-;2028:75;;2126:6;2119:5;2112:21;2164:4;2157:5;2153:16;2202:3;2193:6;2188:3;2184:16;2181:25;2178:112;;;2209:79;;:::i;:::-;2178:112;2299:39;2331:6;2326:3;2321;2299:39;:::i;:::-;2018:326;1923:421;;;;;:::o;2364:355::-;2431:5;2480:3;2473:4;2465:6;2461:17;2457:27;2447:122;;2488:79;;:::i;:::-;2447:122;2598:6;2592:13;2623:90;2709:3;2701:6;2694:4;2686:6;2682:17;2623:90;:::i;:::-;2614:99;;2437:282;2364:355;;;;:::o;2725:77::-;2762:7;2791:5;2780:16;;2725:77;;;:::o;2808:122::-;2881:24;2899:5;2881:24;:::i;:::-;2874:5;2871:35;2861:63;;2920:1;2917;2910:12;2861:63;2808:122;:::o;2936:143::-;2993:5;3024:6;3018:13;3009:22;;3040:33;3067:5;3040:33;:::i;:::-;2936:143;;;;:::o;3085:680::-;3174:6;3182;3231:2;3219:9;3210:7;3206:23;3202:32;3199:119;;;3237:79;;:::i;:::-;3199:119;3378:1;3367:9;3363:17;3357:24;3408:18;3400:6;3397:30;3394:117;;;3430:79;;:::i;:::-;3394:117;3535:74;3601:7;3592:6;3581:9;3577:22;3535:74;:::i;:::-;3525:84;;3328:291;3658:2;3684:64;3740:7;3731:6;3720:9;3716:22;3684:64;:::i;:::-;3674:74;;3629:129;3085:680;;;;;:::o;3771:180::-;3819:77;3816:1;3809:88;3916:4;3913:1;3906:15;3940:4;3937:1;3930:15;3957:320;4001:6;4038:1;4032:4;4028:12;4018:22;;4085:1;4079:4;4075:12;4106:18;4096:81;;4162:4;4154:6;4150:17;4140:27;;4096:81;4224:2;4216:6;4213:14;4193:18;4190:38;4187:84;;;4243:18;;:::i;:::-;4187:84;4008:269;3957:320;;;:::o;208:227:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@getName_44": {
"entryPoint": 78,
"id": 44,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 320,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 377,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 224,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 235,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 252,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 458,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 411,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 303,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1906:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "66:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "77:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "93:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "87:5:1"
},
"nodeType": "YulFunctionCall",
"src": "87:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "77:6:1"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "49:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "59:6:1",
"type": ""
}
],
"src": "7:99:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "208:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "225:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "230:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "218:6:1"
},
"nodeType": "YulFunctionCall",
"src": "218:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "218:19:1"
},
{
"nodeType": "YulAssignment",
"src": "246:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "265:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "270:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "261:3:1"
},
"nodeType": "YulFunctionCall",
"src": "261:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "246:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "180:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "185:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "196:11:1",
"type": ""
}
],
"src": "112:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "336:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "346:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "355:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "350:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "415:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "440:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "445:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "436:3:1"
},
"nodeType": "YulFunctionCall",
"src": "436:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "459:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "464:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "455:3:1"
},
"nodeType": "YulFunctionCall",
"src": "455:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "449:5:1"
},
"nodeType": "YulFunctionCall",
"src": "449:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "429:6:1"
},
"nodeType": "YulFunctionCall",
"src": "429:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "429:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "376:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "379:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "373:2:1"
},
"nodeType": "YulFunctionCall",
"src": "373:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "387:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "398:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "401:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "394:3:1"
},
"nodeType": "YulFunctionCall",
"src": "394:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "389:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "369:3:1",
"statements": []
},
"src": "365:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "512:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "562:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "567:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "558:3:1"
},
"nodeType": "YulFunctionCall",
"src": "558:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "576:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "551:6:1"
},
"nodeType": "YulFunctionCall",
"src": "551:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "551:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "493:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "496:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "490:2:1"
},
"nodeType": "YulFunctionCall",
"src": "490:13:1"
},
"nodeType": "YulIf",
"src": "487:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "318:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "323:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "328:6:1",
"type": ""
}
],
"src": "287:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "648:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "658:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "676:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "683:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "672:3:1"
},
"nodeType": "YulFunctionCall",
"src": "672:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "692:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "688:3:1"
},
"nodeType": "YulFunctionCall",
"src": "688:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "668:3:1"
},
"nodeType": "YulFunctionCall",
"src": "668:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "658:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "631:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "641:6:1",
"type": ""
}
],
"src": "600:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "800:272:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "810:53:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "857:5:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "824:32:1"
},
"nodeType": "YulFunctionCall",
"src": "824:39:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "814:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "872:78:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "938:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "943:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "879:58:1"
},
"nodeType": "YulFunctionCall",
"src": "879:71:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "872:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "985:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "992:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "981:3:1"
},
"nodeType": "YulFunctionCall",
"src": "981:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "999:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1004:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "959:21:1"
},
"nodeType": "YulFunctionCall",
"src": "959:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "959:52:1"
},
{
"nodeType": "YulAssignment",
"src": "1020:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1031:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1058:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1036:21:1"
},
"nodeType": "YulFunctionCall",
"src": "1036:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1027:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1027:39:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1020:3:1"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "781:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "788:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "796:3:1",
"type": ""
}
],
"src": "708:364:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1196:195:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1206:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1218:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1229:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1214:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1214:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1206:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1253:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1264:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1249:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1249:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1272:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1278:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1268:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1268:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1242:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1242:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "1242:47:1"
},
{
"nodeType": "YulAssignment",
"src": "1298:86:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1370:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1379:4:1"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1306:63:1"
},
"nodeType": "YulFunctionCall",
"src": "1306:78:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1298:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1168:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1180:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1191:4:1",
"type": ""
}
],
"src": "1078:313:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1425:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1442:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1445:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1435:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1435:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "1435:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1539:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1542:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1532:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1532:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1532:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1563:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1566:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1556:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1556:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1556:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "1397:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1634:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1644:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1658:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1664:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "1654:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1654:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1644:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1675:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1705:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1711:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1701:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1701:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "1679:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1752:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1766:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1780:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1788:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1776:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1776:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1766:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "1732:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1725:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1725:26:1"
},
"nodeType": "YulIf",
"src": "1722:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1855:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "1869:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1869:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1869:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "1819:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1842:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1850:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1839:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1839:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1816:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1816:38:1"
},
"nodeType": "YulIf",
"src": "1813:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "1618:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1627:6:1",
"type": ""
}
],
"src": "1583:320:1"
}
]
},
"contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c806317d7de7c14610030575b600080fd5b61003861004e565b6040516100459190610179565b60405180910390f35b60606000805461005d906101ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610089906101ca565b80156100d65780601f106100ab576101008083540402835291602001916100d6565b820191906000526020600020905b8154815290600101906020018083116100b957829003601f168201915b5050505050905090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561011a5780820151818401526020810190506100ff565b83811115610129576000848401525b50505050565b6000601f19601f8301169050919050565b600061014b826100e0565b61015581856100eb565b93506101658185602086016100fc565b61016e8161012f565b840191505092915050565b600060208201905081810360008301526101938184610140565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806101e257607f821691505b602082108114156101f6576101f561019b565b5b5091905056fea26469706673582212204416f2ca80dcb6a3eb0fa73fcb4b9b4e1fd08d2e33a2c13ec296e2734a47fdb964736f6c63430008090033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x179 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x5D SWAP1 PUSH2 0x1CA JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x89 SWAP1 PUSH2 0x1CA JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xFF JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x129 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14B DUP3 PUSH2 0xE0 JUMP JUMPDEST PUSH2 0x155 DUP2 DUP6 PUSH2 0xEB JUMP JUMPDEST SWAP4 POP PUSH2 0x165 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFC JUMP JUMPDEST PUSH2 0x16E DUP2 PUSH2 0x12F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x193 DUP2 DUP5 PUSH2 0x140 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1E2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1F6 JUMPI PUSH2 0x1F5 PUSH2 0x19B JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DIFFICULTY AND CALLCODE 0xCA DUP1 0xDC 0xB6 LOG3 0xEB 0xF 0xA7 EXTCODEHASH 0xCB 0x4B SWAP12 0x4E 0x1F 0xD0 DUP14 0x2E CALLER LOG2 0xC1 RETURNDATACOPY 0xC2 SWAP7 0xE2 PUSH20 0x4A47FDB964736F6C634300080900330000000000 ",
"sourceMap": "208:227:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;345:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;384:13;415:4;408:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;345:81;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:180::-;1445:77;1442:1;1435:88;1542:4;1539:1;1532:15;1566:4;1563:1;1556:15;1583:320;1627:6;1664:1;1658:4;1654:12;1644:22;;1711:1;1705:4;1701:12;1732:18;1722:81;;1788:4;1780:6;1776:17;1766:27;;1722:81;1850:2;1842:6;1839:14;1819:18;1816:38;1813:84;;;1869:18;;:::i;:::-;1813:84;1634:269;1583:320;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "112400",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"getName()": "infinite"
}
},
"methodIdentifiers": {
"getName()": "17d7de7c"
}
},
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "names",
"type": "string"
},
{
"internalType": "uint256",
"name": "ages",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getName",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.9+commit.e5eed63a"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "names",
"type": "string"
},
{
"internalType": "uint256",
"name": "ages",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getName",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/section-6-constructors.sol": "Teacher"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/section-6-constructors.sol": {
"keccak256": "0xa028cdc83555398f78a5ed1443b73d9c02d85de9f4cb736ed4084811bf48e871",
"urls": [
"bzz-raw://48b02e1adecc8e09eee8da9deff8aff84aa3e0462968cfe34a1f8904b5c8f359",
"dweb:/ipfs/QmUodPkm2SPVJrbkifJG1gRuTCXPwkz1EZHudgoiPN8xKh"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_5": {
"entryPoint": null,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610163806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063de29278914610030575b600080fd5b61003861004e565b6040516100459190610083565b60405180910390f35b600080600d905060006002905060008183610069919061009e565b905080935050505090565b61007d816100f4565b82525050565b60006020820190506100986000830184610074565b92915050565b60006100a9826100f4565b91506100b4836100f4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156100e9576100e86100fe565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220b47deef8a600d1446187433703c670c3201f911b786ce710f4deb3923dc1fabd64736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x163 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 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xDE292789 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xD SWAP1 POP PUSH1 0x0 PUSH1 0x2 SWAP1 POP PUSH1 0x0 DUP2 DUP4 PUSH2 0x69 SWAP2 SWAP1 PUSH2 0x9E JUMP JUMPDEST SWAP1 POP DUP1 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x7D DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x98 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x74 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA9 DUP3 PUSH2 0xF4 JUMP JUMPDEST SWAP2 POP PUSH2 0xB4 DUP4 PUSH2 0xF4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xE9 JUMPI PUSH2 0xE8 PUSH2 0xFE 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 PUSH30 0xEEF8A600D1446187433703C670C3201F911B786CE710F4DEB3923DC1FABD PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "72:238:0:-:0;;;105:36;;;;;;;;;;72:238;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@getResult_27": {
"entryPoint": 78,
"id": 27,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 116,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 131,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 158,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 244,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 254,
"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": "608060405234801561001057600080fd5b506004361061002b5760003560e01c8063de29278914610030575b600080fd5b61003861004e565b6040516100459190610083565b60405180910390f35b600080600d905060006002905060008183610069919061009e565b905080935050505090565b61007d816100f4565b82525050565b60006020820190506100986000830184610074565b92915050565b60006100a9826100f4565b91506100b4836100f4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156100e9576100e86100fe565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220b47deef8a600d1446187433703c670c3201f911b786ce710f4deb3923dc1fabd64736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xDE292789 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xD SWAP1 POP PUSH1 0x0 PUSH1 0x2 SWAP1 POP PUSH1 0x0 DUP2 DUP4 PUSH2 0x69 SWAP2 SWAP1 PUSH2 0x9E JUMP JUMPDEST SWAP1 POP DUP1 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x7D DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x98 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x74 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA9 DUP3 PUSH2 0xF4 JUMP JUMPDEST SWAP2 POP PUSH2 0xB4 DUP4 PUSH2 0xF4 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xE9 JUMPI PUSH2 0xE8 PUSH2 0xFE 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 PUSH30 0xEEF8A600D1446187433703C670C3201F911B786CE710F4DEB3923DC1FABD PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "72:238:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;146:162;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;187:4;202:6;211:2;202:11;;223:6;232:1;223:10;;243:11;259:1;257;:3;;;;:::i;:::-;243:17;;286:6;279:13;;;;;146:162;:::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": "71000",
"executionCost": "123",
"totalCost": "71123"
},
"external": {
"getResult()": "infinite"
}
},
"methodIdentifiers": {
"getResult()": "de292789"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getResult",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getResult",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/welcome-to-solidity.sol": "WelcomeToSolidity"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/welcome-to-solidity.sol": {
"keccak256": "0x208adf485781e5d6ea050550c178112a7938438cd1bbc18577307c4eb6df9984",
"license": "GPL-3.0",
"urls": [
"bzz-raw://4875848811e814e7483c04e180aa375d4113b7774f602b046f4101a0fa3c8214",
"dweb:/ipfs/QmZaTrGGDvNorkYxXrmjdNXrnavUicnfUw5p699tAfqnPx"
]
}
},
"version": 1
}
pragma solidity > 0.7.0 < 0.9.0;
/*
You just land your new blockchain job to build smart contracts for an awesome DAO catching fire!
Immediately, your boss throws at your a scrip of code tons of bugs in it. She says,
'Hey you! Fix this code and get this smart contract running and help save our DApp from crashing!'
The clock is ticking and this is the perfect opportunity to prove your skills and show what you are made of.
Your assignment is to fix the code below full of syntax errors and get this contract successfully deployed on
the Ethereum network.
Good luck!
*/
contract learnFunctions {
function remoteControlOpen(bool closedDoor, bool openDoor) public returns (uint) {}
uint b = 45;
uint a = 12;
function addValues() public view returns (uint) {
uint b = 3;
uint result = a + b;
return result;
}
function addNewValues() public view returns (uint) {
uint b = 5;
uint result = a + b;
return result;
}
function multiplyCalculatorByFour(uint a,uint b) public view returns(uint) {
uint result = a * b;
return result;
}
function divideCalculatorByFour(uint a, uint b )public view returns(uint) {
uint result = a / b;
return result;
}
}
//Final Operations Exercise
contract finalExercise{
uint a = 300;
uint b = 12;
uint f = 47;
function returnD() public view returns(uint){
uint d = 23;
if(a>b && b<f){
d *= d;
return d - b;
}
else{
return d;
}
}
}
pragma solidity > 0.5.0 < 0.6.3;
contract learnVariables{
uint chocolateBar = 10;
uint storeOwner = 300;
bool lieDetector = true;
string errorMessageText = "Error! There has been a mistake!";
function remoteControlOpen(bool closedDoor ) public returns(bool ){}
function addValues() public view returns(uint){
uint a =2;
uint b =3;
uint result = a + b;
return result;
}
function addNewValues() public view returns (uint){
}
function learnFunctions() public view returns (uint){
}
}
pragma solidity > 0.7.0 < 0.9.0;
contract loopContract{
uint [] public numbersList = [1,2,3,4,5,6];
function checkMultiples(uint _num) public view returns(uint){
uint count = 0;
for(uint i=1; i < numbersList.length;i++){
if(checkMultiplesValidity(numbersList[i], _num)){
count++;
}
}
return count;
}
function checkMultiplesValidity( uint _num1, uint _num2) public view returns(bool){
if(_num1 % _num2 ==0){
return true;
}
else{
return false;
}
}
string greetings = 'Hello, World!';
function sayHello() public view returns(string memory){
return greetings;
}
string favoriteColor = 'blue';
function changeColor(string memory _color) public returns(string memory){
favoriteColor = _color;
return favoriteColor;
}
function viewColor() public view returns(string memory){
return favoriteColor;
}
function changeColorLength() public view returns(uint){
bytes memory stringToBytes = bytes(favoriteColor);
return stringToBytes.length;
}
}
pragma solidity > 0.7.0 < 0.9.0;
contract Member{
string name;
uint age;
constructor(string memory _name, uint age) public {
name = _name;
age = age;
}
}
contract Teacher is Member{
constructor(string memory names, uint ages) Member(names,ages) public{
}
function getName() public view returns(string memory){
return name;
}
}
contract Base{
uint data;
constructor (uint _data){
data = _data;
}
}
contract Derived is Base(5){
function setData() public view returns(uint) {
return data;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >= 0.7.0 < 0.9.0;
contract WelcomeToSolidity {
constructor() public{
}
function getResult() public view returns(uint){
uint a = 13;
uint b = 2;
uint result = a+b;
return result;
}
}
// Right click on the script name and hit "Run" to execute
(async () => {
try {
console.log('Running deployWithEthers script...')
const contractName = 'Storage' // Change this for other contract
const constructorArgs = [] // Put constructor args (if any) here for your contract
// Note that the script needs the ABI which is generated from the compilation artifact.
// Make sure contract is compiled and artifacts are generated
const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath))
// 'web3Provider' is a remix global variable object
const signer = (new ethers.providers.Web3Provider(web3Provider)).getSigner()
let factory = new ethers.ContractFactory(metadata.abi, metadata.data.bytecode.object, signer);
let contract = await factory.deploy(...constructorArgs);
console.log('Contract Address: ', contract.address);
// The contract is NOT deployed yet; we must wait until it is mined
await contract.deployed()
console.log('Deployment successful.')
} catch (e) {
console.log(e.message)
}
})()
// Right click on the script name and hit "Run" to execute
(async () => {
try {
console.log('Running deployWithWeb3 script...')
const contractName = 'Storage' // Change this for other contract
const constructorArgs = [] // Put constructor args (if any) here for your contract
// Note that the script needs the ABI which is generated from the compilation artifact.
// Make sure contract is compiled and artifacts are generated
const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath))
const accounts = await web3.eth.getAccounts()
let contract = new web3.eth.Contract(metadata.abi)
contract = contract.deploy({
data: metadata.data.bytecode.object,
arguments: constructorArgs
})
const newContractInstance = await contract.send({
from: accounts[0],
gas: 1500000,
gasPrice: '30000000000'
})
console.log('Contract deployed at address: ', newContractInstance.options.address)
} catch (e) {
console.log(e.message)
}
})()
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import "remix_tests.sol"; // this import is automatically injected by Remix.
import "../contracts/3_Ballot.sol";
contract BallotTest {
bytes32[] proposalNames;
Ballot ballotToTest;
function beforeAll () public {
proposalNames.push(bytes32("candidate1"));
ballotToTest = new Ballot(proposalNames);
}
function checkWinningProposal () public {
ballotToTest.vote(0);
Assert.equal(ballotToTest.winningProposal(), uint(0), "proposal at index 0 should be the winning proposal");
Assert.equal(ballotToTest.winnerName(), bytes32("candidate1"), "candidate1 should be the winner name");
}
function checkWinninProposalWithReturnValue () public view returns (bool) {
return ballotToTest.winningProposal() == 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment