Skip to content

Instantly share code, notes, and snippets.

@MatthiasEgli
Created March 31, 2021 15:15
Show Gist options
  • Save MatthiasEgli/132cc8f1256a101e9e477379128270c6 to your computer and use it in GitHub Desktop.
Save MatthiasEgli/132cc8f1256a101e9e477379128270c6 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.1+commit.df193b15.js&optimize=false&runs=200&gist=
ETH Workshop Examples - do not use in production, these contracts contain bugs!
{
"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": {
"generatedSources": [],
"linkReferences": {},
"object": "60806040527349ba97a478cbb6fddf0c221f55f1ead08293a17f6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015606357600080fd5b50603f8060716000396000f3fe6080604052600080fdfea26469706673582212203a7b8a51c582aa1e51a397cabac15f081451a62c36bde984f7dafd6dab530e1664736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH20 0x49BA97A478CBB6FDDF0C221F55F1EAD08293A17F PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH1 0x63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3F DUP1 PUSH1 0x71 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASPRICE PUSH28 0x8A51C582AA1E51A397CABAC15F081451A62C36BDE984F7DAFD6DAB53 0xE AND PUSH5 0x736F6C6343 STOP ADDMOD ADD STOP CALLER ",
"sourceMap": "1403:119:0:-:0;;;1450:42;1430:63;;;;;;;;;;;;;;;;;;;;1403:119;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600080fdfea26469706673582212203a7b8a51c582aa1e51a397cabac15f081451a62c36bde984f7dafd6dab530e1664736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASPRICE PUSH28 0x8A51C582AA1E51A397CABAC15F081451A62C36BDE984F7DAFD6DAB53 0xE AND PUSH5 0x736F6C6343 STOP ADDMOD ADD STOP CALLER ",
"sourceMap": "1403:119:0:-:0;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "12600",
"executionCost": "20933",
"totalCost": "33533"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.1+commit.df193b15"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/store.sol": "AttackStore"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/store.sol": {
"keccak256": "0x1a17d07ef94531d433b4492cd8acd1d209130ca3e56a3466c783b93fda119463",
"license": "WTFPL",
"urls": [
"bzz-raw://3170e40db2c92e926d2759688c6ed95fbb999035478cff99a4ae810a84f41d62",
"dweb:/ipfs/QmVrbkEfDa4CjbDeJzqPQXnxXjqrT2obB95uvDWKzGpwvi"
]
}
},
"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": {
"generatedSources": [],
"linkReferences": {},
"object": "60806040527356f1213761c6de51073420eeb7bab136df7bef6e6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015606357600080fd5b50603f8060716000396000f3fe6080604052600080fdfea2646970667358221220c892ceceeb44f2c530ace3ad4e88c115bcf1fbb18b0d49f1721f3a6f6c45266364736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH20 0x56F1213761C6DE51073420EEB7BAB136DF7BEF6E PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH1 0x63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3F DUP1 PUSH1 0x71 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 SWAP3 0xCE 0xCE 0xEB DIFFICULTY CALLCODE 0xC5 ADDRESS 0xAC 0xE3 0xAD 0x4E DUP9 0xC1 ISZERO 0xBC CALL 0xFB 0xB1 DUP12 0xD 0x49 CALL PUSH19 0x1F3A6F6C45266364736F6C6343000801003300 ",
"sourceMap": "1103:119:0:-:0;;;1150:42;1130:63;;;;;;;;;;;;;;;;;;;;1103:119;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600080fdfea2646970667358221220c892ceceeb44f2c530ace3ad4e88c115bcf1fbb18b0d49f1721f3a6f6c45266364736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 SWAP3 0xCE 0xCE 0xEB DIFFICULTY CALLCODE 0xC5 ADDRESS 0xAC 0xE3 0xAD 0x4E DUP9 0xC1 ISZERO 0xBC CALL 0xFB 0xB1 DUP12 0xD 0x49 CALL PUSH19 0x1F3A6F6C45266364736F6C6343000801003300 ",
"sourceMap": "1103:119:0:-:0;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "12600",
"executionCost": "20933",
"totalCost": "33533"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.1+commit.df193b15"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/vault.sol": "AttackVault"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/vault.sol": {
"keccak256": "0xfd1b0c2f48a5db00c05ee7c1dfce925f06361cc2abc84a81e9337cdd4c0cbc06",
"license": "WTFPL",
"urls": [
"bzz-raw://34d9668e6f6ffd183bf0df4a59dd726333fbd2b17fde908488ff1063c7d56467",
"dweb:/ipfs/QmfARLK4KiGaxn7FVAtA6K3ePFxUahGGfvpbNyxjGR5xiB"
]
}
},
"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": {
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610609806100206000396000f3fe60806040526004361061003f5760003560e01c80632e1a7d4d1461004457806347e7ef241461006d578063625299d5146100895780636dd22fc6146100b2575b600080fd5b34801561005057600080fd5b5061006b600480360381019061006691906103f5565b6100c9565b005b610087600480360381019061008291906103b9565b610196565b005b34801561009557600080fd5b506100b060048036038101906100ab91906103f5565b610219565b005b3480156100be57600080fd5b506100c76102af565b005b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000154821061011b57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc826001016000858152602001908152602001600020549081150290604051600060405180830381858888f19350505050158015610176573d6000803e3d6000fd5b506000816001016000848152602001908152602001600020819055505050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000015482106101e857600080fd5b34816001016000848152602001908152602001600020600082825461020d9190610472565b92505081905550505050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154146102a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029990610441565b60405180910390fd5b8181600001819055505050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080600090505b82600001548110156103395782600101600082815260200190815260200160002054826103269190610472565b91508061033290610504565b90506102f9565b50600082600001819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561038a573d6000803e3d6000fd5b505050565b60008135905061039e816105a5565b92915050565b6000813590506103b3816105bc565b92915050565b600080604083850312156103cc57600080fd5b60006103da8582860161038f565b92505060206103eb858286016103a4565b9150509250929050565b60006020828403121561040757600080fd5b6000610415848285016103a4565b91505092915050565b600061042b601683610461565b91506104368261057c565b602082019050919050565b6000602082019050818103600083015261045a8161041e565b9050919050565b600082825260208201905092915050565b600061047d826104fa565b9150610488836104fa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156104bd576104bc61054d565b5b828201905092915050565b60006104d3826104da565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061050f826104fa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156105425761054161054d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f436f6666657220616c7265616479206372656174656400000000000000000000600082015250565b6105ae816104c8565b81146105b957600080fd5b50565b6105c5816104fa565b81146105d057600080fd5b5056fea2646970667358221220101c01c9eadc05289cffa343229c9b0034598a202b174973e96e7c0d08b3aea564736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x609 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x47E7EF24 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x625299D5 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x6DD22FC6 EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x3F5 JUMP JUMPDEST PUSH2 0xC9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x87 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x3B9 JUMP JUMPDEST PUSH2 0x196 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAB SWAP2 SWAP1 PUSH2 0x3F5 JUMP JUMPDEST PUSH2 0x219 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC7 PUSH2 0x2AF JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD DUP3 LT PUSH2 0x11B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 PUSH1 0x1 ADD PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x176 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x0 DUP2 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD DUP3 LT PUSH2 0x1E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP2 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x20D SWAP2 SWAP1 PUSH2 0x472 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD EQ PUSH2 0x2A2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x299 SWAP1 PUSH2 0x441 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 PUSH1 0x0 ADD SLOAD DUP2 LT ISZERO PUSH2 0x339 JUMPI DUP3 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 PUSH2 0x326 SWAP2 SWAP1 PUSH2 0x472 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x332 SWAP1 PUSH2 0x504 JUMP JUMPDEST SWAP1 POP PUSH2 0x2F9 JUMP JUMPDEST POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x38A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x39E DUP2 PUSH2 0x5A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3B3 DUP2 PUSH2 0x5BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3DA DUP6 DUP3 DUP7 ADD PUSH2 0x38F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3EB DUP6 DUP3 DUP7 ADD PUSH2 0x3A4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x407 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x415 DUP5 DUP3 DUP6 ADD PUSH2 0x3A4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42B PUSH1 0x16 DUP4 PUSH2 0x461 JUMP JUMPDEST SWAP2 POP PUSH2 0x436 DUP3 PUSH2 0x57C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x45A DUP2 PUSH2 0x41E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47D DUP3 PUSH2 0x4FA JUMP JUMPDEST SWAP2 POP PUSH2 0x488 DUP4 PUSH2 0x4FA JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x4BD JUMPI PUSH2 0x4BC PUSH2 0x54D JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D3 DUP3 PUSH2 0x4DA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50F DUP3 PUSH2 0x4FA JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x542 JUMPI PUSH2 0x541 PUSH2 0x54D JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x436F6666657220616C7265616479206372656174656400000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x5AE DUP2 PUSH2 0x4C8 JUMP JUMPDEST DUP2 EQ PUSH2 0x5B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x5C5 DUP2 PUSH2 0x4FA JUMP JUMPDEST DUP2 EQ PUSH2 0x5D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT SHR ADD 0xC9 0xEA 0xDC SDIV 0x28 SWAP13 SELFDESTRUCT LOG3 NUMBER 0x22 SWAP13 SWAP12 STOP CALLVALUE MSIZE DUP11 KECCAK256 0x2B OR 0x49 PUSH20 0xE96E7C0D08B3AEA564736F6C6343000801003300 ",
"sourceMap": "7800:1544:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:3434:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:1"
},
"nodeType": "YulFunctionCall",
"src": "78:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "107:26:1"
},
"nodeType": "YulFunctionCall",
"src": "107:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:1",
"type": ""
}
],
"src": "7:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "204:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "214:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "236:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "223:12:1"
},
"nodeType": "YulFunctionCall",
"src": "223:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "214:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "279:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "252:26:1"
},
"nodeType": "YulFunctionCall",
"src": "252:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "252:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "182:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "190:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "198:5:1",
"type": ""
}
],
"src": "152:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "380:324:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "426:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "435:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "438:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "428:6:1"
},
"nodeType": "YulFunctionCall",
"src": "428:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "428:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "401:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "410:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "397:3:1"
},
"nodeType": "YulFunctionCall",
"src": "397:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "422:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "393:3:1"
},
"nodeType": "YulFunctionCall",
"src": "393:32:1"
},
"nodeType": "YulIf",
"src": "390:2:1"
},
{
"nodeType": "YulBlock",
"src": "452:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "467:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "481:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "471:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "496:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "531:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "542:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "527:3:1"
},
"nodeType": "YulFunctionCall",
"src": "527:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "551:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "506:20:1"
},
"nodeType": "YulFunctionCall",
"src": "506:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "496:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "579:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "594:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "608:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "598:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "624:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "659:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "670:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "655:3:1"
},
"nodeType": "YulFunctionCall",
"src": "655:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "679:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "634:20:1"
},
"nodeType": "YulFunctionCall",
"src": "634:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "624:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "342:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "353:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "365:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "373:6:1",
"type": ""
}
],
"src": "297:407:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "776:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "822:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "831:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "834:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "824:6:1"
},
"nodeType": "YulFunctionCall",
"src": "824:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "824:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "797:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "806:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "793:3:1"
},
"nodeType": "YulFunctionCall",
"src": "793:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "818:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "789:3:1"
},
"nodeType": "YulFunctionCall",
"src": "789:32:1"
},
"nodeType": "YulIf",
"src": "786:2:1"
},
{
"nodeType": "YulBlock",
"src": "848:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "863:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "877:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "867:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "892:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "927:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "938:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "923:3:1"
},
"nodeType": "YulFunctionCall",
"src": "923:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "947:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "902:20:1"
},
"nodeType": "YulFunctionCall",
"src": "902:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "892:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "746:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "757:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "769:6:1",
"type": ""
}
],
"src": "710:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1124:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1134:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1200:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1205:2:1",
"type": "",
"value": "22"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1141:58:1"
},
"nodeType": "YulFunctionCall",
"src": "1141:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1134:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1306:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_026ca941c885df895107ee43446b412358b1a1daf9d00842510da8d7d1e2e410",
"nodeType": "YulIdentifier",
"src": "1217:88:1"
},
"nodeType": "YulFunctionCall",
"src": "1217:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "1217:93:1"
},
{
"nodeType": "YulAssignment",
"src": "1319:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1330:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1335:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1326:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1326:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1319:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_026ca941c885df895107ee43446b412358b1a1daf9d00842510da8d7d1e2e410_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1112:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1120:3:1",
"type": ""
}
],
"src": "978:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1521:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1531:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1543:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1554:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1539:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1539:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1531:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1578:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1589:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1574:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1574:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1597:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1603:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1593:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1593:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1567:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1567:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "1567:47:1"
},
{
"nodeType": "YulAssignment",
"src": "1623:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1757:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_026ca941c885df895107ee43446b412358b1a1daf9d00842510da8d7d1e2e410_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1631:124:1"
},
"nodeType": "YulFunctionCall",
"src": "1631:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1623:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_026ca941c885df895107ee43446b412358b1a1daf9d00842510da8d7d1e2e410__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1501:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1516:4:1",
"type": ""
}
],
"src": "1350:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1871:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1888:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1893:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1881:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1881:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "1881:19:1"
},
{
"nodeType": "YulAssignment",
"src": "1909:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1928:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1933:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1924:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1924:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1909:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1843:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1848:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1859:11:1",
"type": ""
}
],
"src": "1775:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1994:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2004:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2027:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2009:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2009:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2004:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2038:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2061:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2043:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2043:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2038:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2201:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "2203:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2203:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2203:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2122:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2129:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2197:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2125:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2125:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2119:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2119:81:1"
},
"nodeType": "YulIf",
"src": "2116:2:1"
},
{
"nodeType": "YulAssignment",
"src": "2233:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2244:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2247:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2240:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2240:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "2233:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1981:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1984:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "1990:3:1",
"type": ""
}
],
"src": "1950:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2306:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2316:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2345:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2327:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2327:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2316:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2288:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2298:7:1",
"type": ""
}
],
"src": "2261:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2408:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2418:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2433:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2440:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2429:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2429:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2418:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2390:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2400:7:1",
"type": ""
}
],
"src": "2363:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2540:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2550:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2561:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2550:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2522:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2532:7:1",
"type": ""
}
],
"src": "2495:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2621:190:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2631:33:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2658:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2640:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2640:24:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2631:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2754:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "2756:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2756:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2756:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2679:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2686:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2676:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2676:77:1"
},
"nodeType": "YulIf",
"src": "2673:2:1"
},
{
"nodeType": "YulAssignment",
"src": "2785:20:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2796:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2803:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2792:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2792:13:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "2785:3:1"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2607:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "2617:3:1",
"type": ""
}
],
"src": "2578:233:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2845:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2862:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2865:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2855:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2855:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "2855:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2959:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2962:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2952:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2952:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2952:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2983:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2986:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2976:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2976:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2976:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "2817:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3109:66:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3131:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3139:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3127:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3127:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "3143:24:1",
"type": "",
"value": "Coffer already created"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3120:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3120:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "3120:48:1"
}
]
},
"name": "store_literal_in_memory_026ca941c885df895107ee43446b412358b1a1daf9d00842510da8d7d1e2e410",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3101:6:1",
"type": ""
}
],
"src": "3003:172:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3224:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3281:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3290:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3293:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3283:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3283:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3283:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3247:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3272:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "3254:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3254:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3244:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3244:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3237:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3237:43:1"
},
"nodeType": "YulIf",
"src": "3234:2:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3217:5:1",
"type": ""
}
],
"src": "3181:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3352:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3409:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3418:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3421:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3411:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3411:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3411:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3375:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3400:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3382:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3382:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3372:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3372:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3365:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3365:43:1"
},
"nodeType": "YulIf",
"src": "3362:2:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3345:5:1",
"type": ""
}
],
"src": "3309:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\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_stringliteral_026ca941c885df895107ee43446b412358b1a1daf9d00842510da8d7d1e2e410_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_026ca941c885df895107ee43446b412358b1a1daf9d00842510da8d7d1e2e410(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_026ca941c885df895107ee43446b412358b1a1daf9d00842510da8d7d1e2e410__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_026ca941c885df895107ee43446b412358b1a1daf9d00842510da8d7d1e2e410_to_t_string_memory_ptr_fromStack( tail)\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 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_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_026ca941c885df895107ee43446b412358b1a1daf9d00842510da8d7d1e2e410(memPtr) {\n\n mstore(add(memPtr, 0), \"Coffer already created\")\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040526004361061003f5760003560e01c80632e1a7d4d1461004457806347e7ef241461006d578063625299d5146100895780636dd22fc6146100b2575b600080fd5b34801561005057600080fd5b5061006b600480360381019061006691906103f5565b6100c9565b005b610087600480360381019061008291906103b9565b610196565b005b34801561009557600080fd5b506100b060048036038101906100ab91906103f5565b610219565b005b3480156100be57600080fd5b506100c76102af565b005b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000154821061011b57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc826001016000858152602001908152602001600020549081150290604051600060405180830381858888f19350505050158015610176573d6000803e3d6000fd5b506000816001016000848152602001908152602001600020819055505050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000015482106101e857600080fd5b34816001016000848152602001908152602001600020600082825461020d9190610472565b92505081905550505050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154146102a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029990610441565b60405180910390fd5b8181600001819055505050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080600090505b82600001548110156103395782600101600082815260200190815260200160002054826103269190610472565b91508061033290610504565b90506102f9565b50600082600001819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561038a573d6000803e3d6000fd5b505050565b60008135905061039e816105a5565b92915050565b6000813590506103b3816105bc565b92915050565b600080604083850312156103cc57600080fd5b60006103da8582860161038f565b92505060206103eb858286016103a4565b9150509250929050565b60006020828403121561040757600080fd5b6000610415848285016103a4565b91505092915050565b600061042b601683610461565b91506104368261057c565b602082019050919050565b6000602082019050818103600083015261045a8161041e565b9050919050565b600082825260208201905092915050565b600061047d826104fa565b9150610488836104fa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156104bd576104bc61054d565b5b828201905092915050565b60006104d3826104da565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061050f826104fa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156105425761054161054d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f436f6666657220616c7265616479206372656174656400000000000000000000600082015250565b6105ae816104c8565b81146105b957600080fd5b50565b6105c5816104fa565b81146105d057600080fd5b5056fea2646970667358221220101c01c9eadc05289cffa343229c9b0034598a202b174973e96e7c0d08b3aea564736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x47E7EF24 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x625299D5 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x6DD22FC6 EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x3F5 JUMP JUMPDEST PUSH2 0xC9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x87 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x3B9 JUMP JUMPDEST PUSH2 0x196 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAB SWAP2 SWAP1 PUSH2 0x3F5 JUMP JUMPDEST PUSH2 0x219 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC7 PUSH2 0x2AF JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD DUP3 LT PUSH2 0x11B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 PUSH1 0x1 ADD PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x176 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x0 DUP2 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD DUP3 LT PUSH2 0x1E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP2 PUSH1 0x1 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x20D SWAP2 SWAP1 PUSH2 0x472 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD EQ PUSH2 0x2A2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x299 SWAP1 PUSH2 0x441 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST DUP3 PUSH1 0x0 ADD SLOAD DUP2 LT ISZERO PUSH2 0x339 JUMPI DUP3 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP3 PUSH2 0x326 SWAP2 SWAP1 PUSH2 0x472 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x332 SWAP1 PUSH2 0x504 JUMP JUMPDEST SWAP1 POP PUSH2 0x2F9 JUMP JUMPDEST POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x38A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x39E DUP2 PUSH2 0x5A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3B3 DUP2 PUSH2 0x5BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3DA DUP6 DUP3 DUP7 ADD PUSH2 0x38F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3EB DUP6 DUP3 DUP7 ADD PUSH2 0x3A4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x407 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x415 DUP5 DUP3 DUP6 ADD PUSH2 0x3A4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42B PUSH1 0x16 DUP4 PUSH2 0x461 JUMP JUMPDEST SWAP2 POP PUSH2 0x436 DUP3 PUSH2 0x57C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x45A DUP2 PUSH2 0x41E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47D DUP3 PUSH2 0x4FA JUMP JUMPDEST SWAP2 POP PUSH2 0x488 DUP4 PUSH2 0x4FA JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x4BD JUMPI PUSH2 0x4BC PUSH2 0x54D JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D3 DUP3 PUSH2 0x4DA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50F DUP3 PUSH2 0x4FA JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x542 JUMPI PUSH2 0x541 PUSH2 0x54D JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x436F6666657220616C7265616479206372656174656400000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x5AE DUP2 PUSH2 0x4C8 JUMP JUMPDEST DUP2 EQ PUSH2 0x5B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x5C5 DUP2 PUSH2 0x4FA JUMP JUMPDEST DUP2 EQ PUSH2 0x5D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT SHR ADD 0xC9 0xEA 0xDC SDIV 0x28 SWAP13 SELFDESTRUCT LOG3 NUMBER 0x22 SWAP13 SWAP12 STOP CALLVALUE MSIZE DUP11 KECCAK256 0x2B OR 0x49 PUSH20 0xE96E7C0D08B3AEA564736F6C6343000801003300 ",
"sourceMap": "7800:1544:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8742:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8406:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8034;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9051:291;;;;;;;;;;;;;:::i;:::-;;8742:232;8791:21;8815:7;:19;8823:10;8815:19;;;;;;;;;;;;;;;8791:43;;8860:6;:14;;;8852:5;:22;8844:31;;;;;;8893:10;8885:28;;:49;8914:6;:12;;:19;8927:5;8914:19;;;;;;;;;;;;8885:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8966:1;8944:6;:12;;:19;8957:5;8944:19;;;;;;;;;;;:23;;;;8742:232;;:::o;8406:201::-;8478:21;8502:7;:15;8510:6;8502:15;;;;;;;;;;;;;;;8478:39;;8543:6;:14;;;8535:5;:22;8527:31;;;;;;8591:9;8568:6;:12;;:19;8581:5;8568:19;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;8406:201;;;:::o;8034:::-;8088:21;8112:7;:19;8120:10;8112:19;;;;;;;;;;;;;;;8088:43;;8167:1;8149:6;:14;;;:19;8141:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8222:6;8205;:14;;:23;;;;8034:201;;:::o;9051:291::-;9094:21;9118:7;:19;9126:10;9118:19;;;;;;;;;;;;;;;9094:43;;9147:17;9179:6;9186:1;9179:8;;9174:81;9191:6;:14;;;9189:1;:16;9174:81;;;9240:6;:12;;:15;9253:1;9240:15;;;;;;;;;;;;9224:31;;;;;:::i;:::-;;;9207:3;;;;:::i;:::-;;;9174:81;;;;9282:1;9265:6;:14;;:18;;;;9301:10;9293:28;;:42;9322:12;9293:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9051:291;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:407::-;;;422:2;410:9;401:7;397:23;393:32;390:2;;;438:1;435;428:12;390:2;481:1;506:53;551:7;542:6;531:9;527:22;506:53;:::i;:::-;496:63;;452:117;608:2;634:53;679:7;670:6;659:9;655:22;634:53;:::i;:::-;624:63;;579:118;380:324;;;;;:::o;710:262::-;;818:2;806:9;797:7;793:23;789:32;786:2;;;834:1;831;824:12;786:2;877:1;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;848:117;776:196;;;;:::o;978:366::-;;1141:67;1205:2;1200:3;1141:67;:::i;:::-;1134:74;;1217:93;1306:3;1217:93;:::i;:::-;1335:2;1330:3;1326:12;1319:19;;1124:220;;;:::o;1350:419::-;;1554:2;1543:9;1539:18;1531:26;;1603:9;1597:4;1593:20;1589:1;1578:9;1574:17;1567:47;1631:131;1757:4;1631:131;:::i;:::-;1623:139;;1521:248;;;:::o;1775:169::-;;1893:6;1888:3;1881:19;1933:4;1928:3;1924:14;1909:29;;1871:73;;;;:::o;1950:305::-;;2009:20;2027:1;2009:20;:::i;:::-;2004:25;;2043:20;2061:1;2043:20;:::i;:::-;2038:25;;2197:1;2129:66;2125:74;2122:1;2119:81;2116:2;;;2203:18;;:::i;:::-;2116:2;2247:1;2244;2240:9;2233:16;;1994:261;;;;:::o;2261:96::-;;2327:24;2345:5;2327:24;:::i;:::-;2316:35;;2306:51;;;:::o;2363:126::-;;2440:42;2433:5;2429:54;2418:65;;2408:81;;;:::o;2495:77::-;;2561:5;2550:16;;2540:32;;;:::o;2578:233::-;;2640:24;2658:5;2640:24;:::i;:::-;2631:33;;2686:66;2679:5;2676:77;2673:2;;;2756:18;;:::i;:::-;2673:2;2803:1;2796:5;2792:13;2785:20;;2621:190;;;:::o;2817:180::-;2865:77;2862:1;2855:88;2962:4;2959:1;2952:15;2986:4;2983:1;2976:15;3003:172;3143:24;3139:1;3131:6;3127:14;3120:48;3109:66;:::o;3181:122::-;3254:24;3272:5;3254:24;:::i;:::-;3247:5;3244:35;3234:2;;3293:1;3290;3283:12;3234:2;3224:79;:::o;3309:122::-;3382:24;3400:5;3382:24;:::i;:::-;3375:5;3372:35;3362:2;;3421:1;3418;3411:12;3362:2;3352:79;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "309000",
"executionCost": "349",
"totalCost": "309349"
},
"external": {
"closeAccount()": "infinite",
"createCoffer(uint256)": "21379",
"deposit(address,uint256)": "infinite",
"withdraw(uint256)": "infinite"
}
},
"methodIdentifiers": {
"closeAccount()": "6dd22fc6",
"createCoffer(uint256)": "625299d5",
"deposit(address,uint256)": "47e7ef24",
"withdraw(uint256)": "2e1a7d4d"
}
},
"abi": [
{
"inputs": [],
"name": "closeAccount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_slots",
"type": "uint256"
}
],
"name": "createCoffer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "_slot",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_slot",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.1+commit.df193b15"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "closeAccount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_slots",
"type": "uint256"
}
],
"name": "createCoffer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "_slot",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_slot",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"closeAccount()": {
"details": "Close an account withdrawing all the money. "
},
"createCoffer(uint256)": {
"details": "Create coffers.",
"params": {
"_slots": "The amount of slots the coffer will have. "
}
},
"deposit(address,uint256)": {
"details": "Deposit money in one's coffer slot.",
"params": {
"_owner": "The coffer to deposit money on.",
"_slot": "The slot to deposit money. "
}
},
"withdraw(uint256)": {
"details": "Withdraw all of the money of one's coffer slot.",
"params": {
"_slot": "The slot to withdraw money from. "
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/attackable.sol": "Coffers"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/attackable.sol": {
"keccak256": "0x5fbeeb33e4335fcd468eade7cb3c935e94da426ffdf3b62565201df5b0692d33",
"license": "UNLICENSED",
"urls": [
"bzz-raw://4cebb2a25b2182aa14aa74faab3446286bd6ec5b1439a182e0ea43a42be31310",
"dweb:/ipfs/QmckpSBtogyamrsKa2Jmx6BEuQhgQM2ue25fux82X9P4tP"
]
}
},
"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": {
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610594806100206000396000f3fe60806040526004361061003f5760003560e01c80632e1a7d4d14610044578063398850bd1461006d578063ed3437f8146100aa578063f340fa01146100d5575b600080fd5b34801561005057600080fd5b5061006b6004803603810190610066919061032e565b6100f1565b005b34801561007957600080fd5b50610094600480360381019061008f9190610305565b6101c7565b6040516100a19190610366565b60405180910390f35b3480156100b657600080fd5b506100bf6101df565b6040516100cc9190610366565b60405180910390f35b6100ef60048036038101906100ea9190610305565b6101e5565b005b600047826001546101029190610408565b61010c91906103d7565b9050806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461015c9190610462565b9250508190555080600160008282546101759190610462565b925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156101c2573d6000803e3d6000fd5b505050565b60006020528060005260406000206000915090505481565b60015481565b60006001541461028b57600034476101fd9190610462565b3460015461020b9190610408565b61021591906103d7565b9050806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546102659190610381565b92505081905550806001600082825461027e9190610381565b92505081905550506102d8565b606460018190555060646000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b6000813590506102ea81610530565b92915050565b6000813590506102ff81610547565b92915050565b60006020828403121561031757600080fd5b6000610325848285016102db565b91505092915050565b60006020828403121561034057600080fd5b600061034e848285016102f0565b91505092915050565b610360816104c8565b82525050565b600060208201905061037b6000830184610357565b92915050565b600061038c826104c8565b9150610397836104c8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156103cc576103cb6104d2565b5b828201905092915050565b60006103e2826104c8565b91506103ed836104c8565b9250826103fd576103fc610501565b5b828204905092915050565b6000610413826104c8565b915061041e836104c8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610457576104566104d2565b5b828202905092915050565b600061046d826104c8565b9150610478836104c8565b92508282101561048b5761048a6104d2565b5b828203905092915050565b60006104a1826104a8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61053981610496565b811461054457600080fd5b50565b610550816104c8565b811461055b57600080fd5b5056fea2646970667358221220f58b5ccaab2c60c93be2f71d11f9114ef03eab429a1d04cca416e4a2a02f561664736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x594 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x398850BD EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0xED3437F8 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0xF340FA01 EQ PUSH2 0xD5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x32E JUMP JUMPDEST PUSH2 0xF1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x94 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x305 JUMP JUMPDEST PUSH2 0x1C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA1 SWAP2 SWAP1 PUSH2 0x366 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBF PUSH2 0x1DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0x366 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEA SWAP2 SWAP1 PUSH2 0x305 JUMP JUMPDEST PUSH2 0x1E5 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SELFBALANCE DUP3 PUSH1 0x1 SLOAD PUSH2 0x102 SWAP2 SWAP1 PUSH2 0x408 JUMP JUMPDEST PUSH2 0x10C SWAP2 SWAP1 PUSH2 0x3D7 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x462 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x462 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD EQ PUSH2 0x28B JUMPI PUSH1 0x0 CALLVALUE SELFBALANCE PUSH2 0x1FD SWAP2 SWAP1 PUSH2 0x462 JUMP JUMPDEST CALLVALUE PUSH1 0x1 SLOAD PUSH2 0x20B SWAP2 SWAP1 PUSH2 0x408 JUMP JUMPDEST PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x3D7 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x265 SWAP2 SWAP1 PUSH2 0x381 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x27E SWAP2 SWAP1 PUSH2 0x381 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x64 PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH1 0x64 PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2EA DUP2 PUSH2 0x530 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2FF DUP2 PUSH2 0x547 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x325 DUP5 DUP3 DUP6 ADD PUSH2 0x2DB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x34E DUP5 DUP3 DUP6 ADD PUSH2 0x2F0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x360 DUP2 PUSH2 0x4C8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x37B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x357 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38C DUP3 PUSH2 0x4C8 JUMP JUMPDEST SWAP2 POP PUSH2 0x397 DUP4 PUSH2 0x4C8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x3CC JUMPI PUSH2 0x3CB PUSH2 0x4D2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E2 DUP3 PUSH2 0x4C8 JUMP JUMPDEST SWAP2 POP PUSH2 0x3ED DUP4 PUSH2 0x4C8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3FD JUMPI PUSH2 0x3FC PUSH2 0x501 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x413 DUP3 PUSH2 0x4C8 JUMP JUMPDEST SWAP2 POP PUSH2 0x41E DUP4 PUSH2 0x4C8 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x457 JUMPI PUSH2 0x456 PUSH2 0x4D2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46D DUP3 PUSH2 0x4C8 JUMP JUMPDEST SWAP2 POP PUSH2 0x478 DUP4 PUSH2 0x4C8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x48B JUMPI PUSH2 0x48A PUSH2 0x4D2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A1 DUP3 PUSH2 0x4A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x539 DUP2 PUSH2 0x496 JUMP JUMPDEST DUP2 EQ PUSH2 0x544 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x550 DUP2 PUSH2 0x4C8 JUMP JUMPDEST DUP2 EQ PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE2 DUP12 0x5C 0xCA 0xAB 0x2C PUSH1 0xC9 EXTCODESIZE 0xE2 0xF7 SAR GT 0xF9 GT 0x4E CREATE RETURNDATACOPY 0xAB TIMESTAMP SWAP11 SAR DIV 0xCC LOG4 AND 0xE4 LOG2 LOG0 0x2F JUMP AND PUSH5 0x736F6C6343 STOP ADDMOD ADD STOP CALLER ",
"sourceMap": "9420:973:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:3180:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:1"
},
"nodeType": "YulFunctionCall",
"src": "78:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "107:26:1"
},
"nodeType": "YulFunctionCall",
"src": "107:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:1",
"type": ""
}
],
"src": "7:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "204:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "214:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "236:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "223:12:1"
},
"nodeType": "YulFunctionCall",
"src": "223:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "214:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "279:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "252:26:1"
},
"nodeType": "YulFunctionCall",
"src": "252:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "252:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "182:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "190:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "198:5:1",
"type": ""
}
],
"src": "152:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "363:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "409:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "418:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "421:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "411:6:1"
},
"nodeType": "YulFunctionCall",
"src": "411:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "411:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "384:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "393:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "380:3:1"
},
"nodeType": "YulFunctionCall",
"src": "380:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "405:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "376:3:1"
},
"nodeType": "YulFunctionCall",
"src": "376:32:1"
},
"nodeType": "YulIf",
"src": "373:2:1"
},
{
"nodeType": "YulBlock",
"src": "435:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "450:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "464:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "454:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "479:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "514:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "525:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "510:3:1"
},
"nodeType": "YulFunctionCall",
"src": "510:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "534:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "489:20:1"
},
"nodeType": "YulFunctionCall",
"src": "489:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "479:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "333:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "344:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "356:6:1",
"type": ""
}
],
"src": "297:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "631:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "677:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "686:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "689:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "679:6:1"
},
"nodeType": "YulFunctionCall",
"src": "679:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "679:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "652:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "661:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "648:3:1"
},
"nodeType": "YulFunctionCall",
"src": "648:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "673:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "644:3:1"
},
"nodeType": "YulFunctionCall",
"src": "644:32:1"
},
"nodeType": "YulIf",
"src": "641:2:1"
},
{
"nodeType": "YulBlock",
"src": "703:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "718:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "732:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "722:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "747:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "782:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "793:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "778:3:1"
},
"nodeType": "YulFunctionCall",
"src": "778:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "802:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "757:20:1"
},
"nodeType": "YulFunctionCall",
"src": "757:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "747:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "601:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "612:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "624:6:1",
"type": ""
}
],
"src": "565:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "898:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "915:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "938:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "920:17:1"
},
"nodeType": "YulFunctionCall",
"src": "920:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "908:6:1"
},
"nodeType": "YulFunctionCall",
"src": "908:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "908:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "886:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "893:3:1",
"type": ""
}
],
"src": "833:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1055:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1065:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1077:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1088:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1073:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1073:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1065:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1145:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1158:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1169:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1154:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1154:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1101:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1101:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1101:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1027:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1039:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1050:4:1",
"type": ""
}
],
"src": "957:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1229:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1239:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1262:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1244:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1244:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1239:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1273:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1296:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1278:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1278:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1273:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1436:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1438:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1438:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1438:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1357:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1364:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1432:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1360:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1360:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1354:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1354:81:1"
},
"nodeType": "YulIf",
"src": "1351:2:1"
},
{
"nodeType": "YulAssignment",
"src": "1468:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1479:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1482:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1475:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1475:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "1468:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1216:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1219:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "1225:3:1",
"type": ""
}
],
"src": "1185:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1538:143:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1548:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1571:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1553:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1553:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1548:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1582:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1605:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1587:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1587:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1582:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1629:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x12",
"nodeType": "YulIdentifier",
"src": "1631:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1631:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1631:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1626:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1619:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1619:9:1"
},
"nodeType": "YulIf",
"src": "1616:2:1"
},
{
"nodeType": "YulAssignment",
"src": "1661:14:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1670:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1673:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "1666:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1666:9:1"
},
"variableNames": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "1661:1:1"
}
]
}
]
},
"name": "checked_div_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1527:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1530:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nodeType": "YulTypedName",
"src": "1536:1:1",
"type": ""
}
],
"src": "1496:185:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1735:300:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1745:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1768:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1750:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1750:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1745:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1779:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1802:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1784:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1784:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1779:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1977:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1979:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1979:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1979:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1889:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1882:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1882:9:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1875:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1875:17:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1897:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1904:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1972:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "1900:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1900:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1894:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1894:81:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1871:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1871:105:1"
},
"nodeType": "YulIf",
"src": "1868:2:1"
},
{
"nodeType": "YulAssignment",
"src": "2009:20:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2024:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2027:1:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "2020:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2020:9:1"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "2009:7:1"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1718:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1721:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "1727:7:1",
"type": ""
}
],
"src": "1687:348:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2086:146:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2096:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2119:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2101:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2101:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2096:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2130:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2153:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2135:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2135:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2130:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2177:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "2179:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2179:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2179:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2171:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2174:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2168:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2168:8:1"
},
"nodeType": "YulIf",
"src": "2165:2:1"
},
{
"nodeType": "YulAssignment",
"src": "2209:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2221:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2224:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2217:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2217:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "2209:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "2072:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "2075:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "2081:4:1",
"type": ""
}
],
"src": "2041:191:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2283:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2293:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2322:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2304:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2304:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2293:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2265:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2275:7:1",
"type": ""
}
],
"src": "2238:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2385:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2395:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2410:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2417:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2406:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2406:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2395:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2367:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2377:7:1",
"type": ""
}
],
"src": "2340:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2517:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2527:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2538:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2527:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2499:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2509:7:1",
"type": ""
}
],
"src": "2472:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2583:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2600:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2603:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2593:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2593:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "2593:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2697:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2700:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2690:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2690:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2690:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2721:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2724:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2714:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2714:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2714:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "2555:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2769:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2786:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2789:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2779:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2779:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "2779:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2883:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2886:4:1",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2876:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2876:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2876:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2907:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2910:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2900:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2900:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2900:15:1"
}
]
},
"name": "panic_error_0x12",
"nodeType": "YulFunctionDefinition",
"src": "2741:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2970:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3027:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3036:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3039:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3029:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3029:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3029:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2993:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3018:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "3000:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3000:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2990:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2990:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2983:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2983:43:1"
},
"nodeType": "YulIf",
"src": "2980:2:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2963:5:1",
"type": ""
}
],
"src": "2927:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3098:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3155:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3164:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3167:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3157:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3157:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3157:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3121:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3146:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3128:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3128:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3118:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3118:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3111:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3111:43:1"
},
"nodeType": "YulIf",
"src": "3108:2:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3091:5:1",
"type": ""
}
],
"src": "3055:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\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 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_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 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 function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040526004361061003f5760003560e01c80632e1a7d4d14610044578063398850bd1461006d578063ed3437f8146100aa578063f340fa01146100d5575b600080fd5b34801561005057600080fd5b5061006b6004803603810190610066919061032e565b6100f1565b005b34801561007957600080fd5b50610094600480360381019061008f9190610305565b6101c7565b6040516100a19190610366565b60405180910390f35b3480156100b657600080fd5b506100bf6101df565b6040516100cc9190610366565b60405180910390f35b6100ef60048036038101906100ea9190610305565b6101e5565b005b600047826001546101029190610408565b61010c91906103d7565b9050806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461015c9190610462565b9250508190555080600160008282546101759190610462565b925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156101c2573d6000803e3d6000fd5b505050565b60006020528060005260406000206000915090505481565b60015481565b60006001541461028b57600034476101fd9190610462565b3460015461020b9190610408565b61021591906103d7565b9050806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546102659190610381565b92505081905550806001600082825461027e9190610381565b92505081905550506102d8565b606460018190555060646000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b6000813590506102ea81610530565b92915050565b6000813590506102ff81610547565b92915050565b60006020828403121561031757600080fd5b6000610325848285016102db565b91505092915050565b60006020828403121561034057600080fd5b600061034e848285016102f0565b91505092915050565b610360816104c8565b82525050565b600060208201905061037b6000830184610357565b92915050565b600061038c826104c8565b9150610397836104c8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156103cc576103cb6104d2565b5b828201905092915050565b60006103e2826104c8565b91506103ed836104c8565b9250826103fd576103fc610501565b5b828204905092915050565b6000610413826104c8565b915061041e836104c8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610457576104566104d2565b5b828202905092915050565b600061046d826104c8565b9150610478836104c8565b92508282101561048b5761048a6104d2565b5b828203905092915050565b60006104a1826104a8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61053981610496565b811461054457600080fd5b50565b610550816104c8565b811461055b57600080fd5b5056fea2646970667358221220f58b5ccaab2c60c93be2f71d11f9114ef03eab429a1d04cca416e4a2a02f561664736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x398850BD EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0xED3437F8 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0xF340FA01 EQ PUSH2 0xD5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x32E JUMP JUMPDEST PUSH2 0xF1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x94 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x305 JUMP JUMPDEST PUSH2 0x1C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA1 SWAP2 SWAP1 PUSH2 0x366 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBF PUSH2 0x1DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0x366 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEA SWAP2 SWAP1 PUSH2 0x305 JUMP JUMPDEST PUSH2 0x1E5 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SELFBALANCE DUP3 PUSH1 0x1 SLOAD PUSH2 0x102 SWAP2 SWAP1 PUSH2 0x408 JUMP JUMPDEST PUSH2 0x10C SWAP2 SWAP1 PUSH2 0x3D7 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x462 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x462 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD EQ PUSH2 0x28B JUMPI PUSH1 0x0 CALLVALUE SELFBALANCE PUSH2 0x1FD SWAP2 SWAP1 PUSH2 0x462 JUMP JUMPDEST CALLVALUE PUSH1 0x1 SLOAD PUSH2 0x20B SWAP2 SWAP1 PUSH2 0x408 JUMP JUMPDEST PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x3D7 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x265 SWAP2 SWAP1 PUSH2 0x381 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x27E SWAP2 SWAP1 PUSH2 0x381 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x64 PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH1 0x64 PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2EA DUP2 PUSH2 0x530 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2FF DUP2 PUSH2 0x547 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x325 DUP5 DUP3 DUP6 ADD PUSH2 0x2DB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x34E DUP5 DUP3 DUP6 ADD PUSH2 0x2F0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x360 DUP2 PUSH2 0x4C8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x37B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x357 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38C DUP3 PUSH2 0x4C8 JUMP JUMPDEST SWAP2 POP PUSH2 0x397 DUP4 PUSH2 0x4C8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x3CC JUMPI PUSH2 0x3CB PUSH2 0x4D2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E2 DUP3 PUSH2 0x4C8 JUMP JUMPDEST SWAP2 POP PUSH2 0x3ED DUP4 PUSH2 0x4C8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3FD JUMPI PUSH2 0x3FC PUSH2 0x501 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x413 DUP3 PUSH2 0x4C8 JUMP JUMPDEST SWAP2 POP PUSH2 0x41E DUP4 PUSH2 0x4C8 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x457 JUMPI PUSH2 0x456 PUSH2 0x4D2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46D DUP3 PUSH2 0x4C8 JUMP JUMPDEST SWAP2 POP PUSH2 0x478 DUP4 PUSH2 0x4C8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x48B JUMPI PUSH2 0x48A PUSH2 0x4D2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A1 DUP3 PUSH2 0x4A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x539 DUP2 PUSH2 0x496 JUMP JUMPDEST DUP2 EQ PUSH2 0x544 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x550 DUP2 PUSH2 0x4C8 JUMP JUMPDEST DUP2 EQ PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE2 DUP12 0x5C 0xCA 0xAB 0x2C PUSH1 0xC9 EXTCODESIZE 0xE2 0xF7 SAR GT 0xF9 GT 0x4E CREATE RETURNDATACOPY 0xAB TIMESTAMP SWAP11 SAR DIV 0xCC LOG4 AND 0xE4 LOG2 LOG0 0x2F JUMP AND PUSH5 0x736F6C6343 STOP ADDMOD ADD STOP CALLER ",
"sourceMap": "9420:973:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10140:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9449:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9494:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9643:360;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10140:246;10191:13;10235:21;10224:7;10208:13;;:23;;;;:::i;:::-;10207:49;;;;:::i;:::-;10191:65;;10289:8;10266:7;:19;10274:10;10266:19;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;10324:8;10307:13;;:25;;;;;;;:::i;:::-;;;;;;;;10350:10;10342:28;;:37;10371:7;10342:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10140:246;;:::o;9449:39::-;;;;;;;;;;;;;;;;;:::o;9494:25::-;;;;:::o;9643:360::-;9724:1;9707:13;;:18;9703:294;;9741:10;9809:9;9785:21;:33;;;;:::i;:::-;9771:9;9755:13;;:25;;;;:::i;:::-;9754:65;;;;:::i;:::-;9741:78;;9852:5;9833:7;:15;9841:6;9833:15;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;9888:5;9871:13;;:22;;;;;;;:::i;:::-;;;;;;;;9703:294;;;;9948:3;9932:13;:19;;;;9983:3;9965:7;:15;9973:6;9965:15;;;;;;;;;;;;;;;:21;;;;9703:294;9643:360;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:262::-;;673:2;661:9;652:7;648:23;644:32;641:2;;;689:1;686;679:12;641:2;732:1;757:53;802:7;793:6;782:9;778:22;757:53;:::i;:::-;747:63;;703:117;631:196;;;;:::o;833:118::-;920:24;938:5;920:24;:::i;:::-;915:3;908:37;898:53;;:::o;957:222::-;;1088:2;1077:9;1073:18;1065:26;;1101:71;1169:1;1158:9;1154:17;1145:6;1101:71;:::i;:::-;1055:124;;;;:::o;1185:305::-;;1244:20;1262:1;1244:20;:::i;:::-;1239:25;;1278:20;1296:1;1278:20;:::i;:::-;1273:25;;1432:1;1364:66;1360:74;1357:1;1354:81;1351:2;;;1438:18;;:::i;:::-;1351:2;1482:1;1479;1475:9;1468:16;;1229:261;;;;:::o;1496:185::-;;1553:20;1571:1;1553:20;:::i;:::-;1548:25;;1587:20;1605:1;1587:20;:::i;:::-;1582:25;;1626:1;1616:2;;1631:18;;:::i;:::-;1616:2;1673:1;1670;1666:9;1661:14;;1538:143;;;;:::o;1687:348::-;;1750:20;1768:1;1750:20;:::i;:::-;1745:25;;1784:20;1802:1;1784:20;:::i;:::-;1779:25;;1972:1;1904:66;1900:74;1897:1;1894:81;1889:1;1882:9;1875:17;1871:105;1868:2;;;1979:18;;:::i;:::-;1868:2;2027:1;2024;2020:9;2009:20;;1735:300;;;;:::o;2041:191::-;;2101:20;2119:1;2101:20;:::i;:::-;2096:25;;2135:20;2153:1;2135:20;:::i;:::-;2130:25;;2174:1;2171;2168:8;2165:2;;;2179:18;;:::i;:::-;2165:2;2224:1;2221;2217:9;2209:17;;2086:146;;;;:::o;2238:96::-;;2304:24;2322:5;2304:24;:::i;:::-;2293:35;;2283:51;;;:::o;2340:126::-;;2417:42;2410:5;2406:54;2395:65;;2385:81;;;:::o;2472:77::-;;2538:5;2527:16;;2517:32;;;:::o;2555:180::-;2603:77;2600:1;2593:88;2700:4;2697:1;2690:15;2724:4;2721:1;2714:15;2741:180;2789:77;2786:1;2779:88;2886:4;2883:1;2876:15;2910:4;2907:1;2900:15;2927:122;3000:24;3018:5;3000:24;:::i;:::-;2993:5;2990:35;2980:2;;3039:1;3036;3029:12;2980:2;2970:79;:::o;3055:122::-;3128:24;3146:5;3128:24;:::i;:::-;3121:5;3118:35;3108:2;;3167:1;3164;3157:12;3108:2;3098:79;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "285600",
"executionCost": "324",
"totalCost": "285924"
},
"external": {
"coffers(address)": "1514",
"deposit(address)": "infinite",
"scalingFactor()": "1151",
"withdraw(uint256)": "infinite"
}
},
"methodIdentifiers": {
"coffers(address)": "398850bd",
"deposit(address)": "f340fa01",
"scalingFactor()": "ed3437f8",
"withdraw(uint256)": "2e1a7d4d"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "coffers",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "scalingFactor",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.1+commit.df193b15"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "coffers",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "scalingFactor",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"deposit(address)": {
"details": "Deposit money in one's coffer slot.",
"params": {
"_owner": "The coffer to deposit money on. "
}
},
"withdraw(uint256)": {
"details": "Withdraw all of the money of one's coffer slot.",
"params": {
"_amount": "The slot to withdraw money from. "
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/attackable.sol": "CommonCoffers"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/attackable.sol": {
"keccak256": "0x5fbeeb33e4335fcd468eade7cb3c935e94da426ffdf3b62565201df5b0692d33",
"license": "UNLICENSED",
"urls": [
"bzz-raw://4cebb2a25b2182aa14aa74faab3446286bd6ec5b1439a182e0ea43a42be31310",
"dweb:/ipfs/QmckpSBtogyamrsKa2Jmx6BEuQhgQM2ue25fux82X9P4tP"
]
}
},
"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": {
"generatedSources": [],
"linkReferences": {},
"object": "6080604052670de0b6b3a764000060005534801561001c57600080fd5b5061044b8061002c6000396000f3fe60806040526004361061003f5760003560e01c8063a035b1fe14610044578063a6f2ae3a1461006f578063c7876ea414610079578063ec973e33146100a4575b600080fd5b34801561005057600080fd5b506100596100e1565b6040516100669190610268565b60405180910390f35b610077610141565b005b34801561008557600080fd5b5061008e6101fd565b60405161009b9190610268565b60405180910390f35b3480156100b057600080fd5b506100cb60048036038101906100c69190610230565b610203565b6040516100d89190610268565b60405180910390f35b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600161012f9190610283565b60005461013c91906102d9565b905090565b600054600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016101909190610283565b3461019b919061030a565b146101a557600080fd5b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546101f49190610283565b92505081905550565b60005481565b60016020528060005260406000206000915090505481565b60008135905061022a816103fe565b92915050565b60006020828403121561024257600080fd5b60006102508482850161021b565b91505092915050565b61026281610396565b82525050565b600060208201905061027d6000830184610259565b92915050565b600061028e82610396565b915061029983610396565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156102ce576102cd6103a0565b5b828201905092915050565b60006102e482610396565b91506102ef83610396565b9250826102ff576102fe6103cf565b5b828204905092915050565b600061031582610396565b915061032083610396565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610359576103586103a0565b5b828202905092915050565b600061036f82610376565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61040781610364565b811461041257600080fd5b5056fea2646970667358221220e7ef5630fe93a7164730bfbc97fe13efda6e580de79f2c42bf3b447d932700af64736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH8 0xDE0B6B3A7640000 PUSH1 0x0 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44B DUP1 PUSH2 0x2C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA035B1FE EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0xA6F2AE3A EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0xC7876EA4 EQ PUSH2 0x79 JUMPI DUP1 PUSH4 0xEC973E33 EQ PUSH2 0xA4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x59 PUSH2 0xE1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x268 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0x141 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8E PUSH2 0x1FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9B SWAP2 SWAP1 PUSH2 0x268 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x230 JUMP JUMPDEST PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD8 SWAP2 SWAP1 PUSH2 0x268 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x283 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x13C SWAP2 SWAP1 PUSH2 0x2D9 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x1 PUSH2 0x190 SWAP2 SWAP1 PUSH2 0x283 JUMP JUMPDEST CALLVALUE PUSH2 0x19B SWAP2 SWAP1 PUSH2 0x30A JUMP JUMPDEST EQ PUSH2 0x1A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1F4 SWAP2 SWAP1 PUSH2 0x283 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x22A DUP2 PUSH2 0x3FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x242 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x250 DUP5 DUP3 DUP6 ADD PUSH2 0x21B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x262 DUP2 PUSH2 0x396 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x27D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x259 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28E DUP3 PUSH2 0x396 JUMP JUMPDEST SWAP2 POP PUSH2 0x299 DUP4 PUSH2 0x396 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2CE JUMPI PUSH2 0x2CD PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E4 DUP3 PUSH2 0x396 JUMP JUMPDEST SWAP2 POP PUSH2 0x2EF DUP4 PUSH2 0x396 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x2FF JUMPI PUSH2 0x2FE PUSH2 0x3CF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x315 DUP3 PUSH2 0x396 JUMP JUMPDEST SWAP2 POP PUSH2 0x320 DUP4 PUSH2 0x396 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x359 JUMPI PUSH2 0x358 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36F DUP3 PUSH2 0x376 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x407 DUP2 PUSH2 0x364 JUMP JUMPDEST DUP2 EQ PUSH2 0x412 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE7 0xEF JUMP ADDRESS INVALID SWAP4 0xA7 AND SELFBALANCE ADDRESS 0xBF 0xBC SWAP8 INVALID SGT 0xEF 0xDA PUSH15 0x580DE79F2C42BF3B447D932700AF64 PUSH20 0x6F6C634300080100330000000000000000000000 ",
"sourceMap": "1637:534:0:-:0;;;1690:7;1666:31;;1637:534;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:2442:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:1"
},
"nodeType": "YulFunctionCall",
"src": "78:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "107:26:1"
},
"nodeType": "YulFunctionCall",
"src": "107:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:1",
"type": ""
}
],
"src": "7:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "218:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "264:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "273:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "276:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "266:6:1"
},
"nodeType": "YulFunctionCall",
"src": "266:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "266:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "239:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "248:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "235:3:1"
},
"nodeType": "YulFunctionCall",
"src": "235:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "260:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "231:3:1"
},
"nodeType": "YulFunctionCall",
"src": "231:32:1"
},
"nodeType": "YulIf",
"src": "228:2:1"
},
{
"nodeType": "YulBlock",
"src": "290:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "305:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "319:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "309:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "334:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "369:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "380:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "365:3:1"
},
"nodeType": "YulFunctionCall",
"src": "365:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "344:20:1"
},
"nodeType": "YulFunctionCall",
"src": "344:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "334:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "188:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "199:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "211:6:1",
"type": ""
}
],
"src": "152:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "485:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "502:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "525:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "507:17:1"
},
"nodeType": "YulFunctionCall",
"src": "507:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "495:6:1"
},
"nodeType": "YulFunctionCall",
"src": "495:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "495:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "473:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "480:3:1",
"type": ""
}
],
"src": "420:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "642:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "652:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "664:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "675:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "660:3:1"
},
"nodeType": "YulFunctionCall",
"src": "660:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "652:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "732:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "745:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "756:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "741:3:1"
},
"nodeType": "YulFunctionCall",
"src": "741:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "688:43:1"
},
"nodeType": "YulFunctionCall",
"src": "688:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "688:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "614:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "626:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "637:4:1",
"type": ""
}
],
"src": "544:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "816:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "826:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "849:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "831:17:1"
},
"nodeType": "YulFunctionCall",
"src": "831:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "826:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "860:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "883:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "865:17:1"
},
"nodeType": "YulFunctionCall",
"src": "865:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "860:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1023:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1025:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1025:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1025:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "944:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "951:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1019:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "947:3:1"
},
"nodeType": "YulFunctionCall",
"src": "947:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "941:2:1"
},
"nodeType": "YulFunctionCall",
"src": "941:81:1"
},
"nodeType": "YulIf",
"src": "938:2:1"
},
{
"nodeType": "YulAssignment",
"src": "1055:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1066:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1069:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1062:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1062:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "1055:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "803:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "806:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "812:3:1",
"type": ""
}
],
"src": "772:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1125:143:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1135:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1158:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1140:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1140:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1135:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1169:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1192:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1174:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1174:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1169:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1216:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x12",
"nodeType": "YulIdentifier",
"src": "1218:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1218:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1218:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1213:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1206:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1206:9:1"
},
"nodeType": "YulIf",
"src": "1203:2:1"
},
{
"nodeType": "YulAssignment",
"src": "1248:14:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1257:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1260:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "1253:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1253:9:1"
},
"variableNames": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "1248:1:1"
}
]
}
]
},
"name": "checked_div_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1114:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1117:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nodeType": "YulTypedName",
"src": "1123:1:1",
"type": ""
}
],
"src": "1083:185:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1322:300:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1332:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1355:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1337:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1337:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1332:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1366:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1389:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1371:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1371:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1366:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1564:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1566:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1566:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1566:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1476:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1469:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1469:9:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1462:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1462:17:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1484:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1491:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1559:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "1487:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1487:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1481:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1481:81:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1458:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1458:105:1"
},
"nodeType": "YulIf",
"src": "1455:2:1"
},
{
"nodeType": "YulAssignment",
"src": "1596:20:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1611:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1614:1:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "1607:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1607:9:1"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "1596:7:1"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1305:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1308:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "1314:7:1",
"type": ""
}
],
"src": "1274:348:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1673:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1683:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1712:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "1694:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1694:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1683:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1655:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1665:7:1",
"type": ""
}
],
"src": "1628:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1775:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1785:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1800:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1807:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1796:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1796:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1785:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1757:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1767:7:1",
"type": ""
}
],
"src": "1730:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1907:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1917:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1928:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1917:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1889:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1899:7:1",
"type": ""
}
],
"src": "1862:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1973:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1990:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1993:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1983:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1983:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "1983:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2087:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2090:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2080:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2080:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2080:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2111:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2114:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2104:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2104:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2104:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "1945:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2159:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2176:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2179:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2169:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2169:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "2169:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2273:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2276:4:1",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2266:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2266:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2266:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2297:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2300:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2290:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2290:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2290:15:1"
}
]
},
"name": "panic_error_0x12",
"nodeType": "YulFunctionDefinition",
"src": "2131:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2360:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2417:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2426:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2429:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2419:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2419:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2419:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2383:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2408:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "2390:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2390:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2380:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2380:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2373:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2373:43:1"
},
"nodeType": "YulIf",
"src": "2370:2:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2353:5:1",
"type": ""
}
],
"src": "2317:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(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 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_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 function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040526004361061003f5760003560e01c8063a035b1fe14610044578063a6f2ae3a1461006f578063c7876ea414610079578063ec973e33146100a4575b600080fd5b34801561005057600080fd5b506100596100e1565b6040516100669190610268565b60405180910390f35b610077610141565b005b34801561008557600080fd5b5061008e6101fd565b60405161009b9190610268565b60405180910390f35b3480156100b057600080fd5b506100cb60048036038101906100c69190610230565b610203565b6040516100d89190610268565b60405180910390f35b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600161012f9190610283565b60005461013c91906102d9565b905090565b600054600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016101909190610283565b3461019b919061030a565b146101a557600080fd5b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546101f49190610283565b92505081905550565b60005481565b60016020528060005260406000206000915090505481565b60008135905061022a816103fe565b92915050565b60006020828403121561024257600080fd5b60006102508482850161021b565b91505092915050565b61026281610396565b82525050565b600060208201905061027d6000830184610259565b92915050565b600061028e82610396565b915061029983610396565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156102ce576102cd6103a0565b5b828201905092915050565b60006102e482610396565b91506102ef83610396565b9250826102ff576102fe6103cf565b5b828204905092915050565b600061031582610396565b915061032083610396565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610359576103586103a0565b5b828202905092915050565b600061036f82610376565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61040781610364565b811461041257600080fd5b5056fea2646970667358221220e7ef5630fe93a7164730bfbc97fe13efda6e580de79f2c42bf3b447d932700af64736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA035B1FE EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0xA6F2AE3A EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0xC7876EA4 EQ PUSH2 0x79 JUMPI DUP1 PUSH4 0xEC973E33 EQ PUSH2 0xA4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x59 PUSH2 0xE1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x268 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0x141 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8E PUSH2 0x1FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9B SWAP2 SWAP1 PUSH2 0x268 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x230 JUMP JUMPDEST PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD8 SWAP2 SWAP1 PUSH2 0x268 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x283 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x13C SWAP2 SWAP1 PUSH2 0x2D9 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x1 PUSH2 0x190 SWAP2 SWAP1 PUSH2 0x283 JUMP JUMPDEST CALLVALUE PUSH2 0x19B SWAP2 SWAP1 PUSH2 0x30A JUMP JUMPDEST EQ PUSH2 0x1A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1F4 SWAP2 SWAP1 PUSH2 0x283 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x22A DUP2 PUSH2 0x3FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x242 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x250 DUP5 DUP3 DUP6 ADD PUSH2 0x21B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x262 DUP2 PUSH2 0x396 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x27D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x259 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28E DUP3 PUSH2 0x396 JUMP JUMPDEST SWAP2 POP PUSH2 0x299 DUP4 PUSH2 0x396 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x2CE JUMPI PUSH2 0x2CD PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E4 DUP3 PUSH2 0x396 JUMP JUMPDEST SWAP2 POP PUSH2 0x2EF DUP4 PUSH2 0x396 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x2FF JUMPI PUSH2 0x2FE PUSH2 0x3CF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x315 DUP3 PUSH2 0x396 JUMP JUMPDEST SWAP2 POP PUSH2 0x320 DUP4 PUSH2 0x396 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x359 JUMPI PUSH2 0x358 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36F DUP3 PUSH2 0x376 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x407 DUP2 PUSH2 0x364 JUMP JUMPDEST DUP2 EQ PUSH2 0x412 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE7 0xEF JUMP ADDRESS INVALID SWAP4 0xA7 AND SELFBALANCE ADDRESS 0xBF 0xBC SWAP8 INVALID SGT 0xEF 0xDA PUSH15 0x580DE79F2C42BF3B447D932700AF64 PUSH20 0x6F6C634300080100330000000000000000000000 ",
"sourceMap": "1637:534:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2056:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1783:148;;;:::i;:::-;;1666:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1703:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2056:108;2094:4;2132:12;:24;2145:10;2132:24;;;;;;;;;;;;;;;;2128:1;:28;;;;:::i;:::-;2117:9;;:40;;;;:::i;:::-;2110:47;;2056:108;:::o;1783:148::-;1877:9;;1848:12;:24;1861:10;1848:24;;;;;;;;;;;;;;;;1844:1;:28;;;;:::i;:::-;1831:9;:42;;;;:::i;:::-;:55;1823:64;;;;;;1923:1;1897:12;:24;1910:10;1897:24;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;1783:148::o;1666:31::-;;;;:::o;1703:45::-;;;;;;;;;;;;;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:262::-;;260:2;248:9;239:7;235:23;231:32;228:2;;;276:1;273;266:12;228:2;319:1;344:53;389:7;380:6;369:9;365:22;344:53;:::i;:::-;334:63;;290:117;218:196;;;;:::o;420:118::-;507:24;525:5;507:24;:::i;:::-;502:3;495:37;485:53;;:::o;544:222::-;;675:2;664:9;660:18;652:26;;688:71;756:1;745:9;741:17;732:6;688:71;:::i;:::-;642:124;;;;:::o;772:305::-;;831:20;849:1;831:20;:::i;:::-;826:25;;865:20;883:1;865:20;:::i;:::-;860:25;;1019:1;951:66;947:74;944:1;941:81;938:2;;;1025:18;;:::i;:::-;938:2;1069:1;1066;1062:9;1055:16;;816:261;;;;:::o;1083:185::-;;1140:20;1158:1;1140:20;:::i;:::-;1135:25;;1174:20;1192:1;1174:20;:::i;:::-;1169:25;;1213:1;1203:2;;1218:18;;:::i;:::-;1203:2;1260:1;1257;1253:9;1248:14;;1125:143;;;;:::o;1274:348::-;;1337:20;1355:1;1337:20;:::i;:::-;1332:25;;1371:20;1389:1;1371:20;:::i;:::-;1366:25;;1559:1;1491:66;1487:74;1484:1;1481:81;1476:1;1469:9;1462:17;1458:105;1455:2;;;1566:18;;:::i;:::-;1455:2;1614:1;1611;1607:9;1596:20;;1322:300;;;;:::o;1628:96::-;;1694:24;1712:5;1694:24;:::i;:::-;1683:35;;1673:51;;;:::o;1730:126::-;;1807:42;1800:5;1796:54;1785:65;;1775:81;;;:::o;1862:77::-;;1928:5;1917:16;;1907:32;;;:::o;1945:180::-;1993:77;1990:1;1983:88;2090:4;2087:1;2080:15;2114:4;2111:1;2104:15;2131:180;2179:77;2176:1;2169:88;2276:4;2273:1;2266:15;2300:4;2297:1;2290:15;2317:122;2390:24;2408:5;2390:24;:::i;:::-;2383:5;2380:35;2370:2;;2429:1;2426;2419:12;2370:2;2360:79;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "219800",
"executionCost": "20269",
"totalCost": "240069"
},
"external": {
"basePrice()": "1151",
"buy()": "infinite",
"objectBought(address)": "1558",
"price()": "infinite"
}
},
"methodIdentifiers": {
"basePrice()": "c7876ea4",
"buy()": "a6f2ae3a",
"objectBought(address)": "ec973e33",
"price()": "a035b1fe"
}
},
"abi": [
{
"inputs": [],
"name": "basePrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "buy",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "objectBought",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "price",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.1+commit.df193b15"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "basePrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "buy",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "objectBought",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "price",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"buy()": {
"details": "Buy an object."
},
"price()": {
"details": "Return the price you'll need to pay.",
"returns": {
"_0": "price The amount you need to pay in wei."
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/attackable.sol": "DiscountedBuy"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/attackable.sol": {
"keccak256": "0x5fbeeb33e4335fcd468eade7cb3c935e94da426ffdf3b62565201df5b0692d33",
"license": "UNLICENSED",
"urls": [
"bzz-raw://4cebb2a25b2182aa14aa74faab3446286bd6ec5b1439a182e0ea43a42be31310",
"dweb:/ipfs/QmckpSBtogyamrsKa2Jmx6BEuQhgQM2ue25fux82X9P4tP"
]
}
},
"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": {
"generatedSources": [],
"linkReferences": {},
"object": "608060405273392805fd4a2044131178b2a88e149a837890a06f600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561006557600080fd5b50610550806100756000396000f3fe60806040526004361061003f5760003560e01c806327e235e314610044578063975057e714610081578063b5e2ebc61461008b578063be040fb0146100b4575b600080fd5b34801561005057600080fd5b5061006b60048036038101906100669190610357565b6100cb565b60405161007891906103f0565b60405180910390f35b6100896100e3565b005b34801561009757600080fd5b506100b260048036038101906100ad9190610380565b610194565b005b3480156100c057600080fd5b506100c96101e6565b005b60006020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461013d57600080fd5b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461018b9190610416565b92505081905550565b8073ffffffffffffffffffffffffffffffffffffffff166108fc670de0b6b3a76400009081150290604051600060405180830381858888f193505050501580156101e2573d6000803e3d6000fd5b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461024057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516102a2906103db565b60006040518083038185875af1925050503d80600081146102df576040519150601f19603f3d011682016040523d82523d6000602084013e6102e4565b606091505b50505060008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b60008135905061033c816104ec565b92915050565b60008135905061035181610503565b92915050565b60006020828403121561036957600080fd5b60006103778482850161032d565b91505092915050565b60006020828403121561039257600080fd5b60006103a084828501610342565b91505092915050565b60006103b660008361040b565b91506103c1826104e9565b600082019050919050565b6103d5816104b0565b82525050565b60006103e6826103a9565b9150819050919050565b600060208201905061040560008301846103cc565b92915050565b600081905092915050565b6000610421826104b0565b915061042c836104b0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610461576104606104ba565b5b828201905092915050565b600061047782610490565b9050919050565b600061048982610490565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50565b6104f58161046c565b811461050057600080fd5b50565b61050c8161047e565b811461051757600080fd5b5056fea264697066735822122082e828e3c592ee65657d1f98694fab2e49ac3ae3835061b9b47047cf5e86b37d64736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH20 0x392805FD4A2044131178B2A88E149A837890A06F PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x550 DUP1 PUSH2 0x75 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x27E235E3 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x975057E7 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0xB5E2EBC6 EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xBE040FB0 EQ PUSH2 0xB4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x357 JUMP JUMPDEST PUSH2 0xCB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x3F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x89 PUSH2 0xE3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAD SWAP2 SWAP1 PUSH2 0x380 JUMP JUMPDEST PUSH2 0x194 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1E6 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x13D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x18B SWAP2 SWAP1 PUSH2 0x416 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0xDE0B6B3A7640000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1E2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x240 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x40 MLOAD PUSH2 0x2A2 SWAP1 PUSH2 0x3DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2DF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2E4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP POP PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x33C DUP2 PUSH2 0x4EC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x351 DUP2 PUSH2 0x503 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x369 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x377 DUP5 DUP3 DUP6 ADD PUSH2 0x32D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3A0 DUP5 DUP3 DUP6 ADD PUSH2 0x342 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B6 PUSH1 0x0 DUP4 PUSH2 0x40B JUMP JUMPDEST SWAP2 POP PUSH2 0x3C1 DUP3 PUSH2 0x4E9 JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3D5 DUP2 PUSH2 0x4B0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E6 DUP3 PUSH2 0x3A9 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x405 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3CC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x421 DUP3 PUSH2 0x4B0 JUMP JUMPDEST SWAP2 POP PUSH2 0x42C DUP4 PUSH2 0x4B0 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x461 JUMPI PUSH2 0x460 PUSH2 0x4BA JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x477 DUP3 PUSH2 0x490 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x489 DUP3 PUSH2 0x490 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x4F5 DUP2 PUSH2 0x46C JUMP JUMPDEST DUP2 EQ PUSH2 0x500 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x50C DUP2 PUSH2 0x47E JUMP JUMPDEST DUP2 EQ PUSH2 0x517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP3 0xE8 0x28 0xE3 0xC5 SWAP3 0xEE PUSH6 0x657D1F98694F 0xAB 0x2E 0x49 0xAC GASPRICE 0xE3 DUP4 POP PUSH2 0xB9B4 PUSH17 0x47CF5E86B37D64736F6C63430008010033 ",
"sourceMap": "747:607:0:-:0;;;834:42;818:58;;;;;;;;;;;;;;;;;;;;747:607;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:3472:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:1"
},
"nodeType": "YulFunctionCall",
"src": "78:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "107:26:1"
},
"nodeType": "YulFunctionCall",
"src": "107:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:1",
"type": ""
}
],
"src": "7:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "212:95:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "222:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "244:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "231:12:1"
},
"nodeType": "YulFunctionCall",
"src": "231:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "222:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "295:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address_payable",
"nodeType": "YulIdentifier",
"src": "260:34:1"
},
"nodeType": "YulFunctionCall",
"src": "260:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "260:41:1"
}
]
},
"name": "abi_decode_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "190:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "198:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "206:5:1",
"type": ""
}
],
"src": "152:155:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "425:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "434:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "437:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "427:6:1"
},
"nodeType": "YulFunctionCall",
"src": "427:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "427:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "400:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "409:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "396:3:1"
},
"nodeType": "YulFunctionCall",
"src": "396:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "421:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "392:3:1"
},
"nodeType": "YulFunctionCall",
"src": "392:32:1"
},
"nodeType": "YulIf",
"src": "389:2:1"
},
{
"nodeType": "YulBlock",
"src": "451:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "466:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "480:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "470:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "495:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "530:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "541:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "526:3:1"
},
"nodeType": "YulFunctionCall",
"src": "526:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "550:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "505:20:1"
},
"nodeType": "YulFunctionCall",
"src": "505:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "495:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "349:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "360:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "372:6:1",
"type": ""
}
],
"src": "313:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "655:204:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "701:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "710:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "713:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "703:6:1"
},
"nodeType": "YulFunctionCall",
"src": "703:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "703:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "676:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "685:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "672:3:1"
},
"nodeType": "YulFunctionCall",
"src": "672:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "697:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "668:3:1"
},
"nodeType": "YulFunctionCall",
"src": "668:32:1"
},
"nodeType": "YulIf",
"src": "665:2:1"
},
{
"nodeType": "YulBlock",
"src": "727:125:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "742:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "756:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "746:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "771:71:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "814:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "825:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "810:3:1"
},
"nodeType": "YulFunctionCall",
"src": "810:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "834:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address_payable",
"nodeType": "YulIdentifier",
"src": "781:28:1"
},
"nodeType": "YulFunctionCall",
"src": "781:61:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "771:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "625:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "636:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "648:6:1",
"type": ""
}
],
"src": "581:278:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1028:235:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1038:90:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1121:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1126:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "1045:75:1"
},
"nodeType": "YulFunctionCall",
"src": "1045:83:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1038:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1226:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"nodeType": "YulIdentifier",
"src": "1137:88:1"
},
"nodeType": "YulFunctionCall",
"src": "1137:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "1137:93:1"
},
{
"nodeType": "YulAssignment",
"src": "1239:18:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1250:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1255:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1246:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1246:11:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1239:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1016:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1024:3:1",
"type": ""
}
],
"src": "865:398:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1334:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1351:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1374:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1356:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1356:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1344:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1344:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1344:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1322:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1329:3:1",
"type": ""
}
],
"src": "1269:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1581:191:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1592:154:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1742:3:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "1599:141:1"
},
"nodeType": "YulFunctionCall",
"src": "1599:147:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1592:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1756:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1763:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1756:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1568:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1577:3:1",
"type": ""
}
],
"src": "1393:379:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1876:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1886:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1898:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1909:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1894:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1894:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1886:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1966:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1979:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1990:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1975:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1975:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1922:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1922:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1922:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1848:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1860:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1871:4:1",
"type": ""
}
],
"src": "1778:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2119:34:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2129:18:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2144:3:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "2129:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2091:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2096:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "2107:11:1",
"type": ""
}
],
"src": "2006:147:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2203:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2213:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2236:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2218:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2218:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2213:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2247:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2270:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2252:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2252:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2247:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2410:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "2412:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2412:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2412:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2331:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2338:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2406:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2334:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2334:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2328:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2328:81:1"
},
"nodeType": "YulIf",
"src": "2325:2:1"
},
{
"nodeType": "YulAssignment",
"src": "2442:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2453:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2456:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2449:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2449:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "2442:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "2190:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "2193:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "2199:3:1",
"type": ""
}
],
"src": "2159:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2515:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2525:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2554:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2536:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2536:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2525:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2497:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2507:7:1",
"type": ""
}
],
"src": "2470:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2625:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2635:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2664:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2646:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2646:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2635:7:1"
}
]
}
]
},
"name": "cleanup_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2607:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2617:7:1",
"type": ""
}
],
"src": "2572:104:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2727:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2737:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2752:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2759:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2748:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2748:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2737:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2709:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2719:7:1",
"type": ""
}
],
"src": "2682:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2859:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2869:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2880:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2869:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2841:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2851:7:1",
"type": ""
}
],
"src": "2814:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2925:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2942:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2945:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2935:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2935:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "2935:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3039:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3042:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3032:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3032:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3032:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3063:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3066:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3056:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3056:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3056:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "2897:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3189:8:1",
"statements": []
},
"name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3181:6:1",
"type": ""
}
],
"src": "3083:114:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3246:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3303:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3312:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3315:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3305:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3305:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3305:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3269:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3294:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "3276:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3276:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3266:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3266:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3259:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3259:43:1"
},
"nodeType": "YulIf",
"src": "3256:2:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3239:5:1",
"type": ""
}
],
"src": "3203:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3382:87:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3447:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3456:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3459:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3449:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3449:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3449:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3405:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3438:5:1"
}
],
"functionName": {
"name": "cleanup_t_address_payable",
"nodeType": "YulIdentifier",
"src": "3412:25:1"
},
"nodeType": "YulFunctionCall",
"src": "3412:32:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3402:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3402:43:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3395:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3395:51:1"
},
"nodeType": "YulIf",
"src": "3392:2:1"
}
]
},
"name": "validator_revert_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3375:5:1",
"type": ""
}
],
"src": "3331:138:1"
}
]
},
"contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address_payable(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 0)\n store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n end := add(pos, 0)\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_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n pos := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\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_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\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_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040526004361061003f5760003560e01c806327e235e314610044578063975057e714610081578063b5e2ebc61461008b578063be040fb0146100b4575b600080fd5b34801561005057600080fd5b5061006b60048036038101906100669190610357565b6100cb565b60405161007891906103f0565b60405180910390f35b6100896100e3565b005b34801561009757600080fd5b506100b260048036038101906100ad9190610380565b610194565b005b3480156100c057600080fd5b506100c96101e6565b005b60006020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461013d57600080fd5b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461018b9190610416565b92505081905550565b8073ffffffffffffffffffffffffffffffffffffffff166108fc670de0b6b3a76400009081150290604051600060405180830381858888f193505050501580156101e2573d6000803e3d6000fd5b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461024057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516102a2906103db565b60006040518083038185875af1925050503d80600081146102df576040519150601f19603f3d011682016040523d82523d6000602084013e6102e4565b606091505b50505060008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b60008135905061033c816104ec565b92915050565b60008135905061035181610503565b92915050565b60006020828403121561036957600080fd5b60006103778482850161032d565b91505092915050565b60006020828403121561039257600080fd5b60006103a084828501610342565b91505092915050565b60006103b660008361040b565b91506103c1826104e9565b600082019050919050565b6103d5816104b0565b82525050565b60006103e6826103a9565b9150819050919050565b600060208201905061040560008301846103cc565b92915050565b600081905092915050565b6000610421826104b0565b915061042c836104b0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610461576104606104ba565b5b828201905092915050565b600061047782610490565b9050919050565b600061048982610490565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50565b6104f58161046c565b811461050057600080fd5b50565b61050c8161047e565b811461051757600080fd5b5056fea264697066735822122082e828e3c592ee65657d1f98694fab2e49ac3ae3835061b9b47047cf5e86b37d64736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x27E235E3 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x975057E7 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0xB5E2EBC6 EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xBE040FB0 EQ PUSH2 0xB4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x357 JUMP JUMPDEST PUSH2 0xCB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x3F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x89 PUSH2 0xE3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAD SWAP2 SWAP1 PUSH2 0x380 JUMP JUMPDEST PUSH2 0x194 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1E6 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x13D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x18B SWAP2 SWAP1 PUSH2 0x416 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0xDE0B6B3A7640000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1E2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x240 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x40 MLOAD PUSH2 0x2A2 SWAP1 PUSH2 0x3DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2DF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2E4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP POP PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x33C DUP2 PUSH2 0x4EC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x351 DUP2 PUSH2 0x503 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x369 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x377 DUP5 DUP3 DUP6 ADD PUSH2 0x32D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3A0 DUP5 DUP3 DUP6 ADD PUSH2 0x342 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B6 PUSH1 0x0 DUP4 PUSH2 0x40B JUMP JUMPDEST SWAP2 POP PUSH2 0x3C1 DUP3 PUSH2 0x4E9 JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3D5 DUP2 PUSH2 0x4B0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E6 DUP3 PUSH2 0x3A9 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x405 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3CC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x421 DUP3 PUSH2 0x4B0 JUMP JUMPDEST SWAP2 POP PUSH2 0x42C DUP4 PUSH2 0x4B0 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x461 JUMPI PUSH2 0x460 PUSH2 0x4BA JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x477 DUP3 PUSH2 0x490 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x489 DUP3 PUSH2 0x490 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x4F5 DUP2 PUSH2 0x46C JUMP JUMPDEST DUP2 EQ PUSH2 0x500 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x50C DUP2 PUSH2 0x47E JUMP JUMPDEST DUP2 EQ PUSH2 0x517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP3 0xE8 0x28 0xE3 0xC5 SWAP3 0xEE PUSH6 0x657D1F98694F 0xAB 0x2E 0x49 0xAC GASPRICE 0xE3 DUP4 POP PUSH2 0xB9B4 PUSH17 0x47CF5E86B37D64736F6C63430008010033 ",
"sourceMap": "747:607:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;772:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;923:118;;;:::i;:::-;;1253:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1081:162;;;;;;;;;;;;;:::i;:::-;;772:40;;;;;;;;;;;;;;;;;:::o;923:118::-;987:5;;;;;;;;;;;973:19;;:10;:19;;;965:28;;;;;;1025:9;1003:8;:20;1012:10;1003:20;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;923:118::o;1253:99::-;1310:8;:17;;:26;1328:7;1310:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1253:99;:::o;1081:162::-;1138:5;;;;;;;;;;;1124:19;;:10;:19;;;1116:28;;;;;;1154:10;:15;;1178:8;:20;1187:10;1178:20;;;;;;;;;;;;;;;;1154:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1235:1;1214:8;:20;1223:10;1214:20;;;;;;;;;;;;;;;:22;;;;1081:162::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:155::-;;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;212:95;;;;:::o;313:262::-;;421:2;409:9;400:7;396:23;392:32;389:2;;;437:1;434;427:12;389:2;480:1;505:53;550:7;541:6;530:9;526:22;505:53;:::i;:::-;495:63;;451:117;379:196;;;;:::o;581:278::-;;697:2;685:9;676:7;672:23;668:32;665:2;;;713:1;710;703:12;665:2;756:1;781:61;834:7;825:6;814:9;810:22;781:61;:::i;:::-;771:71;;727:125;655:204;;;;:::o;865:398::-;;1045:83;1126:1;1121:3;1045:83;:::i;:::-;1038:90;;1137:93;1226:3;1137:93;:::i;:::-;1255:1;1250:3;1246:11;1239:18;;1028:235;;;:::o;1269:118::-;1356:24;1374:5;1356:24;:::i;:::-;1351:3;1344:37;1334:53;;:::o;1393:379::-;;1599:147;1742:3;1599:147;:::i;:::-;1592:154;;1763:3;1756:10;;1581:191;;;:::o;1778:222::-;;1909:2;1898:9;1894:18;1886:26;;1922:71;1990:1;1979:9;1975:17;1966:6;1922:71;:::i;:::-;1876:124;;;;:::o;2006:147::-;;2144:3;2129:18;;2119:34;;;;:::o;2159:305::-;;2218:20;2236:1;2218:20;:::i;:::-;2213:25;;2252:20;2270:1;2252:20;:::i;:::-;2247:25;;2406:1;2338:66;2334:74;2331:1;2328:81;2325:2;;;2412:18;;:::i;:::-;2325:2;2456:1;2453;2449:9;2442:16;;2203:261;;;;:::o;2470:96::-;;2536:24;2554:5;2536:24;:::i;:::-;2525:35;;2515:51;;;:::o;2572:104::-;;2646:24;2664:5;2646:24;:::i;:::-;2635:35;;2625:51;;;:::o;2682:126::-;;2759:42;2752:5;2748:54;2737:65;;2727:81;;;:::o;2814:77::-;;2880:5;2869:16;;2859:32;;;:::o;2897:180::-;2945:77;2942:1;2935:88;3042:4;3039:1;3032:15;3066:4;3063:1;3056:15;3083:114;3189:8;:::o;3203:122::-;3276:24;3294:5;3276:24;:::i;:::-;3269:5;3266:35;3256:2;;3315:1;3312;3305:12;3256:2;3246:79;:::o;3331:138::-;3412:32;3438:5;3412:32;:::i;:::-;3405:5;3402:43;3392:2;;3459:1;3456;3449:12;3392:2;3382:87;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "272000",
"executionCost": "21179",
"totalCost": "293179"
},
"external": {
"balances(address)": "1492",
"loan(address)": "infinite",
"redeem()": "infinite",
"store()": "infinite"
}
},
"methodIdentifiers": {
"balances(address)": "27e235e3",
"loan(address)": "b5e2ebc6",
"redeem()": "be040fb0",
"store()": "975057e7"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balances",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "receiver",
"type": "address"
}
],
"name": "loan",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "redeem",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "store",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.1+commit.df193b15"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balances",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "receiver",
"type": "address"
}
],
"name": "loan",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "redeem",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "store",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"redeem()": {
"details": "Redeem your ETH."
},
"store()": {
"details": "Store ETH in the contract."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/flashloan.sol": "Flashloan"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/flashloan.sol": {
"keccak256": "0x2593a337949860477c9b24ee90512326b04779484d15ac3cc10d81d65a6b4ef9",
"license": "WTFPL",
"urls": [
"bzz-raw://46539d7948968ba9881475c01229dd49a99f63d2c18af15f01613c3eb84bcc46",
"dweb:/ipfs/QmZSrQsU4BhDsiMLjqe6xoTPkbnLDDSJypx6gA3K6qQzf7"
]
}
},
"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": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:818:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "69:79:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "79:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "94:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "88:5:1"
},
"nodeType": "YulFunctionCall",
"src": "88:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "79:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "136:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint32",
"nodeType": "YulIdentifier",
"src": "110:25:1"
},
"nodeType": "YulFunctionCall",
"src": "110:32:1"
},
"nodeType": "YulExpressionStatement",
"src": "110:32:1"
}
]
},
"name": "abi_decode_t_uint32_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "47:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "55:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "63:5:1",
"type": ""
}
],
"src": "7:141:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "246:344:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "292:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "301:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "304:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "294:6:1"
},
"nodeType": "YulFunctionCall",
"src": "294:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "294:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "267:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "276:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "263:3:1"
},
"nodeType": "YulFunctionCall",
"src": "263:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "288:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "259:3:1"
},
"nodeType": "YulFunctionCall",
"src": "259:32:1"
},
"nodeType": "YulIf",
"src": "256:2:1"
},
{
"nodeType": "YulBlock",
"src": "318:127:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "333:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "347:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "337:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "362:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "407:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "418:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "403:3:1"
},
"nodeType": "YulFunctionCall",
"src": "403:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "427:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint32_fromMemory",
"nodeType": "YulIdentifier",
"src": "372:30:1"
},
"nodeType": "YulFunctionCall",
"src": "372:63:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "362:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "455:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "470:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "484:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "474:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "500:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "545:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "556:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "541:3:1"
},
"nodeType": "YulFunctionCall",
"src": "541:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "565:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint32_fromMemory",
"nodeType": "YulIdentifier",
"src": "510:30:1"
},
"nodeType": "YulFunctionCall",
"src": "510:63:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "500:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint32t_uint32_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "208:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "219:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "231:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "239:6:1",
"type": ""
}
],
"src": "154:436:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "640:49:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "650:33:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "665:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "672:10:1",
"type": "",
"value": "0xffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "661:3:1"
},
"nodeType": "YulFunctionCall",
"src": "661:22:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "650:7:1"
}
]
}
]
},
"name": "cleanup_t_uint32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "622:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "632:7:1",
"type": ""
}
],
"src": "596:93:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "737:78:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "793:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "802:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "805:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "795:6:1"
},
"nodeType": "YulFunctionCall",
"src": "795:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "795:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "760:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "784:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint32",
"nodeType": "YulIdentifier",
"src": "767:16:1"
},
"nodeType": "YulFunctionCall",
"src": "767:23:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "757:2:1"
},
"nodeType": "YulFunctionCall",
"src": "757:34:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "750:6:1"
},
"nodeType": "YulFunctionCall",
"src": "750:42:1"
},
"nodeType": "YulIf",
"src": "747:2:1"
}
]
},
"name": "validator_revert_t_uint32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "730:5:1",
"type": ""
}
],
"src": "695:120:1"
}
]
},
"contents": "{\n\n function abi_decode_t_uint32_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint32(value)\n }\n\n function abi_decode_tuple_t_uint32t_uint32_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint32_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint32_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint32(value) -> cleaned {\n cleaned := and(value, 0xffffffff)\n }\n\n function validator_revert_t_uint32(value) {\n if iszero(eq(value, cleanup_t_uint32(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60e06040523480156200001157600080fd5b5060405162001f0538038062001f0583398181016040528101906200003791906200007a565b42608081815250508163ffffffff1660a081815250508063ffffffff1660c081815250505050620000e5565b6000815190506200007481620000cb565b92915050565b600080604083850312156200008e57600080fd5b60006200009e8582860162000063565b9250506020620000b18582860162000063565b9150509250929050565b600063ffffffff82169050919050565b620000d681620000bb565b8114620000e257600080fd5b50565b60805160a05160c051611da3620001626000396000818161047001528181610bfe0152610f1a01526000818161049101528181610ba801528181610c1f01528181610ef6015261138e0152600081816104b201528181610bc901528181610c40015281816111dd0152818161136301526113af0152611da36000f3fe6080604052600436106101095760003560e01c8063a2fb117511610095578063be9a655511610064578063be9a65551461035b578063cbf4bb9a14610386578063d9ca55cd146103b1578063e2eb41ff146103ee578063e4aa533e1461042e57610109565b8063a2fb11751461029d578063a75f27cb146102da578063ad7a672f14610305578063b250717a1461033057610109565b80635bf5d54c116100dc5780635bf5d54c146101c857806364b1258a146101f35780636f8338111461021e578063886a6de11461024957806391c05b0b1461027457610109565b80631f4913891461010e578063307f6b121461014b5780634036778f1461017457806350aa13d41461019d575b600080fd5b34801561011a57600080fd5b50610135600480360381019061013091906114d6565b61044a565b6040516101429190611899565b60405180910390f35b34801561015757600080fd5b50610172600480360381019061016d91906114d6565b61046e565b005b34801561018057600080fd5b5061019b600480360381019061019691906114ff565b610ba6565b005b3480156101a957600080fd5b506101b2610ed5565b6040516101bf9190611899565b60405180910390f35b3480156101d457600080fd5b506101dd610edb565b6040516101ea919061175e565b60405180910390f35b3480156101ff57600080fd5b50610208610eee565b6040516102159190611899565b60405180910390f35b34801561022a57600080fd5b50610233610ef4565b6040516102409190611899565b60405180910390f35b34801561025557600080fd5b5061025e610f18565b60405161026b9190611899565b60405180910390f35b34801561028057600080fd5b5061029b600480360381019061029691906114d6565b610f3c565b005b3480156102a957600080fd5b506102c460048036038101906102bf91906114d6565b61118a565b6040516102d19190611743565b60405180910390f35b3480156102e657600080fd5b506102ef6111c9565b6040516102fc9190611899565b60405180910390f35b34801561031157600080fd5b5061031a6111cf565b6040516103279190611899565b60405180910390f35b34801561033c57600080fd5b506103456111d5565b6040516103529190611899565b60405180910390f35b34801561036757600080fd5b506103706111db565b60405161037d9190611899565b60405180910390f35b34801561039257600080fd5b5061039b6111ff565b6040516103a89190611899565b60405180910390f35b3480156103bd57600080fd5b506103d860048036038101906103d391906114d6565b611205565b6040516103e59190611743565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190611484565b611238565b60405161042594939291906118b4565b60405180910390f35b610448600480360381019061044391906114ad565b611282565b005b6007818154811061045a57600080fd5b906000526020600020016000915090505481565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006104db919061190a565b6104e5919061190a565b421015610527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051e906117b9565b60405180910390fd5b60026003811115610561577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600660009054906101000a900460ff1660038111156105a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b106105b357600080fd5b600160038111156105ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600660009054906101000a900460ff166003811115610635577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b10156106cb57600780549050600360008282546106529190611960565b925050819055506001600660006101000a81548160ff021916908360038111156106a5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055504760048190555060016000808282546106c3919061190a565b925050819055505b60006008805490501415610877576008600a600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460076000815481106107ad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154111561081c5760035460076000815481106107fc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001546108119190611991565b600281905550610876565b6007600081548110610857577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015460035461086f9190611991565b6002819055505b5b6000805490505b600780549050811080156108a9575060008214806108a85750816000546108a5919061190a565b81105b5b15610b1f576000600354600783815481106108ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001541115610957576003546007838154811061093b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001546109509190611991565b90506109ac565b60078281548110610991577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001546003546109a99190611991565b90505b600254811015610a695760088054905060058190556001819055506008600a600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600281905550610b0b565b600254811415610b0a576008600a600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b508080610b1790611a3c565b91505061087e565b6001600780549050610b319190611991565b811415610b8a576002600660006101000a81548160ff02191690836003811115610b84577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055505b81600080828254610b9b919061190a565b925050819055505050565b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610bf2919061190a565b4210158015610c7757507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610c69919061190a565b610c73919061190a565b4211155b610cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cad90611839565b60405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160019054906101000a900460ff1615610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4290611879565b60405180910390fd5b8060010160009054906101000a900460ff16610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d93906117f9565b60405180910390fd5b8060020154338484604051602001610db693929190611706565b6040516020818303038152906040528051906020012014610e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0390611779565b60405180910390fd5b60018160010160016101000a81548160ff0219169083151502179055508260036000828254610e3b919061190a565b9250508190555033600a6000600780549050815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060078390806001815401808255809150506001900390600052602060002001600090919091909150556007805490508160000181905550505050565b60025481565b600660009054906101000a900460ff1681565b60015481565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60026003811115610f76577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600660009054906101000a900460ff166003811115610fbe577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14610ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff590611819565b60405180910390fd5b600060015490505b600880549050811080156110315750600082148061103057508160015461102d919061190a565b81105b5b1561116d5760088181548110611070577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6005546008805490506110c79190611991565b6004546110d49190611960565b9081150290604051600060405180830381858888f193505050505060016008805490506111019190611991565b81141561115a576003600660006101000a81548160ff02191690836003811115611154577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055505b808061116590611a3c565b915050611006565b508060016000828254611180919061190a565b9250508190555050565b6008818154811061119a57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60045481565b60035481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60055481565b600a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16908060010160019054906101000a900460ff16908060020154905084565b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff1615611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e90611799565b60405180910390fd5b670de0b6b3a76400003414611361576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611358906117d9565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000042101580156113dc57507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006113d8919061190a565b4211155b61141b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141290611859565b60405180910390fd5b60018160010160006101000a81548160ff0219169083151502179055508181600201819055505050565b60008135905061145481611d28565b92915050565b60008135905061146981611d3f565b92915050565b60008135905061147e81611d56565b92915050565b60006020828403121561149657600080fd5b60006114a484828501611445565b91505092915050565b6000602082840312156114bf57600080fd5b60006114cd8482850161145a565b91505092915050565b6000602082840312156114e857600080fd5b60006114f68482850161146f565b91505092915050565b6000806040838503121561151257600080fd5b60006115208582860161146f565b92505060206115318582860161145a565b9150509250929050565b611544816119c5565b82525050565b61155b611556826119c5565b611a85565b82525050565b61156a816119d7565b82525050565b611579816119e3565b82525050565b61159061158b826119e3565b611a97565b82525050565b61159f81611a2a565b82525050565b60006115b2600c836118f9565b91506115bd82611b57565b602082019050919050565b60006115d5601a836118f9565b91506115e082611b80565b602082019050919050565b60006115f8601d836118f9565b915061160382611ba9565b602082019050919050565b600061161b601e836118f9565b915061162682611bd2565b602082019050919050565b600061163e6018836118f9565b915061164982611bfb565b602082019050919050565b6000611661601c836118f9565b915061166c82611c24565b602082019050919050565b6000611684602b836118f9565b915061168f82611c4d565b604082019050919050565b60006116a7602b836118f9565b91506116b282611c9c565b604082019050919050565b60006116ca601b836118f9565b91506116d582611ceb565b602082019050919050565b6116e981611a20565b82525050565b6117006116fb82611a20565b611ab3565b82525050565b6000611712828661154a565b60148201915061172282856116ef565b602082019150611732828461157f565b602082019150819050949350505050565b6000602082019050611758600083018461153b565b92915050565b60006020820190506117736000830184611596565b92915050565b60006020820190508181036000830152611792816115a5565b9050919050565b600060208201905081810360008301526117b2816115c8565b9050919050565b600060208201905081810360008301526117d2816115eb565b9050919050565b600060208201905081810360008301526117f28161160e565b9050919050565b6000602082019050818103600083015261181281611631565b9050919050565b6000602082019050818103600083015261183281611654565b9050919050565b6000602082019050818103600083015261185281611677565b9050919050565b600060208201905081810360008301526118728161169a565b9050919050565b60006020820190508181036000830152611892816116bd565b9050919050565b60006020820190506118ae60008301846116e0565b92915050565b60006080820190506118c960008301876116e0565b6118d66020830186611561565b6118e36040830185611561565b6118f06060830184611570565b95945050505050565b600082825260208201905092915050565b600061191582611a20565b915061192083611a20565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561195557611954611abd565b5b828201905092915050565b600061196b82611a20565b915061197683611a20565b92508261198657611985611aec565b5b828204905092915050565b600061199c82611a20565b91506119a783611a20565b9250828210156119ba576119b9611abd565b5b828203905092915050565b60006119d082611a00565b9050919050565b60008115159050919050565b6000819050919050565b60008190506119fb82611d14565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611a35826119ed565b9050919050565b6000611a4782611a20565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611a7a57611a79611abd565b5b600182019050919050565b6000611a9082611aa1565b9050919050565b6000819050919050565b6000611aac82611b4a565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60008160601b9050919050565b7f496e76616c696420686173680000000000000000000000000000000000000000600082015250565b7f506c617965722068617320616c72656164792067756573736564000000000000600082015250565b7f52657665616c20706572696f64206d757374206861766520656e646564000000600082015250565b7f506c61796572206d7573742073656e642065786163746c792031204554480000600082015250565b7f506c61796572206d757374206861766520677565737365640000000000000000600082015250565b7f57696e6e657273206d7573742068617665206265656e20666f756e6400000000600082015250565b7f52657665616c20706572696f64206d757374206861766520626567756e20616e60008201527f64206e6f7420656e646564000000000000000000000000000000000000000000602082015250565b7f436f6d6d697420706572696f64206d757374206861766520626567756e20616e60008201527f64206e6f7420656e646564000000000000000000000000000000000000000000602082015250565b7f506c617965722068617320616c72656164792072657665616c65640000000000600082015250565b60048110611d2557611d24611b1b565b5b50565b611d31816119c5565b8114611d3c57600080fd5b50565b611d48816119e3565b8114611d5357600080fd5b50565b611d5f81611a20565b8114611d6a57600080fd5b5056fea2646970667358221220ae03d3244e988f42e3cb310464917fb064856ffd178e3c5826758a553b11a2c864736f6c63430008010033",
"opcodes": "PUSH1 0xE0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1F05 CODESIZE SUB DUP1 PUSH3 0x1F05 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x7A JUMP JUMPDEST TIMESTAMP PUSH1 0x80 DUP2 DUP2 MSTORE POP POP DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xA0 DUP2 DUP2 MSTORE POP POP DUP1 PUSH4 0xFFFFFFFF AND PUSH1 0xC0 DUP2 DUP2 MSTORE POP POP POP POP PUSH3 0xE5 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x74 DUP2 PUSH3 0xCB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x9E DUP6 DUP3 DUP7 ADD PUSH3 0x63 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0xB1 DUP6 DUP3 DUP7 ADD PUSH3 0x63 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xD6 DUP2 PUSH3 0xBB JUMP JUMPDEST DUP2 EQ PUSH3 0xE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x1DA3 PUSH3 0x162 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x470 ADD MSTORE DUP2 DUP2 PUSH2 0xBFE ADD MSTORE PUSH2 0xF1A ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x491 ADD MSTORE DUP2 DUP2 PUSH2 0xBA8 ADD MSTORE DUP2 DUP2 PUSH2 0xC1F ADD MSTORE DUP2 DUP2 PUSH2 0xEF6 ADD MSTORE PUSH2 0x138E ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4B2 ADD MSTORE DUP2 DUP2 PUSH2 0xBC9 ADD MSTORE DUP2 DUP2 PUSH2 0xC40 ADD MSTORE DUP2 DUP2 PUSH2 0x11DD ADD MSTORE DUP2 DUP2 PUSH2 0x1363 ADD MSTORE PUSH2 0x13AF ADD MSTORE PUSH2 0x1DA3 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x109 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA2FB1175 GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xBE9A6555 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xBE9A6555 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xCBF4BB9A EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0xD9CA55CD EQ PUSH2 0x3B1 JUMPI DUP1 PUSH4 0xE2EB41FF EQ PUSH2 0x3EE JUMPI DUP1 PUSH4 0xE4AA533E EQ PUSH2 0x42E JUMPI PUSH2 0x109 JUMP JUMPDEST DUP1 PUSH4 0xA2FB1175 EQ PUSH2 0x29D JUMPI DUP1 PUSH4 0xA75F27CB EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0xAD7A672F EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0xB250717A EQ PUSH2 0x330 JUMPI PUSH2 0x109 JUMP JUMPDEST DUP1 PUSH4 0x5BF5D54C GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x5BF5D54C EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x64B1258A EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x6F833811 EQ PUSH2 0x21E JUMPI DUP1 PUSH4 0x886A6DE1 EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0x91C05B0B EQ PUSH2 0x274 JUMPI PUSH2 0x109 JUMP JUMPDEST DUP1 PUSH4 0x1F491389 EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0x307F6B12 EQ PUSH2 0x14B JUMPI DUP1 PUSH4 0x4036778F EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0x50AA13D4 EQ PUSH2 0x19D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x135 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x130 SWAP2 SWAP1 PUSH2 0x14D6 JUMP JUMPDEST PUSH2 0x44A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x142 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x157 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x172 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16D SWAP2 SWAP1 PUSH2 0x14D6 JUMP JUMPDEST PUSH2 0x46E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x196 SWAP2 SWAP1 PUSH2 0x14FF JUMP JUMPDEST PUSH2 0xBA6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B2 PUSH2 0xED5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DD PUSH2 0xEDB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP2 SWAP1 PUSH2 0x175E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0xEEE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x233 PUSH2 0xEF4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x240 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0xF18 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x14D6 JUMP JUMPDEST PUSH2 0xF3C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BF SWAP2 SWAP1 PUSH2 0x14D6 JUMP JUMPDEST PUSH2 0x118A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D1 SWAP2 SWAP1 PUSH2 0x1743 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EF PUSH2 0x11C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FC SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x311 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31A PUSH2 0x11CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x327 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x345 PUSH2 0x11D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x352 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x370 PUSH2 0x11DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37D SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0x11FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x14D6 JUMP JUMPDEST PUSH2 0x1205 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E5 SWAP2 SWAP1 PUSH2 0x1743 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x415 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x410 SWAP2 SWAP1 PUSH2 0x1484 JUMP JUMPDEST PUSH2 0x1238 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x425 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x18B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x448 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x443 SWAP2 SWAP1 PUSH2 0x14AD JUMP JUMPDEST PUSH2 0x1282 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x7 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x45A 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 PUSH32 0x0 PUSH32 0x0 PUSH32 0x0 PUSH2 0x4DB SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST TIMESTAMP LT ISZERO PUSH2 0x527 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51E SWAP1 PUSH2 0x17B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x561 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x5A9 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST LT PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x5ED JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x635 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST LT ISZERO PUSH2 0x6CB JUMPI PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x652 SWAP2 SWAP1 PUSH2 0x1960 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x6A5 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP SELFBALANCE PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x6C3 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP1 SLOAD SWAP1 POP EQ ISZERO PUSH2 0x877 JUMPI PUSH1 0x8 PUSH1 0xA PUSH1 0x0 DUP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 SLOAD PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x7AD JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD GT ISZERO PUSH2 0x81C JUMPI PUSH1 0x3 SLOAD PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x7FC JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH2 0x811 SWAP2 SWAP1 PUSH2 0x1991 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH2 0x876 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x857 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH1 0x3 SLOAD PUSH2 0x86F SWAP2 SWAP1 PUSH2 0x1991 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP JUMPDEST JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP JUMPDEST PUSH1 0x7 DUP1 SLOAD SWAP1 POP DUP2 LT DUP1 ISZERO PUSH2 0x8A9 JUMPI POP PUSH1 0x0 DUP3 EQ DUP1 PUSH2 0x8A8 JUMPI POP DUP2 PUSH1 0x0 SLOAD PUSH2 0x8A5 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST DUP2 LT JUMPDEST JUMPDEST ISZERO PUSH2 0xB1F JUMPI PUSH1 0x0 PUSH1 0x3 SLOAD PUSH1 0x7 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x8ED JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD GT ISZERO PUSH2 0x957 JUMPI PUSH1 0x3 SLOAD PUSH1 0x7 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x93B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH2 0x950 SWAP2 SWAP1 PUSH2 0x1991 JUMP JUMPDEST SWAP1 POP PUSH2 0x9AC JUMP JUMPDEST PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x991 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH1 0x3 SLOAD PUSH2 0x9A9 SWAP2 SWAP1 PUSH2 0x1991 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x2 SLOAD DUP2 LT ISZERO PUSH2 0xA69 JUMPI PUSH1 0x8 DUP1 SLOAD SWAP1 POP PUSH1 0x5 DUP2 SWAP1 SSTORE PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH1 0x8 PUSH1 0xA PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH2 0xB0B JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 EQ ISZERO PUSH2 0xB0A JUMPI PUSH1 0x8 PUSH1 0xA PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST JUMPDEST POP DUP1 DUP1 PUSH2 0xB17 SWAP1 PUSH2 0x1A3C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x87E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH2 0xB31 SWAP2 SWAP1 PUSH2 0x1991 JUMP JUMPDEST DUP2 EQ ISZERO PUSH2 0xB8A JUMPI PUSH1 0x2 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xB84 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP JUMPDEST DUP2 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0xB9B SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH32 0x0 PUSH2 0xBF2 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST TIMESTAMP LT ISZERO DUP1 ISZERO PUSH2 0xC77 JUMPI POP PUSH32 0x0 PUSH32 0x0 PUSH32 0x0 PUSH2 0xC69 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST PUSH2 0xC73 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST TIMESTAMP GT ISZERO JUMPDEST PUSH2 0xCB6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCAD SWAP1 PUSH2 0x1839 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x9 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xD4B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD42 SWAP1 PUSH2 0x1879 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xD9C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD93 SWAP1 PUSH2 0x17F9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 ADD SLOAD CALLER DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDB6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1706 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0xE0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE03 SWAP1 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xE3B SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP CALLER PUSH1 0xA PUSH1 0x0 PUSH1 0x7 DUP1 SLOAD SWAP1 POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x7 DUP4 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH1 0x7 DUP1 SLOAD SWAP1 POP DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xF76 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xFBE JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xFFE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFF5 SWAP1 PUSH2 0x1819 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD SWAP1 POP JUMPDEST PUSH1 0x8 DUP1 SLOAD SWAP1 POP DUP2 LT DUP1 ISZERO PUSH2 0x1031 JUMPI POP PUSH1 0x0 DUP3 EQ DUP1 PUSH2 0x1030 JUMPI POP DUP2 PUSH1 0x1 SLOAD PUSH2 0x102D SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST DUP2 LT JUMPDEST JUMPDEST ISZERO PUSH2 0x116D JUMPI PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1070 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x5 SLOAD PUSH1 0x8 DUP1 SLOAD SWAP1 POP PUSH2 0x10C7 SWAP2 SWAP1 PUSH2 0x1991 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x10D4 SWAP2 SWAP1 PUSH2 0x1960 JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP POP PUSH1 0x1 PUSH1 0x8 DUP1 SLOAD SWAP1 POP PUSH2 0x1101 SWAP2 SWAP1 PUSH2 0x1991 JUMP JUMPDEST DUP2 EQ ISZERO PUSH2 0x115A JUMPI PUSH1 0x3 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1154 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP JUMPDEST DUP1 DUP1 PUSH2 0x1165 SWAP1 PUSH2 0x1A3C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1006 JUMP JUMPDEST POP DUP1 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1180 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x119A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1317 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x130E SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH8 0xDE0B6B3A7640000 CALLVALUE EQ PUSH2 0x1361 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1358 SWAP1 PUSH2 0x17D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 TIMESTAMP LT ISZERO DUP1 ISZERO PUSH2 0x13DC JUMPI POP PUSH32 0x0 PUSH32 0x0 PUSH2 0x13D8 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST TIMESTAMP GT ISZERO JUMPDEST PUSH2 0x141B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1412 SWAP1 PUSH2 0x1859 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1454 DUP2 PUSH2 0x1D28 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1469 DUP2 PUSH2 0x1D3F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x147E DUP2 PUSH2 0x1D56 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1496 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x14A4 DUP5 DUP3 DUP6 ADD PUSH2 0x1445 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x14CD DUP5 DUP3 DUP6 ADD PUSH2 0x145A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x14F6 DUP5 DUP3 DUP6 ADD PUSH2 0x146F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1520 DUP6 DUP3 DUP7 ADD PUSH2 0x146F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1531 DUP6 DUP3 DUP7 ADD PUSH2 0x145A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1544 DUP2 PUSH2 0x19C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x155B PUSH2 0x1556 DUP3 PUSH2 0x19C5 JUMP JUMPDEST PUSH2 0x1A85 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x156A DUP2 PUSH2 0x19D7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1579 DUP2 PUSH2 0x19E3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1590 PUSH2 0x158B DUP3 PUSH2 0x19E3 JUMP JUMPDEST PUSH2 0x1A97 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x159F DUP2 PUSH2 0x1A2A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B2 PUSH1 0xC DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BD DUP3 PUSH2 0x1B57 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15D5 PUSH1 0x1A DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x15E0 DUP3 PUSH2 0x1B80 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15F8 PUSH1 0x1D DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x1603 DUP3 PUSH2 0x1BA9 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x161B PUSH1 0x1E DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x1626 DUP3 PUSH2 0x1BD2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x163E PUSH1 0x18 DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x1649 DUP3 PUSH2 0x1BFB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1661 PUSH1 0x1C DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x166C DUP3 PUSH2 0x1C24 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1684 PUSH1 0x2B DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x168F DUP3 PUSH2 0x1C4D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A7 PUSH1 0x2B DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x16B2 DUP3 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16CA PUSH1 0x1B DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x16D5 DUP3 PUSH2 0x1CEB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16E9 DUP2 PUSH2 0x1A20 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1700 PUSH2 0x16FB DUP3 PUSH2 0x1A20 JUMP JUMPDEST PUSH2 0x1AB3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1712 DUP3 DUP7 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1722 DUP3 DUP6 PUSH2 0x16EF JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x1732 DUP3 DUP5 PUSH2 0x157F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1758 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x153B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1773 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1596 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1792 DUP2 PUSH2 0x15A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x17B2 DUP2 PUSH2 0x15C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x17D2 DUP2 PUSH2 0x15EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x17F2 DUP2 PUSH2 0x160E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1812 DUP2 PUSH2 0x1631 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1832 DUP2 PUSH2 0x1654 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1852 DUP2 PUSH2 0x1677 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1872 DUP2 PUSH2 0x169A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1892 DUP2 PUSH2 0x16BD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x18AE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x16E0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x18C9 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x16E0 JUMP JUMPDEST PUSH2 0x18D6 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1561 JUMP JUMPDEST PUSH2 0x18E3 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1561 JUMP JUMPDEST PUSH2 0x18F0 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1570 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1915 DUP3 PUSH2 0x1A20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1920 DUP4 PUSH2 0x1A20 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1955 JUMPI PUSH2 0x1954 PUSH2 0x1ABD JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x196B DUP3 PUSH2 0x1A20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1976 DUP4 PUSH2 0x1A20 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1986 JUMPI PUSH2 0x1985 PUSH2 0x1AEC JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199C DUP3 PUSH2 0x1A20 JUMP JUMPDEST SWAP2 POP PUSH2 0x19A7 DUP4 PUSH2 0x1A20 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x19BA JUMPI PUSH2 0x19B9 PUSH2 0x1ABD JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19D0 DUP3 PUSH2 0x1A00 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x19FB DUP3 PUSH2 0x1D14 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A35 DUP3 PUSH2 0x19ED JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A47 DUP3 PUSH2 0x1A20 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x1A7A JUMPI PUSH2 0x1A79 PUSH2 0x1ABD JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A90 DUP3 PUSH2 0x1AA1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AAC DUP3 PUSH2 0x1B4A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C696420686173680000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x506C617965722068617320616C72656164792067756573736564000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x52657665616C20706572696F64206D757374206861766520656E646564000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x506C61796572206D7573742073656E642065786163746C792031204554480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x506C61796572206D757374206861766520677565737365640000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x57696E6E657273206D7573742068617665206265656E20666F756E6400000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x52657665616C20706572696F64206D757374206861766520626567756E20616E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x64206E6F7420656E646564000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x436F6D6D697420706572696F64206D757374206861766520626567756E20616E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x64206E6F7420656E646564000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x506C617965722068617320616C72656164792072657665616C65640000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x1D25 JUMPI PUSH2 0x1D24 PUSH2 0x1B1B JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x1D31 DUP2 PUSH2 0x19C5 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1D48 DUP2 PUSH2 0x19E3 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1D5F DUP2 PUSH2 0x1A20 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAE SUB 0xD3 0x24 0x4E SWAP9 DUP16 TIMESTAMP 0xE3 0xCB BALANCE DIV PUSH5 0x917FB06485 PUSH16 0xFD178E3C5826758A553B11A2C864736F PUSH13 0x63430008010033000000000000 ",
"sourceMap": "16574:6352:0:-:0;;;18043:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18121:15;18113:23;;;;;;18163:15;18146:32;;;;;;;;18205:15;18188:32;;;;;;;;18043:184;;16574:6352;;7:141:1;;94:6;88:13;79:22;;110:32;136:5;110:32;:::i;:::-;69:79;;;;:::o;154:436::-;;;288:2;276:9;267:7;263:23;259:32;256:2;;;304:1;301;294:12;256:2;347:1;372:63;427:7;418:6;407:9;403:22;372:63;:::i;:::-;362:73;;318:127;484:2;510:63;565:7;556:6;545:9;541:22;510:63;:::i;:::-;500:73;;455:128;246:344;;;;;:::o;596:93::-;;672:10;665:5;661:22;650:33;;640:49;;;:::o;695:120::-;767:23;784:5;767:23;:::i;:::-;760:5;757:34;747:2;;805:1;802;795:12;747:2;737:78;:::o;16574:6352:0:-;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:16899:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:1"
},
"nodeType": "YulFunctionCall",
"src": "78:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "107:26:1"
},
"nodeType": "YulFunctionCall",
"src": "107:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:1",
"type": ""
}
],
"src": "7:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "204:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "214:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "236:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "223:12:1"
},
"nodeType": "YulFunctionCall",
"src": "223:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "214:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "279:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bytes32",
"nodeType": "YulIdentifier",
"src": "252:26:1"
},
"nodeType": "YulFunctionCall",
"src": "252:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "252:33:1"
}
]
},
"name": "abi_decode_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "182:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "190:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "198:5:1",
"type": ""
}
],
"src": "152:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "349:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "359:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "381:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "368:12:1"
},
"nodeType": "YulFunctionCall",
"src": "368:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "359:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "424:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "397:26:1"
},
"nodeType": "YulFunctionCall",
"src": "397:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "397:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "327:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "335:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "343:5:1",
"type": ""
}
],
"src": "297:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "508:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "554:16: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"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "529:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "538:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "525:3:1"
},
"nodeType": "YulFunctionCall",
"src": "525:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "550:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "521:3:1"
},
"nodeType": "YulFunctionCall",
"src": "521:32:1"
},
"nodeType": "YulIf",
"src": "518:2:1"
},
{
"nodeType": "YulBlock",
"src": "580:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "595:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "609:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "599:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "624:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "659:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "670:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "655:3:1"
},
"nodeType": "YulFunctionCall",
"src": "655:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "679:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "634:20:1"
},
"nodeType": "YulFunctionCall",
"src": "634:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "624:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "478:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "489:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "501:6:1",
"type": ""
}
],
"src": "442:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "776:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "822:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "831:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "834:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "824:6:1"
},
"nodeType": "YulFunctionCall",
"src": "824:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "824:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "797:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "806:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "793:3:1"
},
"nodeType": "YulFunctionCall",
"src": "793:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "818:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "789:3:1"
},
"nodeType": "YulFunctionCall",
"src": "789:32:1"
},
"nodeType": "YulIf",
"src": "786:2:1"
},
{
"nodeType": "YulBlock",
"src": "848:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "863:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "877:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "867:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "892:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "927:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "938:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "923:3:1"
},
"nodeType": "YulFunctionCall",
"src": "923:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "947:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bytes32",
"nodeType": "YulIdentifier",
"src": "902:20:1"
},
"nodeType": "YulFunctionCall",
"src": "902:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "892:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "746:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "757:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "769:6:1",
"type": ""
}
],
"src": "710:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1044:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1090:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1099:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1102:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1092:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1092:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1092:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1065:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1074:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1061:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1061:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1086:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1057:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1057:32:1"
},
"nodeType": "YulIf",
"src": "1054:2:1"
},
{
"nodeType": "YulBlock",
"src": "1116:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1131:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1145:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1135:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1160:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1195:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1206:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1191:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1191:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1215:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1170:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1170:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1160:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1014:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1025:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1037:6:1",
"type": ""
}
],
"src": "978:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1329:324:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1375:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1384:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1387:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1377:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1377:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1377:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1350:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1359:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1346:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1346:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1371:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1342:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1342:32:1"
},
"nodeType": "YulIf",
"src": "1339:2:1"
},
{
"nodeType": "YulBlock",
"src": "1401:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1416:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1430:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1420:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1445:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1480:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1491:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1476:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1476:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1500:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1455:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1455:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1445:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1528:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1543:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1557:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1547:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1573:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1608:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1619:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1604:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1604:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1628:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bytes32",
"nodeType": "YulIdentifier",
"src": "1583:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1583:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1573:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1291:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1302:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1314:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1322:6:1",
"type": ""
}
],
"src": "1246:407:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1724:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1741:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1764:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1746:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1746:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1734:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1734:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1734:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1712:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1719:3:1",
"type": ""
}
],
"src": "1659:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1866:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1883:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1926:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1908:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1908:24:1"
}
],
"functionName": {
"name": "leftAlign_t_address",
"nodeType": "YulIdentifier",
"src": "1888:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1888:45:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1876:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1876:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "1876:58:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1854:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1861:3:1",
"type": ""
}
],
"src": "1783:157:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2005:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2022:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2042:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "2027:14:1"
},
"nodeType": "YulFunctionCall",
"src": "2027:21:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2015:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2015:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "2015:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1993:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2000:3:1",
"type": ""
}
],
"src": "1946:109:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2126:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2143:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2166:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "2148:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2148:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2136:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2136:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "2136:37:1"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2114:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2121:3:1",
"type": ""
}
],
"src": "2061:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2268:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2285:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2328:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "2310:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2310:24:1"
}
],
"functionName": {
"name": "leftAlign_t_bytes32",
"nodeType": "YulIdentifier",
"src": "2290:19:1"
},
"nodeType": "YulFunctionCall",
"src": "2290:45:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2278:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2278:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "2278:58:1"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2256:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2263:3:1",
"type": ""
}
],
"src": "2185:157:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2421:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2438:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2482:5:1"
}
],
"functionName": {
"name": "convert_t_enum$_Stage_$1399_to_t_uint8",
"nodeType": "YulIdentifier",
"src": "2443:38:1"
},
"nodeType": "YulFunctionCall",
"src": "2443:45:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2431:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2431:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "2431:58:1"
}
]
},
"name": "abi_encode_t_enum$_Stage_$1399_to_t_uint8_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2409:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2416:3:1",
"type": ""
}
],
"src": "2348:147:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2647:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2657:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2723:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2728:2:1",
"type": "",
"value": "12"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2664:58:1"
},
"nodeType": "YulFunctionCall",
"src": "2664:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2657:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2829:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_221bd5754386c95752ab74f7e97227ba4816d3932c45cd8849529fe0a0a91415",
"nodeType": "YulIdentifier",
"src": "2740:88:1"
},
"nodeType": "YulFunctionCall",
"src": "2740:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "2740:93:1"
},
{
"nodeType": "YulAssignment",
"src": "2842:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2853:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2858:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2849:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2849:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2842:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_221bd5754386c95752ab74f7e97227ba4816d3932c45cd8849529fe0a0a91415_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2635:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2643:3:1",
"type": ""
}
],
"src": "2501:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3019:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3029:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3095:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3100:2:1",
"type": "",
"value": "26"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3036:58:1"
},
"nodeType": "YulFunctionCall",
"src": "3036:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3029:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3201:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_3534324ea7145c8ba5c2f69123bc07ee62b8f043ff77a8fa6d98570b29f2b9ee",
"nodeType": "YulIdentifier",
"src": "3112:88:1"
},
"nodeType": "YulFunctionCall",
"src": "3112:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "3112:93:1"
},
{
"nodeType": "YulAssignment",
"src": "3214:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3225:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3230:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3221:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3221:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3214:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_3534324ea7145c8ba5c2f69123bc07ee62b8f043ff77a8fa6d98570b29f2b9ee_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3007:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3015:3:1",
"type": ""
}
],
"src": "2873:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3391:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3401:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3467:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3472:2:1",
"type": "",
"value": "29"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3408:58:1"
},
"nodeType": "YulFunctionCall",
"src": "3408:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3401:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3573:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_513bf954671cf13eab8f88858f4e84af43d0ddecc8ae2d92744bd38e06795918",
"nodeType": "YulIdentifier",
"src": "3484:88:1"
},
"nodeType": "YulFunctionCall",
"src": "3484:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "3484:93:1"
},
{
"nodeType": "YulAssignment",
"src": "3586:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3597:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3602:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3593:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3593:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3586:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_513bf954671cf13eab8f88858f4e84af43d0ddecc8ae2d92744bd38e06795918_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3379:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3387:3:1",
"type": ""
}
],
"src": "3245:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3763:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3773:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3839:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3844:2:1",
"type": "",
"value": "30"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3780:58:1"
},
"nodeType": "YulFunctionCall",
"src": "3780:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3773:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3945:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_685ad083f9f79b976b5237647a6eddcebb050a4f1b883e73ed91370dc380c4af",
"nodeType": "YulIdentifier",
"src": "3856:88:1"
},
"nodeType": "YulFunctionCall",
"src": "3856:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "3856:93:1"
},
{
"nodeType": "YulAssignment",
"src": "3958:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3969:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3974:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3965:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3965:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3958:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_685ad083f9f79b976b5237647a6eddcebb050a4f1b883e73ed91370dc380c4af_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3751:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3759:3:1",
"type": ""
}
],
"src": "3617:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4135:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4145:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4211:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4216:2:1",
"type": "",
"value": "24"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4152:58:1"
},
"nodeType": "YulFunctionCall",
"src": "4152:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4145:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4317:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_716dfb84bf3b9229717f8d4eefea9bb15e2215425c5ad590666377dc2329f756",
"nodeType": "YulIdentifier",
"src": "4228:88:1"
},
"nodeType": "YulFunctionCall",
"src": "4228:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "4228:93:1"
},
{
"nodeType": "YulAssignment",
"src": "4330:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4341:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4346:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4337:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4337:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4330:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_716dfb84bf3b9229717f8d4eefea9bb15e2215425c5ad590666377dc2329f756_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4123:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4131:3:1",
"type": ""
}
],
"src": "3989:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4507:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4517:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4583:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4588:2:1",
"type": "",
"value": "28"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4524:58:1"
},
"nodeType": "YulFunctionCall",
"src": "4524:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4517:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4689:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_92476ff9ce5f422a1e71c5bda11c38f5b07f6fbfeeb0a962b1c804ea0a02c63a",
"nodeType": "YulIdentifier",
"src": "4600:88:1"
},
"nodeType": "YulFunctionCall",
"src": "4600:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "4600:93:1"
},
{
"nodeType": "YulAssignment",
"src": "4702:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4713:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4718:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4709:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4709:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4702:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_92476ff9ce5f422a1e71c5bda11c38f5b07f6fbfeeb0a962b1c804ea0a02c63a_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4495:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4503:3:1",
"type": ""
}
],
"src": "4361:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4879:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4889:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4955:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4960:2:1",
"type": "",
"value": "43"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4896:58:1"
},
"nodeType": "YulFunctionCall",
"src": "4896:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4889:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5061:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_925928610c89f9962390e67deb83043ed2d23dd135e3e8b4edf6d6df1604c773",
"nodeType": "YulIdentifier",
"src": "4972:88:1"
},
"nodeType": "YulFunctionCall",
"src": "4972:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "4972:93:1"
},
{
"nodeType": "YulAssignment",
"src": "5074:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5085:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5090:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5081:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5081:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5074:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_925928610c89f9962390e67deb83043ed2d23dd135e3e8b4edf6d6df1604c773_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4867:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4875:3:1",
"type": ""
}
],
"src": "4733:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5251:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5261:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5327:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5332:2:1",
"type": "",
"value": "43"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5268:58:1"
},
"nodeType": "YulFunctionCall",
"src": "5268:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5261:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5433:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_937e13fd4d9f91ddff4a4f79387facbf51f96c87cd0246ca80ac3c35b7c3e57e",
"nodeType": "YulIdentifier",
"src": "5344:88:1"
},
"nodeType": "YulFunctionCall",
"src": "5344:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "5344:93:1"
},
{
"nodeType": "YulAssignment",
"src": "5446:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5457:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5462:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5453:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5453:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5446:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_937e13fd4d9f91ddff4a4f79387facbf51f96c87cd0246ca80ac3c35b7c3e57e_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5239:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5247:3:1",
"type": ""
}
],
"src": "5105:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5623:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5633:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5699:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5704:2:1",
"type": "",
"value": "27"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5640:58:1"
},
"nodeType": "YulFunctionCall",
"src": "5640:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5633:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5805:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_d8c4da18c2460545a5e2633e0cfe081bae6f2f51faa9c165bf5d91103be94680",
"nodeType": "YulIdentifier",
"src": "5716:88:1"
},
"nodeType": "YulFunctionCall",
"src": "5716:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "5716:93:1"
},
{
"nodeType": "YulAssignment",
"src": "5818:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5829:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5834:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5825:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5825:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5818:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_d8c4da18c2460545a5e2633e0cfe081bae6f2f51faa9c165bf5d91103be94680_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5611:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5619:3:1",
"type": ""
}
],
"src": "5477:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5914:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5931:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5954:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "5936:17:1"
},
"nodeType": "YulFunctionCall",
"src": "5936:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5924:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5924:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "5924:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5902:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5909:3:1",
"type": ""
}
],
"src": "5849:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6056:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6073:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6116:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "6098:17:1"
},
"nodeType": "YulFunctionCall",
"src": "6098:24:1"
}
],
"functionName": {
"name": "leftAlign_t_uint256",
"nodeType": "YulIdentifier",
"src": "6078:19:1"
},
"nodeType": "YulFunctionCall",
"src": "6078:45:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6066:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6066:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "6066:58:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6044:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6051:3:1",
"type": ""
}
],
"src": "5973:157:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6308:366:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6381:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6390:3:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "6319:61:1"
},
"nodeType": "YulFunctionCall",
"src": "6319:75:1"
},
"nodeType": "YulExpressionStatement",
"src": "6319:75:1"
},
{
"nodeType": "YulAssignment",
"src": "6403:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6414:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6419:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6410:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6410:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6403:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "6494:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6503:3:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "6432:61:1"
},
"nodeType": "YulFunctionCall",
"src": "6432:75:1"
},
"nodeType": "YulExpressionStatement",
"src": "6432:75:1"
},
{
"nodeType": "YulAssignment",
"src": "6516:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6527:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6532:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6523:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6523:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6516:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6607:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6616:3:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "6545:61:1"
},
"nodeType": "YulFunctionCall",
"src": "6545:75:1"
},
"nodeType": "YulExpressionStatement",
"src": "6545:75:1"
},
{
"nodeType": "YulAssignment",
"src": "6629:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6640:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6645:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6636:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6636:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6629:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "6658:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6665:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "6658:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_address_t_uint256_t_bytes32__to_t_address_t_uint256_t_bytes32__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6271:3:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "6277:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "6285:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6293:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6304:3:1",
"type": ""
}
],
"src": "6136:538:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6778:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6788:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6800:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6811:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6796:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6796:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6788:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6868:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6881:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6892:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6877:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6877:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "6824:43:1"
},
"nodeType": "YulFunctionCall",
"src": "6824:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "6824:71:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6750:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6762:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6773:4:1",
"type": ""
}
],
"src": "6680:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7014:132:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7024:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7036:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7047:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7032:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7032:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7024:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "7112:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7125:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7136:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7121:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7121:17:1"
}
],
"functionName": {
"name": "abi_encode_t_enum$_Stage_$1399_to_t_uint8_fromStack",
"nodeType": "YulIdentifier",
"src": "7060:51:1"
},
"nodeType": "YulFunctionCall",
"src": "7060:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "7060:79:1"
}
]
},
"name": "abi_encode_tuple_t_enum$_Stage_$1399__to_t_uint8__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6986:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6998:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7009:4:1",
"type": ""
}
],
"src": "6908:238:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7323:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7333:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7345:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7356:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7341:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7341:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7333:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7380:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7391:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7376:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7376:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7399:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7405:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "7395:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7395:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7369:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7369:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "7369:47:1"
},
{
"nodeType": "YulAssignment",
"src": "7425:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7559:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_221bd5754386c95752ab74f7e97227ba4816d3932c45cd8849529fe0a0a91415_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7433:124:1"
},
"nodeType": "YulFunctionCall",
"src": "7433:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7425:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_221bd5754386c95752ab74f7e97227ba4816d3932c45cd8849529fe0a0a91415__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7303:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7318:4:1",
"type": ""
}
],
"src": "7152:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7748:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7758:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7770:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7781:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7766:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7766:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7758:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7805:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7816:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7801:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7801:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7824:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7830:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "7820:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7820:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7794:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7794:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "7794:47:1"
},
{
"nodeType": "YulAssignment",
"src": "7850:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7984:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_3534324ea7145c8ba5c2f69123bc07ee62b8f043ff77a8fa6d98570b29f2b9ee_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7858:124:1"
},
"nodeType": "YulFunctionCall",
"src": "7858:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7850:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_3534324ea7145c8ba5c2f69123bc07ee62b8f043ff77a8fa6d98570b29f2b9ee__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7728:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7743:4:1",
"type": ""
}
],
"src": "7577:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8173:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8183:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8195:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8206:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8191:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8191:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8183:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8230:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8241:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8226:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8226:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8249:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8255:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8245:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8245:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8219:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8219:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "8219:47:1"
},
{
"nodeType": "YulAssignment",
"src": "8275:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8409:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_513bf954671cf13eab8f88858f4e84af43d0ddecc8ae2d92744bd38e06795918_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "8283:124:1"
},
"nodeType": "YulFunctionCall",
"src": "8283:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8275:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_513bf954671cf13eab8f88858f4e84af43d0ddecc8ae2d92744bd38e06795918__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8153:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8168:4:1",
"type": ""
}
],
"src": "8002:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8598:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8608:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8620:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8631:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8616:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8616:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8608:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8655:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8666:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8651:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8651:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8674:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8680:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8670:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8670:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8644:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8644:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "8644:47:1"
},
{
"nodeType": "YulAssignment",
"src": "8700:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8834:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_685ad083f9f79b976b5237647a6eddcebb050a4f1b883e73ed91370dc380c4af_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "8708:124:1"
},
"nodeType": "YulFunctionCall",
"src": "8708:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8700:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_685ad083f9f79b976b5237647a6eddcebb050a4f1b883e73ed91370dc380c4af__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8578:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8593:4:1",
"type": ""
}
],
"src": "8427:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9023:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9033:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9045:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9056:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9041:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9041:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9033:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9080:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9091:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9076:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9076:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9099:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9105:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "9095:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9095:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9069:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9069:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "9069:47:1"
},
{
"nodeType": "YulAssignment",
"src": "9125:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9259:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_716dfb84bf3b9229717f8d4eefea9bb15e2215425c5ad590666377dc2329f756_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "9133:124:1"
},
"nodeType": "YulFunctionCall",
"src": "9133:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9125:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_716dfb84bf3b9229717f8d4eefea9bb15e2215425c5ad590666377dc2329f756__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9003:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9018:4:1",
"type": ""
}
],
"src": "8852:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9448:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9458:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9470:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9481:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9466:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9466:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9458:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9505:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9516:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9501:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9501:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9524:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9530:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "9520:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9520:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9494:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9494:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "9494:47:1"
},
{
"nodeType": "YulAssignment",
"src": "9550:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9684:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_92476ff9ce5f422a1e71c5bda11c38f5b07f6fbfeeb0a962b1c804ea0a02c63a_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "9558:124:1"
},
"nodeType": "YulFunctionCall",
"src": "9558:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9550:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_92476ff9ce5f422a1e71c5bda11c38f5b07f6fbfeeb0a962b1c804ea0a02c63a__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9428:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9443:4:1",
"type": ""
}
],
"src": "9277:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9873:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9883:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9895:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9906:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9891:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9891:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9883:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9930:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9941:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9926:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9926:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9949:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9955:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "9945:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9945:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9919:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9919:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "9919:47:1"
},
{
"nodeType": "YulAssignment",
"src": "9975:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10109:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_925928610c89f9962390e67deb83043ed2d23dd135e3e8b4edf6d6df1604c773_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "9983:124:1"
},
"nodeType": "YulFunctionCall",
"src": "9983:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9975:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_925928610c89f9962390e67deb83043ed2d23dd135e3e8b4edf6d6df1604c773__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9853:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9868:4:1",
"type": ""
}
],
"src": "9702:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10298:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10308:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10320:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10331:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10316:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10316:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10308:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10355:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10366:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10351:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10351:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10374:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10380:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10370:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10370:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10344:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10344:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "10344:47:1"
},
{
"nodeType": "YulAssignment",
"src": "10400:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10534:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_937e13fd4d9f91ddff4a4f79387facbf51f96c87cd0246ca80ac3c35b7c3e57e_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "10408:124:1"
},
"nodeType": "YulFunctionCall",
"src": "10408:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10400:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_937e13fd4d9f91ddff4a4f79387facbf51f96c87cd0246ca80ac3c35b7c3e57e__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10278:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10293:4:1",
"type": ""
}
],
"src": "10127:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10723:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10733:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10745:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10756:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10741:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10741:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10733:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10780:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10791:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10776:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10776:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10799:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10805:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10795:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10795:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10769:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10769:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "10769:47:1"
},
{
"nodeType": "YulAssignment",
"src": "10825:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10959:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_d8c4da18c2460545a5e2633e0cfe081bae6f2f51faa9c165bf5d91103be94680_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "10833:124:1"
},
"nodeType": "YulFunctionCall",
"src": "10833:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10825:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_d8c4da18c2460545a5e2633e0cfe081bae6f2f51faa9c165bf5d91103be94680__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10703:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10718:4:1",
"type": ""
}
],
"src": "10552:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11075:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11085:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11097:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11108:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11093:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11093:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11085:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11165:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11178:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11189:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11174:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11174:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "11121:43:1"
},
"nodeType": "YulFunctionCall",
"src": "11121:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "11121:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11047:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11059:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11070:4:1",
"type": ""
}
],
"src": "10977:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11375:359:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11385:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11397:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11408:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11393:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11393:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11385:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11466:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11479:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11490:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11475:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11475:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "11422:43:1"
},
"nodeType": "YulFunctionCall",
"src": "11422:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "11422:71:1"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "11541:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11554:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11565:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11550:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11550:18:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "11503:37:1"
},
"nodeType": "YulFunctionCall",
"src": "11503:66:1"
},
"nodeType": "YulExpressionStatement",
"src": "11503:66:1"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "11617:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11630:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11641:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11626:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11626:18:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "11579:37:1"
},
"nodeType": "YulFunctionCall",
"src": "11579:66:1"
},
"nodeType": "YulExpressionStatement",
"src": "11579:66:1"
},
{
"expression": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "11699:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11712:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11723:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11708:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11708:18:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "11655:43:1"
},
"nodeType": "YulFunctionCall",
"src": "11655:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "11655:72:1"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_bool_t_bool_t_bytes32__to_t_uint256_t_bool_t_bool_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11323:9:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "11335:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "11343:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "11351:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11359:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11370:4:1",
"type": ""
}
],
"src": "11205:529:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11836:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11853:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "11858:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11846:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11846:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "11846:19:1"
},
{
"nodeType": "YulAssignment",
"src": "11874:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11893:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11898:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11889:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11889:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "11874:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "11808:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "11813:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "11824:11:1",
"type": ""
}
],
"src": "11740:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11959:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11969:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "11992:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "11974:17:1"
},
"nodeType": "YulFunctionCall",
"src": "11974:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "11969:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "12003:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12026:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "12008:17:1"
},
"nodeType": "YulFunctionCall",
"src": "12008:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12003:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "12166:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "12168:16:1"
},
"nodeType": "YulFunctionCall",
"src": "12168:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "12168:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12087:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12094:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12162:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "12090:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12090:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "12084:2:1"
},
"nodeType": "YulFunctionCall",
"src": "12084:81:1"
},
"nodeType": "YulIf",
"src": "12081:2:1"
},
{
"nodeType": "YulAssignment",
"src": "12198:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12209:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12212:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12205:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12205:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "12198:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "11946:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "11949:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "11955:3:1",
"type": ""
}
],
"src": "11915:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12268:143:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12278:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12301:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "12283:17:1"
},
"nodeType": "YulFunctionCall",
"src": "12283:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12278:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "12312:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12335:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "12317:17:1"
},
"nodeType": "YulFunctionCall",
"src": "12317:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12312:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "12359:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x12",
"nodeType": "YulIdentifier",
"src": "12361:16:1"
},
"nodeType": "YulFunctionCall",
"src": "12361:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "12361:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12356:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "12349:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12349:9:1"
},
"nodeType": "YulIf",
"src": "12346:2:1"
},
{
"nodeType": "YulAssignment",
"src": "12391:14:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12400:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12403:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "12396:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12396:9:1"
},
"variableNames": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "12391:1:1"
}
]
}
]
},
"name": "checked_div_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "12257:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "12260:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nodeType": "YulTypedName",
"src": "12266:1:1",
"type": ""
}
],
"src": "12226:185:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12462:146:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12472:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12495:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "12477:17:1"
},
"nodeType": "YulFunctionCall",
"src": "12477:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12472:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "12506:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12529:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "12511:17:1"
},
"nodeType": "YulFunctionCall",
"src": "12511:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12506:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "12553:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "12555:16:1"
},
"nodeType": "YulFunctionCall",
"src": "12555:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "12555:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12547:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12550:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "12544:2:1"
},
"nodeType": "YulFunctionCall",
"src": "12544:8:1"
},
"nodeType": "YulIf",
"src": "12541:2:1"
},
{
"nodeType": "YulAssignment",
"src": "12585:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12597:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12600:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "12593:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12593:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "12585:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "12448:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "12451:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "12457:4:1",
"type": ""
}
],
"src": "12417:191:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12659:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12669:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12698:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "12680:17:1"
},
"nodeType": "YulFunctionCall",
"src": "12680:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "12669:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "12641:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "12651:7:1",
"type": ""
}
],
"src": "12614:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12758:48:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12768:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12793:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "12786:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12786:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "12779:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12779:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "12768:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "12740:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "12750:7:1",
"type": ""
}
],
"src": "12716:90:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12857:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12867:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "12878:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "12867:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "12839:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "12849:7:1",
"type": ""
}
],
"src": "12812:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12950:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12960:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "12971:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "12960:7:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13014:5:1"
}
],
"functionName": {
"name": "validator_assert_t_enum$_Stage_$1399",
"nodeType": "YulIdentifier",
"src": "12977:36:1"
},
"nodeType": "YulFunctionCall",
"src": "12977:43:1"
},
"nodeType": "YulExpressionStatement",
"src": "12977:43:1"
}
]
},
"name": "cleanup_t_enum$_Stage_$1399",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "12932:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "12942:7:1",
"type": ""
}
],
"src": "12895:131:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13077:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13087:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13102:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13109:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "13098:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13098:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "13087:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13059:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "13069:7:1",
"type": ""
}
],
"src": "13032:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13209:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13219:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "13230:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "13219:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13191:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "13201:7:1",
"type": ""
}
],
"src": "13164:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13315:63:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13325:47:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13366:5:1"
}
],
"functionName": {
"name": "cleanup_t_enum$_Stage_$1399",
"nodeType": "YulIdentifier",
"src": "13338:27:1"
},
"nodeType": "YulFunctionCall",
"src": "13338:34:1"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "13325:9:1"
}
]
}
]
},
"name": "convert_t_enum$_Stage_$1399_to_t_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13295:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "13305:9:1",
"type": ""
}
],
"src": "13247:131:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13427:190:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13437:33:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13464:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "13446:17:1"
},
"nodeType": "YulFunctionCall",
"src": "13446:24:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13437:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "13560:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "13562:16:1"
},
"nodeType": "YulFunctionCall",
"src": "13562:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "13562:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13485:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13492:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "13482:2:1"
},
"nodeType": "YulFunctionCall",
"src": "13482:77:1"
},
"nodeType": "YulIf",
"src": "13479:2:1"
},
{
"nodeType": "YulAssignment",
"src": "13591:20:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13602:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13609:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13598:3:1"
},
"nodeType": "YulFunctionCall",
"src": "13598:13:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "13591:3:1"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13413:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "13423:3:1",
"type": ""
}
],
"src": "13384:233:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13670:53:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13680:37:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13711:5:1"
}
],
"functionName": {
"name": "leftAlign_t_uint160",
"nodeType": "YulIdentifier",
"src": "13691:19:1"
},
"nodeType": "YulFunctionCall",
"src": "13691:26:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "13680:7:1"
}
]
}
]
},
"name": "leftAlign_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13652:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "13662:7:1",
"type": ""
}
],
"src": "13623:100:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13776:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13786:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "13797:5:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "13786:7:1"
}
]
}
]
},
"name": "leftAlign_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13758:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "13768:7:1",
"type": ""
}
],
"src": "13729:79:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13861:47:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13871:31:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13896:5:1"
}
],
"functionName": {
"name": "shift_left_96",
"nodeType": "YulIdentifier",
"src": "13882:13:1"
},
"nodeType": "YulFunctionCall",
"src": "13882:20:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "13871:7:1"
}
]
}
]
},
"name": "leftAlign_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13843:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "13853:7:1",
"type": ""
}
],
"src": "13814:94:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13961:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13971:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "13982:5:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "13971:7:1"
}
]
}
]
},
"name": "leftAlign_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13943:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "13953:7:1",
"type": ""
}
],
"src": "13914:79:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14027:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14044:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14047:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14037:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14037:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "14037:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14141:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14144:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14134:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14134:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "14134:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14165:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14168:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "14158:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14158:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "14158:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "13999:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14213:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14230:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14233:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14223:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14223:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "14223:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14327:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14330:4:1",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14320:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14320:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "14320:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14351:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14354:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "14344:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14344:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "14344:15:1"
}
]
},
"name": "panic_error_0x12",
"nodeType": "YulFunctionDefinition",
"src": "14185:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14399:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14416:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14419:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14409:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14409:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "14409:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14513:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14516:4:1",
"type": "",
"value": "0x21"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14506:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14506:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "14506:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14537:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14540:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "14530:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14530:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "14530:15:1"
}
]
},
"name": "panic_error_0x21",
"nodeType": "YulFunctionDefinition",
"src": "14371:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14599:52:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "14609:35:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14634:2:1",
"type": "",
"value": "96"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "14638:5:1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "14630:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14630:14:1"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "14609:8:1"
}
]
}
]
},
"name": "shift_left_96",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "14580:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "14590:8:1",
"type": ""
}
],
"src": "14557:94:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14763:56:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "14785:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14793:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14781:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14781:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "14797:14:1",
"type": "",
"value": "Invalid hash"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14774:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14774:38:1"
},
"nodeType": "YulExpressionStatement",
"src": "14774:38:1"
}
]
},
"name": "store_literal_in_memory_221bd5754386c95752ab74f7e97227ba4816d3932c45cd8849529fe0a0a91415",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "14755:6:1",
"type": ""
}
],
"src": "14657:162:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14931:70:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "14953:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14961:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14949:3:1"
},
"nodeType": "YulFunctionCall",
"src": "14949:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "14965:28:1",
"type": "",
"value": "Player has already guessed"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14942:6:1"
},
"nodeType": "YulFunctionCall",
"src": "14942:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "14942:52:1"
}
]
},
"name": "store_literal_in_memory_3534324ea7145c8ba5c2f69123bc07ee62b8f043ff77a8fa6d98570b29f2b9ee",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "14923:6:1",
"type": ""
}
],
"src": "14825:176:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15113:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "15135:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15143:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15131:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15131:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "15147:31:1",
"type": "",
"value": "Reveal period must have ended"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15124:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15124:55:1"
},
"nodeType": "YulExpressionStatement",
"src": "15124:55:1"
}
]
},
"name": "store_literal_in_memory_513bf954671cf13eab8f88858f4e84af43d0ddecc8ae2d92744bd38e06795918",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "15105:6:1",
"type": ""
}
],
"src": "15007:179:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15298:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "15320:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15328:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15316:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15316:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "15332:32:1",
"type": "",
"value": "Player must send exactly 1 ETH"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15309:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15309:56:1"
},
"nodeType": "YulExpressionStatement",
"src": "15309:56:1"
}
]
},
"name": "store_literal_in_memory_685ad083f9f79b976b5237647a6eddcebb050a4f1b883e73ed91370dc380c4af",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "15290:6:1",
"type": ""
}
],
"src": "15192:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15484:68:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "15506:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15514:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15502:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15502:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "15518:26:1",
"type": "",
"value": "Player must have guessed"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15495:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15495:50:1"
},
"nodeType": "YulExpressionStatement",
"src": "15495:50:1"
}
]
},
"name": "store_literal_in_memory_716dfb84bf3b9229717f8d4eefea9bb15e2215425c5ad590666377dc2329f756",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "15476:6:1",
"type": ""
}
],
"src": "15378:174:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15664:72:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "15686:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15694:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15682:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15682:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "15698:30:1",
"type": "",
"value": "Winners must have been found"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15675:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15675:54:1"
},
"nodeType": "YulExpressionStatement",
"src": "15675:54:1"
}
]
},
"name": "store_literal_in_memory_92476ff9ce5f422a1e71c5bda11c38f5b07f6fbfeeb0a962b1c804ea0a02c63a",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "15656:6:1",
"type": ""
}
],
"src": "15558:178:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15848:124:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "15870:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15878:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15866:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15866:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "15882:34:1",
"type": "",
"value": "Reveal period must have begun an"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15859:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15859:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "15859:58:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "15938:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15946:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15934:3:1"
},
"nodeType": "YulFunctionCall",
"src": "15934:15:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "15951:13:1",
"type": "",
"value": "d not ended"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15927:6:1"
},
"nodeType": "YulFunctionCall",
"src": "15927:38:1"
},
"nodeType": "YulExpressionStatement",
"src": "15927:38:1"
}
]
},
"name": "store_literal_in_memory_925928610c89f9962390e67deb83043ed2d23dd135e3e8b4edf6d6df1604c773",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "15840:6:1",
"type": ""
}
],
"src": "15742:230:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16084:124:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "16106:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16114:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16102:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16102:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "16118:34:1",
"type": "",
"value": "Commit period must have begun an"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16095:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16095:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "16095:58:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "16174:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16182:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16170:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16170:15:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "16187:13:1",
"type": "",
"value": "d not ended"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16163:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16163:38:1"
},
"nodeType": "YulExpressionStatement",
"src": "16163:38:1"
}
]
},
"name": "store_literal_in_memory_937e13fd4d9f91ddff4a4f79387facbf51f96c87cd0246ca80ac3c35b7c3e57e",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "16076:6:1",
"type": ""
}
],
"src": "15978:230:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16320:71:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "16342:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16350:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16338:3:1"
},
"nodeType": "YulFunctionCall",
"src": "16338:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "16354:29:1",
"type": "",
"value": "Player has already revealed"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16331:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16331:53:1"
},
"nodeType": "YulExpressionStatement",
"src": "16331:53:1"
}
]
},
"name": "store_literal_in_memory_d8c4da18c2460545a5e2633e0cfe081bae6f2f51faa9c165bf5d91103be94680",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "16312:6:1",
"type": ""
}
],
"src": "16214:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16450:62:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "16484:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x21",
"nodeType": "YulIdentifier",
"src": "16486:16:1"
},
"nodeType": "YulFunctionCall",
"src": "16486:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "16486:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16473:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16480:1:1",
"type": "",
"value": "4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "16470:2:1"
},
"nodeType": "YulFunctionCall",
"src": "16470:12:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "16463:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16463:20:1"
},
"nodeType": "YulIf",
"src": "16460:2:1"
}
]
},
"name": "validator_assert_t_enum$_Stage_$1399",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "16443:5:1",
"type": ""
}
],
"src": "16397:115:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16561:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "16618:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16627:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16630:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "16620:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16620:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "16620:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16584:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16609:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "16591:17:1"
},
"nodeType": "YulFunctionCall",
"src": "16591:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "16581:2:1"
},
"nodeType": "YulFunctionCall",
"src": "16581:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "16574:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16574:43:1"
},
"nodeType": "YulIf",
"src": "16571:2:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "16554:5:1",
"type": ""
}
],
"src": "16518:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16689:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "16746:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16755:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16758:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "16748:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16748:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "16748:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16712:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16737:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "16719:17:1"
},
"nodeType": "YulFunctionCall",
"src": "16719:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "16709:2:1"
},
"nodeType": "YulFunctionCall",
"src": "16709:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "16702:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16702:43:1"
},
"nodeType": "YulIf",
"src": "16699:2:1"
}
]
},
"name": "validator_revert_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "16682:5:1",
"type": ""
}
],
"src": "16646:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16817:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "16874:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16883:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16886:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "16876:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16876:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "16876:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16840:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16865:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "16847:17:1"
},
"nodeType": "YulFunctionCall",
"src": "16847:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "16837:2:1"
},
"nodeType": "YulFunctionCall",
"src": "16837:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "16830:6:1"
},
"nodeType": "YulFunctionCall",
"src": "16830:43:1"
},
"nodeType": "YulIf",
"src": "16827:2:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "16810:5:1",
"type": ""
}
],
"src": "16774:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\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_decode_tuple_t_uint256t_bytes32(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\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_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(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_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_t_enum$_Stage_$1399_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_Stage_$1399_to_t_uint8(value))\n }\n\n function abi_encode_t_stringliteral_221bd5754386c95752ab74f7e97227ba4816d3932c45cd8849529fe0a0a91415_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 12)\n store_literal_in_memory_221bd5754386c95752ab74f7e97227ba4816d3932c45cd8849529fe0a0a91415(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_3534324ea7145c8ba5c2f69123bc07ee62b8f043ff77a8fa6d98570b29f2b9ee_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n store_literal_in_memory_3534324ea7145c8ba5c2f69123bc07ee62b8f043ff77a8fa6d98570b29f2b9ee(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_513bf954671cf13eab8f88858f4e84af43d0ddecc8ae2d92744bd38e06795918_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_513bf954671cf13eab8f88858f4e84af43d0ddecc8ae2d92744bd38e06795918(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_685ad083f9f79b976b5237647a6eddcebb050a4f1b883e73ed91370dc380c4af_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_685ad083f9f79b976b5237647a6eddcebb050a4f1b883e73ed91370dc380c4af(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_716dfb84bf3b9229717f8d4eefea9bb15e2215425c5ad590666377dc2329f756_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_716dfb84bf3b9229717f8d4eefea9bb15e2215425c5ad590666377dc2329f756(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_92476ff9ce5f422a1e71c5bda11c38f5b07f6fbfeeb0a962b1c804ea0a02c63a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_92476ff9ce5f422a1e71c5bda11c38f5b07f6fbfeeb0a962b1c804ea0a02c63a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_925928610c89f9962390e67deb83043ed2d23dd135e3e8b4edf6d6df1604c773_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_925928610c89f9962390e67deb83043ed2d23dd135e3e8b4edf6d6df1604c773(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_937e13fd4d9f91ddff4a4f79387facbf51f96c87cd0246ca80ac3c35b7c3e57e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_937e13fd4d9f91ddff4a4f79387facbf51f96c87cd0246ca80ac3c35b7c3e57e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_d8c4da18c2460545a5e2633e0cfe081bae6f2f51faa9c165bf5d91103be94680_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n store_literal_in_memory_d8c4da18c2460545a5e2633e0cfe081bae6f2f51faa9c165bf5d91103be94680(pos)\n end := add(pos, 32)\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_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_uint256_t_bytes32__to_t_address_t_uint256_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_enum$_Stage_$1399__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_enum$_Stage_$1399_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_221bd5754386c95752ab74f7e97227ba4816d3932c45cd8849529fe0a0a91415__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_221bd5754386c95752ab74f7e97227ba4816d3932c45cd8849529fe0a0a91415_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_3534324ea7145c8ba5c2f69123bc07ee62b8f043ff77a8fa6d98570b29f2b9ee__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3534324ea7145c8ba5c2f69123bc07ee62b8f043ff77a8fa6d98570b29f2b9ee_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_513bf954671cf13eab8f88858f4e84af43d0ddecc8ae2d92744bd38e06795918__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_513bf954671cf13eab8f88858f4e84af43d0ddecc8ae2d92744bd38e06795918_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_685ad083f9f79b976b5237647a6eddcebb050a4f1b883e73ed91370dc380c4af__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_685ad083f9f79b976b5237647a6eddcebb050a4f1b883e73ed91370dc380c4af_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_716dfb84bf3b9229717f8d4eefea9bb15e2215425c5ad590666377dc2329f756__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_716dfb84bf3b9229717f8d4eefea9bb15e2215425c5ad590666377dc2329f756_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_92476ff9ce5f422a1e71c5bda11c38f5b07f6fbfeeb0a962b1c804ea0a02c63a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_92476ff9ce5f422a1e71c5bda11c38f5b07f6fbfeeb0a962b1c804ea0a02c63a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_925928610c89f9962390e67deb83043ed2d23dd135e3e8b4edf6d6df1604c773__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_925928610c89f9962390e67deb83043ed2d23dd135e3e8b4edf6d6df1604c773_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_937e13fd4d9f91ddff4a4f79387facbf51f96c87cd0246ca80ac3c35b7c3e57e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_937e13fd4d9f91ddff4a4f79387facbf51f96c87cd0246ca80ac3c35b7c3e57e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_d8c4da18c2460545a5e2633e0cfe081bae6f2f51faa9c165bf5d91103be94680__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_d8c4da18c2460545a5e2633e0cfe081bae6f2f51faa9c165bf5d91103be94680_to_t_string_memory_ptr_fromStack( tail)\n\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 abi_encode_tuple_t_uint256_t_bool_t_bool_t_bytes32__to_t_uint256_t_bool_t_bool_t_bytes32__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bool_to_t_bool_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bool_to_t_bool_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value3, add(headStart, 96))\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 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_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 function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_enum$_Stage_$1399(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_Stage_$1399(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_enum$_Stage_$1399_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_Stage_$1399(value)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function store_literal_in_memory_221bd5754386c95752ab74f7e97227ba4816d3932c45cd8849529fe0a0a91415(memPtr) {\n\n mstore(add(memPtr, 0), \"Invalid hash\")\n\n }\n\n function store_literal_in_memory_3534324ea7145c8ba5c2f69123bc07ee62b8f043ff77a8fa6d98570b29f2b9ee(memPtr) {\n\n mstore(add(memPtr, 0), \"Player has already guessed\")\n\n }\n\n function store_literal_in_memory_513bf954671cf13eab8f88858f4e84af43d0ddecc8ae2d92744bd38e06795918(memPtr) {\n\n mstore(add(memPtr, 0), \"Reveal period must have ended\")\n\n }\n\n function store_literal_in_memory_685ad083f9f79b976b5237647a6eddcebb050a4f1b883e73ed91370dc380c4af(memPtr) {\n\n mstore(add(memPtr, 0), \"Player must send exactly 1 ETH\")\n\n }\n\n function store_literal_in_memory_716dfb84bf3b9229717f8d4eefea9bb15e2215425c5ad590666377dc2329f756(memPtr) {\n\n mstore(add(memPtr, 0), \"Player must have guessed\")\n\n }\n\n function store_literal_in_memory_92476ff9ce5f422a1e71c5bda11c38f5b07f6fbfeeb0a962b1c804ea0a02c63a(memPtr) {\n\n mstore(add(memPtr, 0), \"Winners must have been found\")\n\n }\n\n function store_literal_in_memory_925928610c89f9962390e67deb83043ed2d23dd135e3e8b4edf6d6df1604c773(memPtr) {\n\n mstore(add(memPtr, 0), \"Reveal period must have begun an\")\n\n mstore(add(memPtr, 32), \"d not ended\")\n\n }\n\n function store_literal_in_memory_937e13fd4d9f91ddff4a4f79387facbf51f96c87cd0246ca80ac3c35b7c3e57e(memPtr) {\n\n mstore(add(memPtr, 0), \"Commit period must have begun an\")\n\n mstore(add(memPtr, 32), \"d not ended\")\n\n }\n\n function store_literal_in_memory_d8c4da18c2460545a5e2633e0cfe081bae6f2f51faa9c165bf5d91103be94680(memPtr) {\n\n mstore(add(memPtr, 0), \"Player has already revealed\")\n\n }\n\n function validator_assert_t_enum$_Stage_$1399(value) {\n if iszero(lt(value, 4)) { panic_error_0x21() }\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {
"1375": [
{
"length": 32,
"start": 1202
},
{
"length": 32,
"start": 3017
},
{
"length": 32,
"start": 3136
},
{
"length": 32,
"start": 4573
},
{
"length": 32,
"start": 4963
},
{
"length": 32,
"start": 5039
}
],
"1377": [
{
"length": 32,
"start": 1169
},
{
"length": 32,
"start": 2984
},
{
"length": 32,
"start": 3103
},
{
"length": 32,
"start": 3830
},
{
"length": 32,
"start": 5006
}
],
"1379": [
{
"length": 32,
"start": 1136
},
{
"length": 32,
"start": 3070
},
{
"length": 32,
"start": 3866
}
]
},
"linkReferences": {},
"object": "6080604052600436106101095760003560e01c8063a2fb117511610095578063be9a655511610064578063be9a65551461035b578063cbf4bb9a14610386578063d9ca55cd146103b1578063e2eb41ff146103ee578063e4aa533e1461042e57610109565b8063a2fb11751461029d578063a75f27cb146102da578063ad7a672f14610305578063b250717a1461033057610109565b80635bf5d54c116100dc5780635bf5d54c146101c857806364b1258a146101f35780636f8338111461021e578063886a6de11461024957806391c05b0b1461027457610109565b80631f4913891461010e578063307f6b121461014b5780634036778f1461017457806350aa13d41461019d575b600080fd5b34801561011a57600080fd5b50610135600480360381019061013091906114d6565b61044a565b6040516101429190611899565b60405180910390f35b34801561015757600080fd5b50610172600480360381019061016d91906114d6565b61046e565b005b34801561018057600080fd5b5061019b600480360381019061019691906114ff565b610ba6565b005b3480156101a957600080fd5b506101b2610ed5565b6040516101bf9190611899565b60405180910390f35b3480156101d457600080fd5b506101dd610edb565b6040516101ea919061175e565b60405180910390f35b3480156101ff57600080fd5b50610208610eee565b6040516102159190611899565b60405180910390f35b34801561022a57600080fd5b50610233610ef4565b6040516102409190611899565b60405180910390f35b34801561025557600080fd5b5061025e610f18565b60405161026b9190611899565b60405180910390f35b34801561028057600080fd5b5061029b600480360381019061029691906114d6565b610f3c565b005b3480156102a957600080fd5b506102c460048036038101906102bf91906114d6565b61118a565b6040516102d19190611743565b60405180910390f35b3480156102e657600080fd5b506102ef6111c9565b6040516102fc9190611899565b60405180910390f35b34801561031157600080fd5b5061031a6111cf565b6040516103279190611899565b60405180910390f35b34801561033c57600080fd5b506103456111d5565b6040516103529190611899565b60405180910390f35b34801561036757600080fd5b506103706111db565b60405161037d9190611899565b60405180910390f35b34801561039257600080fd5b5061039b6111ff565b6040516103a89190611899565b60405180910390f35b3480156103bd57600080fd5b506103d860048036038101906103d391906114d6565b611205565b6040516103e59190611743565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190611484565b611238565b60405161042594939291906118b4565b60405180910390f35b610448600480360381019061044391906114ad565b611282565b005b6007818154811061045a57600080fd5b906000526020600020016000915090505481565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006104db919061190a565b6104e5919061190a565b421015610527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051e906117b9565b60405180910390fd5b60026003811115610561577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600660009054906101000a900460ff1660038111156105a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b106105b357600080fd5b600160038111156105ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600660009054906101000a900460ff166003811115610635577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b10156106cb57600780549050600360008282546106529190611960565b925050819055506001600660006101000a81548160ff021916908360038111156106a5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055504760048190555060016000808282546106c3919061190a565b925050819055505b60006008805490501415610877576008600a600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460076000815481106107ad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154111561081c5760035460076000815481106107fc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001546108119190611991565b600281905550610876565b6007600081548110610857577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015460035461086f9190611991565b6002819055505b5b6000805490505b600780549050811080156108a9575060008214806108a85750816000546108a5919061190a565b81105b5b15610b1f576000600354600783815481106108ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001541115610957576003546007838154811061093b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001546109509190611991565b90506109ac565b60078281548110610991577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001546003546109a99190611991565b90505b600254811015610a695760088054905060058190556001819055506008600a600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600281905550610b0b565b600254811415610b0a576008600a600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b508080610b1790611a3c565b91505061087e565b6001600780549050610b319190611991565b811415610b8a576002600660006101000a81548160ff02191690836003811115610b84577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055505b81600080828254610b9b919061190a565b925050819055505050565b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610bf2919061190a565b4210158015610c7757507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610c69919061190a565b610c73919061190a565b4211155b610cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cad90611839565b60405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160019054906101000a900460ff1615610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4290611879565b60405180910390fd5b8060010160009054906101000a900460ff16610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d93906117f9565b60405180910390fd5b8060020154338484604051602001610db693929190611706565b6040516020818303038152906040528051906020012014610e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0390611779565b60405180910390fd5b60018160010160016101000a81548160ff0219169083151502179055508260036000828254610e3b919061190a565b9250508190555033600a6000600780549050815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060078390806001815401808255809150506001900390600052602060002001600090919091909150556007805490508160000181905550505050565b60025481565b600660009054906101000a900460ff1681565b60015481565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60026003811115610f76577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600660009054906101000a900460ff166003811115610fbe577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14610ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff590611819565b60405180910390fd5b600060015490505b600880549050811080156110315750600082148061103057508160015461102d919061190a565b81105b5b1561116d5760088181548110611070577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6005546008805490506110c79190611991565b6004546110d49190611960565b9081150290604051600060405180830381858888f193505050505060016008805490506111019190611991565b81141561115a576003600660006101000a81548160ff02191690836003811115611154577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055505b808061116590611a3c565b915050611006565b508060016000828254611180919061190a565b9250508190555050565b6008818154811061119a57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60045481565b60035481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60055481565b600a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16908060010160019054906101000a900460ff16908060020154905084565b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff1615611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e90611799565b60405180910390fd5b670de0b6b3a76400003414611361576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611358906117d9565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000042101580156113dc57507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006113d8919061190a565b4211155b61141b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141290611859565b60405180910390fd5b60018160010160006101000a81548160ff0219169083151502179055508181600201819055505050565b60008135905061145481611d28565b92915050565b60008135905061146981611d3f565b92915050565b60008135905061147e81611d56565b92915050565b60006020828403121561149657600080fd5b60006114a484828501611445565b91505092915050565b6000602082840312156114bf57600080fd5b60006114cd8482850161145a565b91505092915050565b6000602082840312156114e857600080fd5b60006114f68482850161146f565b91505092915050565b6000806040838503121561151257600080fd5b60006115208582860161146f565b92505060206115318582860161145a565b9150509250929050565b611544816119c5565b82525050565b61155b611556826119c5565b611a85565b82525050565b61156a816119d7565b82525050565b611579816119e3565b82525050565b61159061158b826119e3565b611a97565b82525050565b61159f81611a2a565b82525050565b60006115b2600c836118f9565b91506115bd82611b57565b602082019050919050565b60006115d5601a836118f9565b91506115e082611b80565b602082019050919050565b60006115f8601d836118f9565b915061160382611ba9565b602082019050919050565b600061161b601e836118f9565b915061162682611bd2565b602082019050919050565b600061163e6018836118f9565b915061164982611bfb565b602082019050919050565b6000611661601c836118f9565b915061166c82611c24565b602082019050919050565b6000611684602b836118f9565b915061168f82611c4d565b604082019050919050565b60006116a7602b836118f9565b91506116b282611c9c565b604082019050919050565b60006116ca601b836118f9565b91506116d582611ceb565b602082019050919050565b6116e981611a20565b82525050565b6117006116fb82611a20565b611ab3565b82525050565b6000611712828661154a565b60148201915061172282856116ef565b602082019150611732828461157f565b602082019150819050949350505050565b6000602082019050611758600083018461153b565b92915050565b60006020820190506117736000830184611596565b92915050565b60006020820190508181036000830152611792816115a5565b9050919050565b600060208201905081810360008301526117b2816115c8565b9050919050565b600060208201905081810360008301526117d2816115eb565b9050919050565b600060208201905081810360008301526117f28161160e565b9050919050565b6000602082019050818103600083015261181281611631565b9050919050565b6000602082019050818103600083015261183281611654565b9050919050565b6000602082019050818103600083015261185281611677565b9050919050565b600060208201905081810360008301526118728161169a565b9050919050565b60006020820190508181036000830152611892816116bd565b9050919050565b60006020820190506118ae60008301846116e0565b92915050565b60006080820190506118c960008301876116e0565b6118d66020830186611561565b6118e36040830185611561565b6118f06060830184611570565b95945050505050565b600082825260208201905092915050565b600061191582611a20565b915061192083611a20565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561195557611954611abd565b5b828201905092915050565b600061196b82611a20565b915061197683611a20565b92508261198657611985611aec565b5b828204905092915050565b600061199c82611a20565b91506119a783611a20565b9250828210156119ba576119b9611abd565b5b828203905092915050565b60006119d082611a00565b9050919050565b60008115159050919050565b6000819050919050565b60008190506119fb82611d14565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611a35826119ed565b9050919050565b6000611a4782611a20565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611a7a57611a79611abd565b5b600182019050919050565b6000611a9082611aa1565b9050919050565b6000819050919050565b6000611aac82611b4a565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60008160601b9050919050565b7f496e76616c696420686173680000000000000000000000000000000000000000600082015250565b7f506c617965722068617320616c72656164792067756573736564000000000000600082015250565b7f52657665616c20706572696f64206d757374206861766520656e646564000000600082015250565b7f506c61796572206d7573742073656e642065786163746c792031204554480000600082015250565b7f506c61796572206d757374206861766520677565737365640000000000000000600082015250565b7f57696e6e657273206d7573742068617665206265656e20666f756e6400000000600082015250565b7f52657665616c20706572696f64206d757374206861766520626567756e20616e60008201527f64206e6f7420656e646564000000000000000000000000000000000000000000602082015250565b7f436f6d6d697420706572696f64206d757374206861766520626567756e20616e60008201527f64206e6f7420656e646564000000000000000000000000000000000000000000602082015250565b7f506c617965722068617320616c72656164792072657665616c65640000000000600082015250565b60048110611d2557611d24611b1b565b5b50565b611d31816119c5565b8114611d3c57600080fd5b50565b611d48816119e3565b8114611d5357600080fd5b50565b611d5f81611a20565b8114611d6a57600080fd5b5056fea2646970667358221220ae03d3244e988f42e3cb310464917fb064856ffd178e3c5826758a553b11a2c864736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x109 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA2FB1175 GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xBE9A6555 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xBE9A6555 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xCBF4BB9A EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0xD9CA55CD EQ PUSH2 0x3B1 JUMPI DUP1 PUSH4 0xE2EB41FF EQ PUSH2 0x3EE JUMPI DUP1 PUSH4 0xE4AA533E EQ PUSH2 0x42E JUMPI PUSH2 0x109 JUMP JUMPDEST DUP1 PUSH4 0xA2FB1175 EQ PUSH2 0x29D JUMPI DUP1 PUSH4 0xA75F27CB EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0xAD7A672F EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0xB250717A EQ PUSH2 0x330 JUMPI PUSH2 0x109 JUMP JUMPDEST DUP1 PUSH4 0x5BF5D54C GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x5BF5D54C EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x64B1258A EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x6F833811 EQ PUSH2 0x21E JUMPI DUP1 PUSH4 0x886A6DE1 EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0x91C05B0B EQ PUSH2 0x274 JUMPI PUSH2 0x109 JUMP JUMPDEST DUP1 PUSH4 0x1F491389 EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0x307F6B12 EQ PUSH2 0x14B JUMPI DUP1 PUSH4 0x4036778F EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0x50AA13D4 EQ PUSH2 0x19D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x135 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x130 SWAP2 SWAP1 PUSH2 0x14D6 JUMP JUMPDEST PUSH2 0x44A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x142 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x157 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x172 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16D SWAP2 SWAP1 PUSH2 0x14D6 JUMP JUMPDEST PUSH2 0x46E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x196 SWAP2 SWAP1 PUSH2 0x14FF JUMP JUMPDEST PUSH2 0xBA6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B2 PUSH2 0xED5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DD PUSH2 0xEDB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP2 SWAP1 PUSH2 0x175E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0xEEE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x233 PUSH2 0xEF4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x240 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25E PUSH2 0xF18 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x29B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x14D6 JUMP JUMPDEST PUSH2 0xF3C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BF SWAP2 SWAP1 PUSH2 0x14D6 JUMP JUMPDEST PUSH2 0x118A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D1 SWAP2 SWAP1 PUSH2 0x1743 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EF PUSH2 0x11C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FC SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x311 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31A PUSH2 0x11CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x327 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x345 PUSH2 0x11D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x352 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x367 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x370 PUSH2 0x11DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37D SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39B PUSH2 0x11FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x14D6 JUMP JUMPDEST PUSH2 0x1205 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E5 SWAP2 SWAP1 PUSH2 0x1743 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x415 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x410 SWAP2 SWAP1 PUSH2 0x1484 JUMP JUMPDEST PUSH2 0x1238 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x425 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x18B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x448 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x443 SWAP2 SWAP1 PUSH2 0x14AD JUMP JUMPDEST PUSH2 0x1282 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x7 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x45A 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 PUSH32 0x0 PUSH32 0x0 PUSH32 0x0 PUSH2 0x4DB SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST TIMESTAMP LT ISZERO PUSH2 0x527 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51E SWAP1 PUSH2 0x17B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x561 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x5A9 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST LT PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x5ED JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x635 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST LT ISZERO PUSH2 0x6CB JUMPI PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x652 SWAP2 SWAP1 PUSH2 0x1960 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x6A5 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP SELFBALANCE PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x6C3 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP1 SLOAD SWAP1 POP EQ ISZERO PUSH2 0x877 JUMPI PUSH1 0x8 PUSH1 0xA PUSH1 0x0 DUP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 SLOAD PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x7AD JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD GT ISZERO PUSH2 0x81C JUMPI PUSH1 0x3 SLOAD PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x7FC JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH2 0x811 SWAP2 SWAP1 PUSH2 0x1991 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH2 0x876 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x857 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH1 0x3 SLOAD PUSH2 0x86F SWAP2 SWAP1 PUSH2 0x1991 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE POP JUMPDEST JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP JUMPDEST PUSH1 0x7 DUP1 SLOAD SWAP1 POP DUP2 LT DUP1 ISZERO PUSH2 0x8A9 JUMPI POP PUSH1 0x0 DUP3 EQ DUP1 PUSH2 0x8A8 JUMPI POP DUP2 PUSH1 0x0 SLOAD PUSH2 0x8A5 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST DUP2 LT JUMPDEST JUMPDEST ISZERO PUSH2 0xB1F JUMPI PUSH1 0x0 PUSH1 0x3 SLOAD PUSH1 0x7 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x8ED JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD GT ISZERO PUSH2 0x957 JUMPI PUSH1 0x3 SLOAD PUSH1 0x7 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x93B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH2 0x950 SWAP2 SWAP1 PUSH2 0x1991 JUMP JUMPDEST SWAP1 POP PUSH2 0x9AC JUMP JUMPDEST PUSH1 0x7 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x991 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH1 0x3 SLOAD PUSH2 0x9A9 SWAP2 SWAP1 PUSH2 0x1991 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x2 SLOAD DUP2 LT ISZERO PUSH2 0xA69 JUMPI PUSH1 0x8 DUP1 SLOAD SWAP1 POP PUSH1 0x5 DUP2 SWAP1 SSTORE PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH1 0x8 PUSH1 0xA PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH2 0xB0B JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 EQ ISZERO PUSH2 0xB0A JUMPI PUSH1 0x8 PUSH1 0xA PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST JUMPDEST POP DUP1 DUP1 PUSH2 0xB17 SWAP1 PUSH2 0x1A3C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x87E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x7 DUP1 SLOAD SWAP1 POP PUSH2 0xB31 SWAP2 SWAP1 PUSH2 0x1991 JUMP JUMPDEST DUP2 EQ ISZERO PUSH2 0xB8A JUMPI PUSH1 0x2 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xB84 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP JUMPDEST DUP2 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0xB9B SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH32 0x0 PUSH2 0xBF2 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST TIMESTAMP LT ISZERO DUP1 ISZERO PUSH2 0xC77 JUMPI POP PUSH32 0x0 PUSH32 0x0 PUSH32 0x0 PUSH2 0xC69 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST PUSH2 0xC73 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST TIMESTAMP GT ISZERO JUMPDEST PUSH2 0xCB6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCAD SWAP1 PUSH2 0x1839 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x9 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xD4B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD42 SWAP1 PUSH2 0x1879 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xD9C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD93 SWAP1 PUSH2 0x17F9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 ADD SLOAD CALLER DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDB6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1706 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0xE0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE03 SWAP1 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xE3B SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP CALLER PUSH1 0xA PUSH1 0x0 PUSH1 0x7 DUP1 SLOAD SWAP1 POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x7 DUP4 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH1 0x7 DUP1 SLOAD SWAP1 POP DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xF76 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xFBE JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xFFE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFF5 SWAP1 PUSH2 0x1819 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD SWAP1 POP JUMPDEST PUSH1 0x8 DUP1 SLOAD SWAP1 POP DUP2 LT DUP1 ISZERO PUSH2 0x1031 JUMPI POP PUSH1 0x0 DUP3 EQ DUP1 PUSH2 0x1030 JUMPI POP DUP2 PUSH1 0x1 SLOAD PUSH2 0x102D SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST DUP2 LT JUMPDEST JUMPDEST ISZERO PUSH2 0x116D JUMPI PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1070 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x5 SLOAD PUSH1 0x8 DUP1 SLOAD SWAP1 POP PUSH2 0x10C7 SWAP2 SWAP1 PUSH2 0x1991 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x10D4 SWAP2 SWAP1 PUSH2 0x1960 JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP POP PUSH1 0x1 PUSH1 0x8 DUP1 SLOAD SWAP1 POP PUSH2 0x1101 SWAP2 SWAP1 PUSH2 0x1991 JUMP JUMPDEST DUP2 EQ ISZERO PUSH2 0x115A JUMPI PUSH1 0x3 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1154 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP JUMPDEST DUP1 DUP1 PUSH2 0x1165 SWAP1 PUSH2 0x1A3C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1006 JUMP JUMPDEST POP DUP1 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1180 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x119A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1317 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x130E SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH8 0xDE0B6B3A7640000 CALLVALUE EQ PUSH2 0x1361 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1358 SWAP1 PUSH2 0x17D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 TIMESTAMP LT ISZERO DUP1 ISZERO PUSH2 0x13DC JUMPI POP PUSH32 0x0 PUSH32 0x0 PUSH2 0x13D8 SWAP2 SWAP1 PUSH2 0x190A JUMP JUMPDEST TIMESTAMP GT ISZERO JUMPDEST PUSH2 0x141B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1412 SWAP1 PUSH2 0x1859 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1454 DUP2 PUSH2 0x1D28 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1469 DUP2 PUSH2 0x1D3F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x147E DUP2 PUSH2 0x1D56 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1496 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x14A4 DUP5 DUP3 DUP6 ADD PUSH2 0x1445 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x14CD DUP5 DUP3 DUP6 ADD PUSH2 0x145A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x14F6 DUP5 DUP3 DUP6 ADD PUSH2 0x146F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1520 DUP6 DUP3 DUP7 ADD PUSH2 0x146F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1531 DUP6 DUP3 DUP7 ADD PUSH2 0x145A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1544 DUP2 PUSH2 0x19C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x155B PUSH2 0x1556 DUP3 PUSH2 0x19C5 JUMP JUMPDEST PUSH2 0x1A85 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x156A DUP2 PUSH2 0x19D7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1579 DUP2 PUSH2 0x19E3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1590 PUSH2 0x158B DUP3 PUSH2 0x19E3 JUMP JUMPDEST PUSH2 0x1A97 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x159F DUP2 PUSH2 0x1A2A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B2 PUSH1 0xC DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BD DUP3 PUSH2 0x1B57 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15D5 PUSH1 0x1A DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x15E0 DUP3 PUSH2 0x1B80 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15F8 PUSH1 0x1D DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x1603 DUP3 PUSH2 0x1BA9 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x161B PUSH1 0x1E DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x1626 DUP3 PUSH2 0x1BD2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x163E PUSH1 0x18 DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x1649 DUP3 PUSH2 0x1BFB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1661 PUSH1 0x1C DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x166C DUP3 PUSH2 0x1C24 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1684 PUSH1 0x2B DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x168F DUP3 PUSH2 0x1C4D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A7 PUSH1 0x2B DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x16B2 DUP3 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16CA PUSH1 0x1B DUP4 PUSH2 0x18F9 JUMP JUMPDEST SWAP2 POP PUSH2 0x16D5 DUP3 PUSH2 0x1CEB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16E9 DUP2 PUSH2 0x1A20 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1700 PUSH2 0x16FB DUP3 PUSH2 0x1A20 JUMP JUMPDEST PUSH2 0x1AB3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1712 DUP3 DUP7 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1722 DUP3 DUP6 PUSH2 0x16EF JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x1732 DUP3 DUP5 PUSH2 0x157F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1758 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x153B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1773 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1596 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1792 DUP2 PUSH2 0x15A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x17B2 DUP2 PUSH2 0x15C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x17D2 DUP2 PUSH2 0x15EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x17F2 DUP2 PUSH2 0x160E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1812 DUP2 PUSH2 0x1631 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1832 DUP2 PUSH2 0x1654 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1852 DUP2 PUSH2 0x1677 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1872 DUP2 PUSH2 0x169A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1892 DUP2 PUSH2 0x16BD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x18AE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x16E0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x18C9 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x16E0 JUMP JUMPDEST PUSH2 0x18D6 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1561 JUMP JUMPDEST PUSH2 0x18E3 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1561 JUMP JUMPDEST PUSH2 0x18F0 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1570 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1915 DUP3 PUSH2 0x1A20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1920 DUP4 PUSH2 0x1A20 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1955 JUMPI PUSH2 0x1954 PUSH2 0x1ABD JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x196B DUP3 PUSH2 0x1A20 JUMP JUMPDEST SWAP2 POP PUSH2 0x1976 DUP4 PUSH2 0x1A20 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1986 JUMPI PUSH2 0x1985 PUSH2 0x1AEC JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199C DUP3 PUSH2 0x1A20 JUMP JUMPDEST SWAP2 POP PUSH2 0x19A7 DUP4 PUSH2 0x1A20 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x19BA JUMPI PUSH2 0x19B9 PUSH2 0x1ABD JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19D0 DUP3 PUSH2 0x1A00 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x19FB DUP3 PUSH2 0x1D14 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A35 DUP3 PUSH2 0x19ED JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A47 DUP3 PUSH2 0x1A20 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x1A7A JUMPI PUSH2 0x1A79 PUSH2 0x1ABD JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A90 DUP3 PUSH2 0x1AA1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AAC DUP3 PUSH2 0x1B4A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C696420686173680000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x506C617965722068617320616C72656164792067756573736564000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x52657665616C20706572696F64206D757374206861766520656E646564000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x506C61796572206D7573742073656E642065786163746C792031204554480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x506C61796572206D757374206861766520677565737365640000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x57696E6E657273206D7573742068617665206265656E20666F756E6400000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x52657665616C20706572696F64206D757374206861766520626567756E20616E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x64206E6F7420656E646564000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x436F6D6D697420706572696F64206D757374206861766520626567756E20616E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x64206E6F7420656E646564000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x506C617965722068617320616C72656164792072657665616C65640000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x1D25 JUMPI PUSH2 0x1D24 PUSH2 0x1B1B JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x1D31 DUP2 PUSH2 0x19C5 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1D48 DUP2 PUSH2 0x19E3 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1D5F DUP2 PUSH2 0x1A20 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAE SUB 0xD3 0x24 0x4E SWAP9 DUP16 TIMESTAMP 0xE3 0xCB BALANCE DIV PUSH5 0x917FB06485 PUSH16 0xFD178E3C5826758A553B11A2C864736F PUSH13 0x63430008010033000000000000 ",
"sourceMap": "16574:6352:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17719:21;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20215:1890;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19146:827;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16973:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17257:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16889:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16668:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16747;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22315:609;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17775:24;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16826:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17065:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16606:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17181:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17935:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17836:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;18460:495;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17719:21;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20215:1890::-;20321:14;20304;20296:5;:22;;;;:::i;:::-;:39;;;;:::i;:::-;20277:15;:58;;20269:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;20402:18;20387:33;;;;;;;;;;;;;;;;:12;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;20379:42;;;;;;20523:23;20508:38;;;;;;;;;;;;;;;;:12;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;20504:227;;;20573:7;:14;;;;20562:7;;:25;;;;;;;:::i;:::-;;;;;;;;20616:23;20601:12;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20668:21;20653:12;:36;;;;20719:1;20703:12;;:17;;;;;;;:::i;:::-;;;;;;;;20504:227;20860:1;20842:7;:14;;;;:19;20838:244;;;20877:7;20890:13;:16;20904:1;20890:16;;;;;;;;;;;;;;;;;;;;;20877:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20969:7;;20956;20964:1;20956:10;;;;;;;;;;;;;;;;;;;;;;;;:20;20952:119;;;21008:7;;20995;21003:1;20995:10;;;;;;;;;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;20978:14;:37;;;;20952:119;;;21061:7;21069:1;21061:10;;;;;;;;;;;;;;;;;;;;;;;;21051:7;;:20;;;;:::i;:::-;21034:14;:37;;;;20952:119;20838:244;21091:9;21103:12;;21091:24;;21125:789;21136:7;:14;;;;21132:1;:18;:64;;;;;21165:1;21155:6;:11;:40;;;;21189:6;21174:12;;:21;;;;:::i;:::-;21170:1;:25;21155:40;21132:64;21125:789;;;21217:18;21297:7;;21284;21292:1;21284:10;;;;;;;;;;;;;;;;;;;;;;;;:20;21280:111;;;21332:7;;21319;21327:1;21319:10;;;;;;;;;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;21306:33;;21280:111;;;21381:7;21389:1;21381:10;;;;;;;;;;;;;;;;;;;;;;;;21371:7;;:20;;;;:::i;:::-;21358:33;;21280:111;21491:14;;21478:10;:27;21474:336;;;21618:7;:14;;;;21601;:31;;;21582:16;:50;;;;21650:7;21663:13;:16;21677:1;21663:16;;;;;;;;;;;;;;;;;;;;;21650:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21715:10;21698:14;:27;;;;21474:336;;;21764:14;;21750:10;:28;21746:64;;;21780:7;21793:13;:16;21807:1;21793:16;;;;;;;;;;;;;;;;;;;;;21780:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21746:64;21474:336;21125:789;21198:3;;;;;:::i;:::-;;;;21125:789;;;21949:1;21932:7;:14;;;;:18;;;;:::i;:::-;21927:1;:23;21923:62;;;21967:18;21952:12;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21923:62;22092:6;22076:12;;:22;;;;;;;:::i;:::-;;;;;;;;20215:1890;;:::o;19146:827::-;19253:14;19245:5;:22;;;;:::i;:::-;19226:15;:41;;:103;;;;;19315:14;19298;19290:5;:22;;;;:::i;:::-;:39;;;;:::i;:::-;19271:15;:58;;19226:103;19218:159;;;;;;;;;;;;:::i;:::-;;;;;;;;;19387:21;19411:7;:19;19419:10;19411:19;;;;;;;;;;;;;;;19387:43;;19449:6;:16;;;;;;;;;;;;19448:17;19440:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;19515:6;:17;;;;;;;;;;;;19507:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;19704:6;:17;;;19662:10;19674:7;19683:15;19645:54;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19635:65;;;;;;:86;19627:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;19806:4;19787:6;:16;;;:23;;;;;;;;;;;;;;;;;;19831:7;19820;;:18;;;;;;;:::i;:::-;;;;;;;;19880:10;19848:13;:29;19862:7;:14;;;;19848:29;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19900:7;19913;19900:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19952:7;:14;;;;19931:6;:18;;:35;;;;19146:827;;;:::o;16973:29::-;;;;:::o;17257:25::-;;;;;;;;;;;;;:::o;16889:31::-;;;;:::o;16668:39::-;;;:::o;16747:::-;;;:::o;22315:609::-;22392:18;22376:34;;;;;;;;;;;;;;;;:12;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;22368:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;22458:9;22470:16;;22458:28;;22453:348;22492:7;:14;;;;22488:1;:18;:68;;;;;22521:1;22511:6;:11;:44;;;;22549:6;22530:16;;:25;;;;:::i;:::-;22526:1;:29;22511:44;22488:68;22453:348;;;22650:7;22658:1;22650:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22642:24;;:74;22700:14;;22683:7;:14;;;;:31;;;;:::i;:::-;22667:12;;:48;;;;:::i;:::-;22642:74;;;;;;;;;;;;;;;;;;;;;;;;22755:1;22739:7;:14;;;;:17;;;;:::i;:::-;22734:1;:22;22730:60;;;22773:17;22758:12;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22730:60;22558:3;;;;;:::i;:::-;;;;22453:348;;;;22911:6;22891:16;;:26;;;;;;;:::i;:::-;;;;;;;;22315:609;:::o;17775:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16826:27::-;;;;:::o;17114:::-;;;;:::o;17065:22::-;;;;:::o;16606:30::-;;;:::o;17181:29::-;;;;:::o;17935:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;17836:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18460:495::-;18521:21;18545:7;:19;18553:10;18545:19;;;;;;;;;;;;;;;18521:43;;18583:6;:17;;;;;;;;;;;;18582:18;18574:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;18662:7;18649:9;:20;18641:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;18741:5;18722:15;:24;;:69;;;;;18777:14;18769:5;:22;;;;:::i;:::-;18750:15;:41;;18722:69;18714:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;18903:4;18883:6;:17;;;:24;;;;;;;;;;;;;;;;;;18937:11;18917:6;:17;;:31;;;;18460:495;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:139::-;;381:6;368:20;359:29;;397:33;424:5;397:33;:::i;:::-;349:87;;;;:::o;442:262::-;;550:2;538:9;529:7;525:23;521:32;518:2;;;566:1;563;556:12;518:2;609:1;634:53;679:7;670:6;659:9;655:22;634:53;:::i;:::-;624:63;;580:117;508:196;;;;:::o;710:262::-;;818:2;806:9;797:7;793:23;789:32;786:2;;;834:1;831;824:12;786:2;877:1;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;848:117;776:196;;;;:::o;978:262::-;;1086:2;1074:9;1065:7;1061:23;1057:32;1054:2;;;1102:1;1099;1092:12;1054:2;1145:1;1170:53;1215:7;1206:6;1195:9;1191:22;1170:53;:::i;:::-;1160:63;;1116:117;1044:196;;;;:::o;1246:407::-;;;1371:2;1359:9;1350:7;1346:23;1342:32;1339:2;;;1387:1;1384;1377:12;1339:2;1430:1;1455:53;1500:7;1491:6;1480:9;1476:22;1455:53;:::i;:::-;1445:63;;1401:117;1557:2;1583:53;1628:7;1619:6;1608:9;1604:22;1583:53;:::i;:::-;1573:63;;1528:118;1329:324;;;;;:::o;1659:118::-;1746:24;1764:5;1746:24;:::i;:::-;1741:3;1734:37;1724:53;;:::o;1783:157::-;1888:45;1908:24;1926:5;1908:24;:::i;:::-;1888:45;:::i;:::-;1883:3;1876:58;1866:74;;:::o;1946:109::-;2027:21;2042:5;2027:21;:::i;:::-;2022:3;2015:34;2005:50;;:::o;2061:118::-;2148:24;2166:5;2148:24;:::i;:::-;2143:3;2136:37;2126:53;;:::o;2185:157::-;2290:45;2310:24;2328:5;2310:24;:::i;:::-;2290:45;:::i;:::-;2285:3;2278:58;2268:74;;:::o;2348:147::-;2443:45;2482:5;2443:45;:::i;:::-;2438:3;2431:58;2421:74;;:::o;2501:366::-;;2664:67;2728:2;2723:3;2664:67;:::i;:::-;2657:74;;2740:93;2829:3;2740:93;:::i;:::-;2858:2;2853:3;2849:12;2842:19;;2647:220;;;:::o;2873:366::-;;3036:67;3100:2;3095:3;3036:67;:::i;:::-;3029:74;;3112:93;3201:3;3112:93;:::i;:::-;3230:2;3225:3;3221:12;3214:19;;3019:220;;;:::o;3245:366::-;;3408:67;3472:2;3467:3;3408:67;:::i;:::-;3401:74;;3484:93;3573:3;3484:93;:::i;:::-;3602:2;3597:3;3593:12;3586:19;;3391:220;;;:::o;3617:366::-;;3780:67;3844:2;3839:3;3780:67;:::i;:::-;3773:74;;3856:93;3945:3;3856:93;:::i;:::-;3974:2;3969:3;3965:12;3958:19;;3763:220;;;:::o;3989:366::-;;4152:67;4216:2;4211:3;4152:67;:::i;:::-;4145:74;;4228:93;4317:3;4228:93;:::i;:::-;4346:2;4341:3;4337:12;4330:19;;4135:220;;;:::o;4361:366::-;;4524:67;4588:2;4583:3;4524:67;:::i;:::-;4517:74;;4600:93;4689:3;4600:93;:::i;:::-;4718:2;4713:3;4709:12;4702:19;;4507:220;;;:::o;4733:366::-;;4896:67;4960:2;4955:3;4896:67;:::i;:::-;4889:74;;4972:93;5061:3;4972:93;:::i;:::-;5090:2;5085:3;5081:12;5074:19;;4879:220;;;:::o;5105:366::-;;5268:67;5332:2;5327:3;5268:67;:::i;:::-;5261:74;;5344:93;5433:3;5344:93;:::i;:::-;5462:2;5457:3;5453:12;5446:19;;5251:220;;;:::o;5477:366::-;;5640:67;5704:2;5699:3;5640:67;:::i;:::-;5633:74;;5716:93;5805:3;5716:93;:::i;:::-;5834:2;5829:3;5825:12;5818:19;;5623:220;;;:::o;5849:118::-;5936:24;5954:5;5936:24;:::i;:::-;5931:3;5924:37;5914:53;;:::o;5973:157::-;6078:45;6098:24;6116:5;6098:24;:::i;:::-;6078:45;:::i;:::-;6073:3;6066:58;6056:74;;:::o;6136:538::-;;6319:75;6390:3;6381:6;6319:75;:::i;:::-;6419:2;6414:3;6410:12;6403:19;;6432:75;6503:3;6494:6;6432:75;:::i;:::-;6532:2;6527:3;6523:12;6516:19;;6545:75;6616:3;6607:6;6545:75;:::i;:::-;6645:2;6640:3;6636:12;6629:19;;6665:3;6658:10;;6308:366;;;;;;:::o;6680:222::-;;6811:2;6800:9;6796:18;6788:26;;6824:71;6892:1;6881:9;6877:17;6868:6;6824:71;:::i;:::-;6778:124;;;;:::o;6908:238::-;;7047:2;7036:9;7032:18;7024:26;;7060:79;7136:1;7125:9;7121:17;7112:6;7060:79;:::i;:::-;7014:132;;;;:::o;7152:419::-;;7356:2;7345:9;7341:18;7333:26;;7405:9;7399:4;7395:20;7391:1;7380:9;7376:17;7369:47;7433:131;7559:4;7433:131;:::i;:::-;7425:139;;7323:248;;;:::o;7577:419::-;;7781:2;7770:9;7766:18;7758:26;;7830:9;7824:4;7820:20;7816:1;7805:9;7801:17;7794:47;7858:131;7984:4;7858:131;:::i;:::-;7850:139;;7748:248;;;:::o;8002:419::-;;8206:2;8195:9;8191:18;8183:26;;8255:9;8249:4;8245:20;8241:1;8230:9;8226:17;8219:47;8283:131;8409:4;8283:131;:::i;:::-;8275:139;;8173:248;;;:::o;8427:419::-;;8631:2;8620:9;8616:18;8608:26;;8680:9;8674:4;8670:20;8666:1;8655:9;8651:17;8644:47;8708:131;8834:4;8708:131;:::i;:::-;8700:139;;8598:248;;;:::o;8852:419::-;;9056:2;9045:9;9041:18;9033:26;;9105:9;9099:4;9095:20;9091:1;9080:9;9076:17;9069:47;9133:131;9259:4;9133:131;:::i;:::-;9125:139;;9023:248;;;:::o;9277:419::-;;9481:2;9470:9;9466:18;9458:26;;9530:9;9524:4;9520:20;9516:1;9505:9;9501:17;9494:47;9558:131;9684:4;9558:131;:::i;:::-;9550:139;;9448:248;;;:::o;9702:419::-;;9906:2;9895:9;9891:18;9883:26;;9955:9;9949:4;9945:20;9941:1;9930:9;9926:17;9919:47;9983:131;10109:4;9983:131;:::i;:::-;9975:139;;9873:248;;;:::o;10127:419::-;;10331:2;10320:9;10316:18;10308:26;;10380:9;10374:4;10370:20;10366:1;10355:9;10351:17;10344:47;10408:131;10534:4;10408:131;:::i;:::-;10400:139;;10298:248;;;:::o;10552:419::-;;10756:2;10745:9;10741:18;10733:26;;10805:9;10799:4;10795:20;10791:1;10780:9;10776:17;10769:47;10833:131;10959:4;10833:131;:::i;:::-;10825:139;;10723:248;;;:::o;10977:222::-;;11108:2;11097:9;11093:18;11085:26;;11121:71;11189:1;11178:9;11174:17;11165:6;11121:71;:::i;:::-;11075:124;;;;:::o;11205:529::-;;11408:3;11397:9;11393:19;11385:27;;11422:71;11490:1;11479:9;11475:17;11466:6;11422:71;:::i;:::-;11503:66;11565:2;11554:9;11550:18;11541:6;11503:66;:::i;:::-;11579;11641:2;11630:9;11626:18;11617:6;11579:66;:::i;:::-;11655:72;11723:2;11712:9;11708:18;11699:6;11655:72;:::i;:::-;11375:359;;;;;;;:::o;11740:169::-;;11858:6;11853:3;11846:19;11898:4;11893:3;11889:14;11874:29;;11836:73;;;;:::o;11915:305::-;;11974:20;11992:1;11974:20;:::i;:::-;11969:25;;12008:20;12026:1;12008:20;:::i;:::-;12003:25;;12162:1;12094:66;12090:74;12087:1;12084:81;12081:2;;;12168:18;;:::i;:::-;12081:2;12212:1;12209;12205:9;12198:16;;11959:261;;;;:::o;12226:185::-;;12283:20;12301:1;12283:20;:::i;:::-;12278:25;;12317:20;12335:1;12317:20;:::i;:::-;12312:25;;12356:1;12346:2;;12361:18;;:::i;:::-;12346:2;12403:1;12400;12396:9;12391:14;;12268:143;;;;:::o;12417:191::-;;12477:20;12495:1;12477:20;:::i;:::-;12472:25;;12511:20;12529:1;12511:20;:::i;:::-;12506:25;;12550:1;12547;12544:8;12541:2;;;12555:18;;:::i;:::-;12541:2;12600:1;12597;12593:9;12585:17;;12462:146;;;;:::o;12614:96::-;;12680:24;12698:5;12680:24;:::i;:::-;12669:35;;12659:51;;;:::o;12716:90::-;;12793:5;12786:13;12779:21;12768:32;;12758:48;;;:::o;12812:77::-;;12878:5;12867:16;;12857:32;;;:::o;12895:131::-;;12971:5;12960:16;;12977:43;13014:5;12977:43;:::i;:::-;12950:76;;;:::o;13032:126::-;;13109:42;13102:5;13098:54;13087:65;;13077:81;;;:::o;13164:77::-;;13230:5;13219:16;;13209:32;;;:::o;13247:131::-;;13338:34;13366:5;13338:34;:::i;:::-;13325:47;;13315:63;;;:::o;13384:233::-;;13446:24;13464:5;13446:24;:::i;:::-;13437:33;;13492:66;13485:5;13482:77;13479:2;;;13562:18;;:::i;:::-;13479:2;13609:1;13602:5;13598:13;13591:20;;13427:190;;;:::o;13623:100::-;;13691:26;13711:5;13691:26;:::i;:::-;13680:37;;13670:53;;;:::o;13729:79::-;;13797:5;13786:16;;13776:32;;;:::o;13814:94::-;;13882:20;13896:5;13882:20;:::i;:::-;13871:31;;13861:47;;;:::o;13914:79::-;;13982:5;13971:16;;13961:32;;;:::o;13999:180::-;14047:77;14044:1;14037:88;14144:4;14141:1;14134:15;14168:4;14165:1;14158:15;14185:180;14233:77;14230:1;14223:88;14330:4;14327:1;14320:15;14354:4;14351:1;14344:15;14371:180;14419:77;14416:1;14409:88;14516:4;14513:1;14506:15;14540:4;14537:1;14530:15;14557:94;;14638:5;14634:2;14630:14;14609:35;;14599:52;;;:::o;14657:162::-;14797:14;14793:1;14785:6;14781:14;14774:38;14763:56;:::o;14825:176::-;14965:28;14961:1;14953:6;14949:14;14942:52;14931:70;:::o;15007:179::-;15147:31;15143:1;15135:6;15131:14;15124:55;15113:73;:::o;15192:180::-;15332:32;15328:1;15320:6;15316:14;15309:56;15298:74;:::o;15378:174::-;15518:26;15514:1;15506:6;15502:14;15495:50;15484:68;:::o;15558:178::-;15698:30;15694:1;15686:6;15682:14;15675:54;15664:72;:::o;15742:230::-;15882:34;15878:1;15870:6;15866:14;15859:58;15951:13;15946:2;15938:6;15934:15;15927:38;15848:124;:::o;15978:230::-;16118:34;16114:1;16106:6;16102:14;16095:58;16187:13;16182:2;16174:6;16170:15;16163:38;16084:124;:::o;16214:177::-;16354:29;16350:1;16342:6;16338:14;16331:53;16320:71;:::o;16397:115::-;16480:1;16473:5;16470:12;16460:2;;16486:18;;:::i;:::-;16460:2;16450:62;:::o;16518:122::-;16591:24;16609:5;16591:24;:::i;:::-;16584:5;16581:35;16571:2;;16630:1;16627;16620:12;16571:2;16561:79;:::o;16646:122::-;16719:24;16737:5;16719:24;:::i;:::-;16712:5;16709:35;16699:2;;16758:1;16755;16748:12;16699:2;16689:79;:::o;16774:122::-;16847:24;16865:5;16847:24;:::i;:::-;16840:5;16837:35;16827:2;;16886:1;16883;16876:12;16827:2;16817:79;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "1517400",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"average()": "1218",
"commitDuration()": "infinite",
"currentStage()": "1283",
"cursorDistribute()": "1174",
"cursorWinner()": "1174",
"distribute(uint256)": "infinite",
"findWinners(uint256)": "infinite",
"guess(bytes32)": "infinite",
"guesses(uint256)": "infinite",
"indexToPlayer(uint256)": "1605",
"lastDifference()": "1219",
"numberOfLosers()": "1173",
"players(address)": "infinite",
"reveal(uint256,bytes32)": "infinite",
"revealDuration()": "infinite",
"start()": "infinite",
"totalBalance()": "1196",
"winners(uint256)": "2379"
}
},
"methodIdentifiers": {
"average()": "b250717a",
"commitDuration()": "6f833811",
"currentStage()": "5bf5d54c",
"cursorDistribute()": "64b1258a",
"cursorWinner()": "a75f27cb",
"distribute(uint256)": "91c05b0b",
"findWinners(uint256)": "307f6b12",
"guess(bytes32)": "e4aa533e",
"guesses(uint256)": "1f491389",
"indexToPlayer(uint256)": "d9ca55cd",
"lastDifference()": "50aa13d4",
"numberOfLosers()": "cbf4bb9a",
"players(address)": "e2eb41ff",
"reveal(uint256,bytes32)": "4036778f",
"revealDuration()": "886a6de1",
"start()": "be9a6555",
"totalBalance()": "ad7a672f",
"winners(uint256)": "a2fb1175"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint32",
"name": "_commitDuration",
"type": "uint32"
},
{
"internalType": "uint32",
"name": "_revealDuration",
"type": "uint32"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "average",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "commitDuration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "currentStage",
"outputs": [
{
"internalType": "enum GuessTheAverage.Stage",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "cursorDistribute",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "cursorWinner",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_count",
"type": "uint256"
}
],
"name": "distribute",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_count",
"type": "uint256"
}
],
"name": "findWinners",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_commitment",
"type": "bytes32"
}
],
"name": "guess",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "guesses",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "indexToPlayer",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lastDifference",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "numberOfLosers",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "players",
"outputs": [
{
"internalType": "uint256",
"name": "playerIndex",
"type": "uint256"
},
{
"internalType": "bool",
"name": "hasGuessed",
"type": "bool"
},
{
"internalType": "bool",
"name": "hasReveal",
"type": "bool"
},
{
"internalType": "bytes32",
"name": "commitment",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_number",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "_blindingFactor",
"type": "bytes32"
}
],
"name": "reveal",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "revealDuration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "start",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "winners",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.1+commit.df193b15"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint32",
"name": "_commitDuration",
"type": "uint32"
},
{
"internalType": "uint32",
"name": "_revealDuration",
"type": "uint32"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "average",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "commitDuration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "currentStage",
"outputs": [
{
"internalType": "enum GuessTheAverage.Stage",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "cursorDistribute",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "cursorWinner",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_count",
"type": "uint256"
}
],
"name": "distribute",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_count",
"type": "uint256"
}
],
"name": "findWinners",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_commitment",
"type": "bytes32"
}
],
"name": "guess",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "guesses",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "indexToPlayer",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lastDifference",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "numberOfLosers",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "players",
"outputs": [
{
"internalType": "uint256",
"name": "playerIndex",
"type": "uint256"
},
{
"internalType": "bool",
"name": "hasGuessed",
"type": "bool"
},
{
"internalType": "bool",
"name": "hasReveal",
"type": "bool"
},
{
"internalType": "bytes32",
"name": "commitment",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_number",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "_blindingFactor",
"type": "bytes32"
}
],
"name": "reveal",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "revealDuration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "start",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "winners",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"distribute(uint256)": {
"details": "Distributes rewards to winners.",
"params": {
"_count": "The number of transactions to execute. Executes until the end if set to \"0\" or number higher than number of winners in the list."
}
},
"findWinners(uint256)": {
"details": "Finds winners among players who have revealed their guess.",
"params": {
"_count": "The number of transactions to execute. Executes until the end if set to \"0\" or number higher than number of transactions in the list."
}
},
"guess(bytes32)": {
"details": "Adds the guess for the user.",
"params": {
"_commitment": "The commitment of the user under the form of keccak256(abi.encodePacked(msg.sender, _number, _blindingFactor) where the blinding factor is a bytes32."
}
},
"reveal(uint256,bytes32)": {
"details": "Reveals the guess for the user.",
"params": {
"_blindingFactor": "What has been used for the commitment to blind the guess.",
"_number": "The number guessed."
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/attackable.sol": "GuessTheAverage"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/attackable.sol": {
"keccak256": "0x5fbeeb33e4335fcd468eade7cb3c935e94da426ffdf3b62565201df5b0692d33",
"license": "UNLICENSED",
"urls": [
"bzz-raw://4cebb2a25b2182aa14aa74faab3446286bd6ec5b1439a182e0ea43a42be31310",
"dweb:/ipfs/QmckpSBtogyamrsKa2Jmx6BEuQhgQM2ue25fux82X9P4tP"
]
}
},
"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": {
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506103f3806100206000396000f3fe60806040526004361061003f5760003560e01c80630a6f073114610044578063838729f61461006f578063e0a8f09a1461009a578063f6e00e0f146100b6575b600080fd5b34801561005057600080fd5b506100596100d2565b6040516100669190610332565b60405180910390f35b34801561007b57600080fd5b506100846100f8565b604051610091919061034d565b60405180910390f35b6100b460048036038101906100af91906102eb565b610109565b005b6100d060048036038101906100cb91906102eb565b610232565b005b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900460ff1681565b60008054906101000a900460ff1661012057600080fd5b670de0b6b3a7640000341461013457600080fd5b600060019054906101000a900460ff16151581151514156101a3573373ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f1935050505015801561019d573d6000803e3d6000fd5b50610215565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f19350505050158015610213573d6000803e3d6000fd5b505b60008060006101000a81548160ff02191690831515021790555050565b60008054906101000a900460ff161561024a57600080fd5b670de0b6b3a7640000341461025e57600080fd5b60016000806101000a81548160ff02191690831515021790555080600060016101000a81548160ff02191690831515021790555033600060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000813590506102e5816103a6565b92915050565b6000602082840312156102fd57600080fd5b600061030b848285016102d6565b91505092915050565b61031d81610368565b82525050565b61032c8161037a565b82525050565b60006020820190506103476000830184610314565b92915050565b60006020820190506103626000830184610323565b92915050565b600061037382610386565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6103af8161037a565b81146103ba57600080fd5b5056fea264697066735822122099d34b88986964cda0cf452f62e5095f4dd068f570dec0e52e715f321b32d1db64736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F3 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA6F0731 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x838729F6 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0xE0A8F09A EQ PUSH2 0x9A JUMPI DUP1 PUSH4 0xF6E00E0F EQ PUSH2 0xB6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x59 PUSH2 0xD2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x84 PUSH2 0xF8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x91 SWAP2 SWAP1 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAF SWAP2 SWAP1 PUSH2 0x2EB JUMP JUMPDEST PUSH2 0x109 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCB SWAP2 SWAP1 PUSH2 0x2EB JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH8 0xDE0B6B3A7640000 CALLVALUE EQ PUSH2 0x134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO DUP2 ISZERO ISZERO EQ ISZERO PUSH2 0x1A3 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0x1BC16D674EC80000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x19D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x215 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0x1BC16D674EC80000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x213 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH8 0xDE0B6B3A7640000 CALLVALUE EQ PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP CALLER PUSH1 0x0 PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2E5 DUP2 PUSH2 0x3A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x30B DUP5 DUP3 DUP6 ADD PUSH2 0x2D6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x31D DUP2 PUSH2 0x368 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x32C DUP2 PUSH2 0x37A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x347 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x314 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x362 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x323 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x373 DUP3 PUSH2 0x386 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3AF DUP2 PUSH2 0x37A JUMP JUMPDEST DUP2 EQ PUSH2 0x3BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP10 0xD3 0x4B DUP9 SWAP9 PUSH10 0x64CDA0CF452F62E5095F 0x4D 0xD0 PUSH9 0xF570DEC0E52E715F32 SHL ORIGIN 0xD1 0xDB PUSH5 0x736F6C6343 STOP ADDMOD ADD STOP CALLER ",
"sourceMap": "2353:950:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1604:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "56:84:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "66:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "88:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "75:12:1"
},
"nodeType": "YulFunctionCall",
"src": "75:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "66:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "128:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "104:23:1"
},
"nodeType": "YulFunctionCall",
"src": "104:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "104:30:1"
}
]
},
"name": "abi_decode_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "34:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "42:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "50:5:1",
"type": ""
}
],
"src": "7:133:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "209:193:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "255:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "264:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "267:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "257:6:1"
},
"nodeType": "YulFunctionCall",
"src": "257:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "257:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "230:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "239:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "226:3:1"
},
"nodeType": "YulFunctionCall",
"src": "226:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "251:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "222:3:1"
},
"nodeType": "YulFunctionCall",
"src": "222:32:1"
},
"nodeType": "YulIf",
"src": "219:2:1"
},
{
"nodeType": "YulBlock",
"src": "281:114:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "296:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "310:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "300:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "325:60:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "357:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "368:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "353:3:1"
},
"nodeType": "YulFunctionCall",
"src": "353:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "377:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nodeType": "YulIdentifier",
"src": "335:17:1"
},
"nodeType": "YulFunctionCall",
"src": "335:50:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "325:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "179:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "190:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "202:6:1",
"type": ""
}
],
"src": "146:256:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "489:61:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "506:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "537:5:1"
}
],
"functionName": {
"name": "cleanup_t_address_payable",
"nodeType": "YulIdentifier",
"src": "511:25:1"
},
"nodeType": "YulFunctionCall",
"src": "511:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "499:6:1"
},
"nodeType": "YulFunctionCall",
"src": "499:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "499:45:1"
}
]
},
"name": "abi_encode_t_address_payable_to_t_address_payable_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "477:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "484:3:1",
"type": ""
}
],
"src": "408:142:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "615:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "632:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "652:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "637:14:1"
},
"nodeType": "YulFunctionCall",
"src": "637:21:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "625:6:1"
},
"nodeType": "YulFunctionCall",
"src": "625:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "625:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "603:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "610:3:1",
"type": ""
}
],
"src": "556:109:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "785:140:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "795:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "807:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "818:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "803:3:1"
},
"nodeType": "YulFunctionCall",
"src": "803:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "795:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "891:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "904:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "915:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "900:3:1"
},
"nodeType": "YulFunctionCall",
"src": "900:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_payable_to_t_address_payable_fromStack",
"nodeType": "YulIdentifier",
"src": "831:59:1"
},
"nodeType": "YulFunctionCall",
"src": "831:87:1"
},
"nodeType": "YulExpressionStatement",
"src": "831:87:1"
}
]
},
"name": "abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "757:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "769:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "780:4:1",
"type": ""
}
],
"src": "671:254:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1023:118:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1033:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1045:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1056:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1041:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1041:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1033:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1107:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1120:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1131:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1116:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1116:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "1069:37:1"
},
"nodeType": "YulFunctionCall",
"src": "1069:65:1"
},
"nodeType": "YulExpressionStatement",
"src": "1069:65:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "995:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1007:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1018:4:1",
"type": ""
}
],
"src": "931:210:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1200:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1210:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1239:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "1221:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1221:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1210:7:1"
}
]
}
]
},
"name": "cleanup_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1182:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1192:7:1",
"type": ""
}
],
"src": "1147:104:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1299:48:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1309:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1334:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1327:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1327:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1320:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1320:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1309:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1281:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1291:7:1",
"type": ""
}
],
"src": "1257:90:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1398:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1408:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1423:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1430:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1419:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1419:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1408:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1380:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1390:7:1",
"type": ""
}
],
"src": "1353:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1525:76:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1579:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1588:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1591:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1581:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1581:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1581:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1548:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1570:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "1555:14:1"
},
"nodeType": "YulFunctionCall",
"src": "1555:21:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1545:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1545:32:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1538:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1538:40:1"
},
"nodeType": "YulIf",
"src": "1535:2:1"
}
]
},
"name": "validator_revert_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1518:5:1",
"type": ""
}
],
"src": "1485:116:1"
}
]
},
"contents": "{\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_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n mstore(pos, cleanup_t_address_payable(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_address_payable__to_t_address_payable__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_payable_to_t_address_payable_fromStack(value0, add(headStart, 0))\n\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 cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040526004361061003f5760003560e01c80630a6f073114610044578063838729f61461006f578063e0a8f09a1461009a578063f6e00e0f146100b6575b600080fd5b34801561005057600080fd5b506100596100d2565b6040516100669190610332565b60405180910390f35b34801561007b57600080fd5b506100846100f8565b604051610091919061034d565b60405180910390f35b6100b460048036038101906100af91906102eb565b610109565b005b6100d060048036038101906100cb91906102eb565b610232565b005b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900460ff1681565b60008054906101000a900460ff1661012057600080fd5b670de0b6b3a7640000341461013457600080fd5b600060019054906101000a900460ff16151581151514156101a3573373ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f1935050505015801561019d573d6000803e3d6000fd5b50610215565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f19350505050158015610213573d6000803e3d6000fd5b505b60008060006101000a81548160ff02191690831515021790555050565b60008054906101000a900460ff161561024a57600080fd5b670de0b6b3a7640000341461025e57600080fd5b60016000806101000a81548160ff02191690831515021790555080600060016101000a81548160ff02191690831515021790555033600060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000813590506102e5816103a6565b92915050565b6000602082840312156102fd57600080fd5b600061030b848285016102d6565b91505092915050565b61031d81610368565b82525050565b61032c8161037a565b82525050565b60006020820190506103476000830184610314565b92915050565b60006020820190506103626000830184610323565b92915050565b600061037382610386565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6103af8161037a565b81146103ba57600080fd5b5056fea264697066735822122099d34b88986964cda0cf452f62e5095f4dd068f570dec0e52e715f321b32d1db64736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA6F0731 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x838729F6 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0xE0A8F09A EQ PUSH2 0x9A JUMPI DUP1 PUSH4 0xF6E00E0F EQ PUSH2 0xB6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x59 PUSH2 0xD2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x84 PUSH2 0xF8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x91 SWAP2 SWAP1 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAF SWAP2 SWAP1 PUSH2 0x2EB JUMP JUMPDEST PUSH2 0x109 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCB SWAP2 SWAP1 PUSH2 0x2EB JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH8 0xDE0B6B3A7640000 CALLVALUE EQ PUSH2 0x134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO DUP2 ISZERO ISZERO EQ ISZERO PUSH2 0x1A3 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0x1BC16D674EC80000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x19D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x215 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0x1BC16D674EC80000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x213 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH8 0xDE0B6B3A7640000 CALLVALUE EQ PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x0 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP CALLER PUSH1 0x0 PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2E5 DUP2 PUSH2 0x3A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x30B DUP5 DUP3 DUP6 ADD PUSH2 0x2D6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x31D DUP2 PUSH2 0x368 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x32C DUP2 PUSH2 0x37A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x347 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x314 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x362 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x323 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x373 DUP3 PUSH2 0x386 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3AF DUP2 PUSH2 0x37A JUMP JUMPDEST DUP2 EQ PUSH2 0x3BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP10 0xD3 0x4B DUP9 SWAP9 PUSH10 0x64CDA0CF452F62E5095F 0x4D 0xD0 PUSH9 0xF570DEC0E52E715F32 SHL ORIGIN 0xD1 0xDB PUSH5 0x736F6C6343 STOP ADDMOD ADD STOP CALLER ",
"sourceMap": "2353:950:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2497:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2379:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2992:309;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2751:226;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2497:32;;;;;;;;;;;;;:::o;2379:18::-;;;;;;;;;;;;:::o;2992:309::-;3057:6;;;;;;;;;;3049:15;;;;;;3095:7;3082:9;:20;3074:29;;;;;;3140:14;;;;;;;;;;;3126:28;;:10;:28;;;3122:137;;;3176:10;3168:28;;:37;3197:7;3168:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3122:137;;;3232:9;;;;;;;;;;;:18;;:27;3251:7;3232:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3122:137;3289:5;3282:6;;:12;;;;;;;;;;;;;;;;;;2992:309;:::o;2751:226::-;2819:6;;;;;;;;;;2818:7;2810:16;;;;;;2857:7;2844:9;:20;2836:29;;;;;;2891:4;2884:6;;:11;;;;;;;;;;;;;;;;;;2920;2905:14;;:26;;;;;;;;;;;;;;;;;;2959:10;2941:9;;:29;;;;;;;;;;;;;;;;;;2751:226;:::o;7:133:1:-;;88:6;75:20;66:29;;104:30;128:5;104:30;:::i;:::-;56:84;;;;:::o;146:256::-;;251:2;239:9;230:7;226:23;222:32;219:2;;;267:1;264;257:12;219:2;310:1;335:50;377:7;368:6;357:9;353:22;335:50;:::i;:::-;325:60;;281:114;209:193;;;;:::o;408:142::-;511:32;537:5;511:32;:::i;:::-;506:3;499:45;489:61;;:::o;556:109::-;637:21;652:5;637:21;:::i;:::-;632:3;625:34;615:50;;:::o;671:254::-;;818:2;807:9;803:18;795:26;;831:87;915:1;904:9;900:17;891:6;831:87;:::i;:::-;785:140;;;;:::o;931:210::-;;1056:2;1045:9;1041:18;1033:26;;1069:65;1131:1;1120:9;1116:17;1107:6;1069:65;:::i;:::-;1023:118;;;;:::o;1147:104::-;;1221:24;1239:5;1221:24;:::i;:::-;1210:35;;1200:51;;;:::o;1257:90::-;;1334:5;1327:13;1320:21;1309:32;;1299:48;;;:::o;1353:126::-;;1430:42;1423:5;1419:54;1408:65;;1398:81;;;:::o;1485:116::-;1555:21;1570:5;1555:21;:::i;:::-;1548:5;1545:32;1535:2;;1591:1;1588;1581:12;1535:2;1525:76;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "202200",
"executionCost": "245",
"totalCost": "202445"
},
"external": {
"choose(bool)": "64007",
"chosen()": "1168",
"guess(bool)": "infinite",
"lastParty()": "1242"
}
},
"methodIdentifiers": {
"choose(bool)": "f6e00e0f",
"chosen()": "838729f6",
"guess(bool)": "e0a8f09a",
"lastParty()": "0a6f0731"
}
},
"abi": [
{
"inputs": [
{
"internalType": "bool",
"name": "_chooseHead",
"type": "bool"
}
],
"name": "choose",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "chosen",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_guessHead",
"type": "bool"
}
],
"name": "guess",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "lastParty",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.1+commit.df193b15"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "bool",
"name": "_chooseHead",
"type": "bool"
}
],
"name": "choose",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "chosen",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_guessHead",
"type": "bool"
}
],
"name": "guess",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "lastParty",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"choose(bool)": {
"details": "Must be sent 1 ETH. Choose head or tail to be guessed by the other player.",
"params": {
"_chooseHead": "True if head was chosen, false if tail was chosen."
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/attackable.sol": "HeadOrTail"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/attackable.sol": {
"keccak256": "0x5fbeeb33e4335fcd468eade7cb3c935e94da426ffdf3b62565201df5b0692d33",
"license": "UNLICENSED",
"urls": [
"bzz-raw://4cebb2a25b2182aa14aa74faab3446286bd6ec5b1439a182e0ea43a42be31310",
"dweb:/ipfs/QmckpSBtogyamrsKa2Jmx6BEuQhgQM2ue25fux82X9P4tP"
]
}
},
"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": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:654:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "70:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "80:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "95:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "89:5:1"
},
"nodeType": "YulFunctionCall",
"src": "89:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "80:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "138:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bytes32",
"nodeType": "YulIdentifier",
"src": "111:26:1"
},
"nodeType": "YulFunctionCall",
"src": "111:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "111:33:1"
}
]
},
"name": "abi_decode_t_bytes32_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "48:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "56:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "64:5:1",
"type": ""
}
],
"src": "7:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "233:207:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "279:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "288:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "291:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "281:6:1"
},
"nodeType": "YulFunctionCall",
"src": "281:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "281:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "254:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "263:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "250:3:1"
},
"nodeType": "YulFunctionCall",
"src": "250:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "275:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "246:3:1"
},
"nodeType": "YulFunctionCall",
"src": "246:32:1"
},
"nodeType": "YulIf",
"src": "243:2:1"
},
{
"nodeType": "YulBlock",
"src": "305:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "320:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "334:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "324:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "349:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "395:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "406:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "391:3:1"
},
"nodeType": "YulFunctionCall",
"src": "391:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "415:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bytes32_fromMemory",
"nodeType": "YulIdentifier",
"src": "359:31:1"
},
"nodeType": "YulFunctionCall",
"src": "359:64:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "349:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes32_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "203:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "214:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "226:6:1",
"type": ""
}
],
"src": "156:284:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "491:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "501:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "512:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "501:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "473:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "483:7:1",
"type": ""
}
],
"src": "446:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "572:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "629:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "638:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "641:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "631:6:1"
},
"nodeType": "YulFunctionCall",
"src": "631:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "631:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "595:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "620:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "602:17:1"
},
"nodeType": "YulFunctionCall",
"src": "602:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "592:2:1"
},
"nodeType": "YulFunctionCall",
"src": "592:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "585:6:1"
},
"nodeType": "YulFunctionCall",
"src": "585:43:1"
},
"nodeType": "YulIf",
"src": "582:2:1"
}
]
},
"name": "validator_revert_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "565:5:1",
"type": ""
}
],
"src": "529:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_bytes32_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040526040516109373803806109378339818101604052810190610025919061009b565b670de0b6b3a7640000341461003957600080fd5b80600281905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506100e5565b600081519050610095816100ce565b92915050565b6000602082840312156100ad57600080fd5b60006100bb84828501610086565b91505092915050565b6000819050919050565b6100d7816100c4565b81146100e257600080fd5b50565b610843806100f46000396000f3fe60806040526004361061007b5760003560e01c806365c363e21161004e57806365c363e21461011857806382f5689e14610141578063a92cdf4b1461016c578063e0a8f09a146101975761007b565b806310e1d8ca1461008057806329040113146100ab57806343a63534146100d6578063614d85e114610101575b600080fd5b34801561008c57600080fd5b506100956101b3565b6040516100a29190610661565b60405180910390f35b3480156100b757600080fd5b506100c06101d7565b6040516100cd9190610661565b60405180910390f35b3480156100e257600080fd5b506100eb6101fd565b6040516100f89190610697565b60405180910390f35b34801561010d57600080fd5b50610116610203565b005b34801561012457600080fd5b5061013f600480360381019061013a919061058f565b6102a7565b005b34801561014d57600080fd5b5061015661044f565b604051610163919061067c565b60405180910390f35b34801561017857600080fd5b50610181610462565b60405161018e91906106b2565b60405180910390f35b6101b160048036038101906101ac9190610566565b610468565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6201518060045461021491906106cd565b421161021f57600080fd5b671bc16d674ec8000047101561023457600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f193505050501580156102a4573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102ff57600080fd5b6002548282604051602001610315929190610635565b604051602081830303815290604052805190602001201461033557600080fd5b671bc16d674ec8000047101561034a57600080fd5b600360009054906101000a900460ff16151582151514156103db57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f193505050501580156103d5573d6000803e3d6000fd5b5061044b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f19350505050158015610449573d6000803e3d6000fd5b505b5050565b600360009054906101000a900460ff1681565b60045481565b670de0b6b3a7640000341461047c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104d757600080fd5b80600360006101000a81548160ff0219169083151502179055504260048190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008135905061054b816107df565b92915050565b600081359050610560816107f6565b92915050565b60006020828403121561057857600080fd5b60006105868482850161053c565b91505092915050565b600080604083850312156105a257600080fd5b60006105b08582860161053c565b92505060206105c185828601610551565b9150509250929050565b6105d481610723565b82525050565b6105e381610735565b82525050565b6105fa6105f582610735565b610775565b82525050565b61060981610741565b82525050565b6106188161076b565b82525050565b61062f61062a8261076b565b610787565b82525050565b600061064182856105e9565b600182019150610651828461061e565b6020820191508190509392505050565b600060208201905061067660008301846105cb565b92915050565b600060208201905061069160008301846105da565b92915050565b60006020820190506106ac6000830184610600565b92915050565b60006020820190506106c7600083018461060f565b92915050565b60006106d88261076b565b91506106e38361076b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610718576107176107a3565b5b828201905092915050565b600061072e8261074b565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061078082610791565b9050919050565b6000819050919050565b600061079c826107d2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160f81b9050919050565b6107e881610735565b81146107f357600080fd5b50565b6107ff8161076b565b811461080a57600080fd5b5056fea2646970667358221220f35c33c2543ae0d19777a36961d2ad1d2a187dd1b0dc88731fa32d78f6ff982764736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x937 CODESIZE SUB DUP1 PUSH2 0x937 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x25 SWAP2 SWAP1 PUSH2 0x9B JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 CALLVALUE EQ PUSH2 0x39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0xE5 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x95 DUP2 PUSH2 0xCE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBB DUP5 DUP3 DUP6 ADD PUSH2 0x86 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD7 DUP2 PUSH2 0xC4 JUMP JUMPDEST DUP2 EQ PUSH2 0xE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x843 DUP1 PUSH2 0xF4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x65C363E2 GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x65C363E2 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x82F5689E EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0xA92CDF4B EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0xE0A8F09A EQ PUSH2 0x197 JUMPI PUSH2 0x7B JUMP JUMPDEST DUP1 PUSH4 0x10E1D8CA EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x29040113 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x43A63534 EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0x614D85E1 EQ PUSH2 0x101 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x95 PUSH2 0x1B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x661 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH2 0x1D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCD SWAP2 SWAP1 PUSH2 0x661 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEB PUSH2 0x1FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0x697 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x116 PUSH2 0x203 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST PUSH2 0x2A7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x156 PUSH2 0x44F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x163 SWAP2 SWAP1 PUSH2 0x67C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH2 0x462 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x6B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x566 JUMP JUMPDEST PUSH2 0x468 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH3 0x15180 PUSH1 0x4 SLOAD PUSH2 0x214 SWAP2 SWAP1 PUSH2 0x6CD JUMP JUMPDEST TIMESTAMP GT PUSH2 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH8 0x1BC16D674EC80000 SELFBALANCE LT ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0x1BC16D674EC80000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x315 SWAP3 SWAP2 SWAP1 PUSH2 0x635 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH8 0x1BC16D674EC80000 SELFBALANCE LT ISZERO PUSH2 0x34A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO DUP3 ISZERO ISZERO EQ ISZERO PUSH2 0x3DB JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0x1BC16D674EC80000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x44B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0x1BC16D674EC80000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x449 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 CALLVALUE EQ PUSH2 0x47C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x4D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP TIMESTAMP PUSH1 0x4 DUP2 SWAP1 SSTORE POP CALLER PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x54B DUP2 PUSH2 0x7DF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x560 DUP2 PUSH2 0x7F6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x578 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x586 DUP5 DUP3 DUP6 ADD PUSH2 0x53C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5B0 DUP6 DUP3 DUP7 ADD PUSH2 0x53C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5C1 DUP6 DUP3 DUP7 ADD PUSH2 0x551 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x5D4 DUP2 PUSH2 0x723 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5E3 DUP2 PUSH2 0x735 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5FA PUSH2 0x5F5 DUP3 PUSH2 0x735 JUMP JUMPDEST PUSH2 0x775 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x609 DUP2 PUSH2 0x741 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x618 DUP2 PUSH2 0x76B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x62F PUSH2 0x62A DUP3 PUSH2 0x76B JUMP JUMPDEST PUSH2 0x787 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x641 DUP3 DUP6 PUSH2 0x5E9 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x651 DUP3 DUP5 PUSH2 0x61E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x676 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5CB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x691 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5DA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6AC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x600 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6C7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x60F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6D8 DUP3 PUSH2 0x76B JUMP JUMPDEST SWAP2 POP PUSH2 0x6E3 DUP4 PUSH2 0x76B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x718 JUMPI PUSH2 0x717 PUSH2 0x7A3 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x72E DUP3 PUSH2 0x74B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x780 DUP3 PUSH2 0x791 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x79C DUP3 PUSH2 0x7D2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF8 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7E8 DUP2 PUSH2 0x735 JUMP JUMPDEST DUP2 EQ PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7FF DUP2 PUSH2 0x76B JUMP JUMPDEST DUP2 EQ PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURN 0x5C CALLER 0xC2 SLOAD GASPRICE 0xE0 0xD1 SWAP8 PUSH24 0xA36961D2AD1D2A187DD1B0DC88731FA32D78F6FF98276473 PUSH16 0x6C634300080100330000000000000000 ",
"sourceMap": "4323:1748:0:-:0;;;4638:167;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4711:7;4698:9;:20;4690:29;;;;;;4750:12;4738:11;:24;;;;4787:10;4772:6;;:26;;;;;;;;;;;;;;;;;;4638:167;4323:1748;;7:143:1;;95:6;89:13;80:22;;111:33;138:5;111:33;:::i;:::-;70:80;;;;:::o;156:284::-;;275:2;263:9;254:7;250:23;246:32;243:2;;;291:1;288;281:12;243:2;334:1;359:64;415:7;406:6;395:9;391:22;359:64;:::i;:::-;349:74;;305:128;233:207;;;;:::o;446:77::-;;512:5;501:16;;491:32;;;:::o;529:122::-;602:24;620:5;602:24;:::i;:::-;595:5;592:35;582:2;;641:1;638;631:12;582:2;572:79;:::o;4323:1748:0:-;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4742:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "56:84:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "66:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "88:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "75:12:1"
},
"nodeType": "YulFunctionCall",
"src": "75:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "66:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "128:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "104:23:1"
},
"nodeType": "YulFunctionCall",
"src": "104:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "104:30:1"
}
]
},
"name": "abi_decode_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "34:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "42:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "50:5:1",
"type": ""
}
],
"src": "7:133:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "198:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "208:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "230:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "217:12:1"
},
"nodeType": "YulFunctionCall",
"src": "217:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "208:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "273:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "246:26:1"
},
"nodeType": "YulFunctionCall",
"src": "246:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "246:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "176:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "184:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "192:5:1",
"type": ""
}
],
"src": "146:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "354:193:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "400:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "409:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "412:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "402:6:1"
},
"nodeType": "YulFunctionCall",
"src": "402:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "402:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "375:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "384:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "371:3:1"
},
"nodeType": "YulFunctionCall",
"src": "371:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "396:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "367:3:1"
},
"nodeType": "YulFunctionCall",
"src": "367:32:1"
},
"nodeType": "YulIf",
"src": "364:2:1"
},
{
"nodeType": "YulBlock",
"src": "426:114:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "441:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "455:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "445:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "470:60:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "502:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "513:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "498:3:1"
},
"nodeType": "YulFunctionCall",
"src": "498:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "522:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nodeType": "YulIdentifier",
"src": "480:17:1"
},
"nodeType": "YulFunctionCall",
"src": "480:50:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "470:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "324:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "335:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "347:6:1",
"type": ""
}
],
"src": "291:256:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "633:321:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "679:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "688:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "691:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "681:6:1"
},
"nodeType": "YulFunctionCall",
"src": "681:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "681:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "654:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "663:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "650:3:1"
},
"nodeType": "YulFunctionCall",
"src": "650:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "675:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "646:3:1"
},
"nodeType": "YulFunctionCall",
"src": "646:32:1"
},
"nodeType": "YulIf",
"src": "643:2:1"
},
{
"nodeType": "YulBlock",
"src": "705:114:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "720:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "734:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "724:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "749:60:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "781:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "792:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "777:3:1"
},
"nodeType": "YulFunctionCall",
"src": "777:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "801:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nodeType": "YulIdentifier",
"src": "759:17:1"
},
"nodeType": "YulFunctionCall",
"src": "759:50:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "749:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "829:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "844:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "858:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "848:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "874:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "909:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "920:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "905:3:1"
},
"nodeType": "YulFunctionCall",
"src": "905:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "929:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "884:20:1"
},
"nodeType": "YulFunctionCall",
"src": "884:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "874:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_boolt_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "595:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "606:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "618:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "626:6:1",
"type": ""
}
],
"src": "553:401:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1041:61:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1058:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1089:5:1"
}
],
"functionName": {
"name": "cleanup_t_address_payable",
"nodeType": "YulIdentifier",
"src": "1063:25:1"
},
"nodeType": "YulFunctionCall",
"src": "1063:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1051:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1051:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "1051:45:1"
}
]
},
"name": "abi_encode_t_address_payable_to_t_address_payable_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1029:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1036:3:1",
"type": ""
}
],
"src": "960:142:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1167:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1184:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1204:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "1189:14:1"
},
"nodeType": "YulFunctionCall",
"src": "1189:21:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1177:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1177:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "1177:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1155:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1162:3:1",
"type": ""
}
],
"src": "1108:109:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1300:68:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1317:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1354:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "1339:14:1"
},
"nodeType": "YulFunctionCall",
"src": "1339:21:1"
}
],
"functionName": {
"name": "leftAlign_t_bool",
"nodeType": "YulIdentifier",
"src": "1322:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1322:39:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1310:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "1310:52:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1288:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1295:3:1",
"type": ""
}
],
"src": "1223:145:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1439:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1456:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1479:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "1461:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1461:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1449:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1449:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1449:37:1"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1427:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1434:3:1",
"type": ""
}
],
"src": "1374:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1563:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1580:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1603:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1585:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1585:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1573:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1573:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1573:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1551:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1558:3:1",
"type": ""
}
],
"src": "1498:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1705:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1722:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1765:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1747:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1747:24:1"
}
],
"functionName": {
"name": "leftAlign_t_uint256",
"nodeType": "YulIdentifier",
"src": "1727:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1727:45:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1715:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1715:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "1715:58:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1693:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1700:3:1",
"type": ""
}
],
"src": "1622:157:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1923:246:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1990:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1999:3:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "1934:55:1"
},
"nodeType": "YulFunctionCall",
"src": "1934:69:1"
},
"nodeType": "YulExpressionStatement",
"src": "1934:69:1"
},
{
"nodeType": "YulAssignment",
"src": "2012:18:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2023:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2028:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2019:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2019:11:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2012:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2102:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2111:3:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "2040:61:1"
},
"nodeType": "YulFunctionCall",
"src": "2040:75:1"
},
"nodeType": "YulExpressionStatement",
"src": "2040:75:1"
},
{
"nodeType": "YulAssignment",
"src": "2124:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2135:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2140:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2131:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2131:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2124:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2153:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2160:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2153:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_bool_t_uint256__to_t_bool_t_uint256__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1894:3:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1900:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1908:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1919:3:1",
"type": ""
}
],
"src": "1785:384:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2289:140:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2299:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2311:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2322:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2307:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2307:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2299:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2395:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2408:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2419:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2404:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2404:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_payable_to_t_address_payable_fromStack",
"nodeType": "YulIdentifier",
"src": "2335:59:1"
},
"nodeType": "YulFunctionCall",
"src": "2335:87:1"
},
"nodeType": "YulExpressionStatement",
"src": "2335:87:1"
}
]
},
"name": "abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2261:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2273:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2284:4:1",
"type": ""
}
],
"src": "2175:254:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2527:118:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2537:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2549:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2560:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2545:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2545:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2537:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2611:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2624:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2635:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2620:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2620:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "2573:37:1"
},
"nodeType": "YulFunctionCall",
"src": "2573:65:1"
},
"nodeType": "YulExpressionStatement",
"src": "2573:65:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2499:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2511:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2522:4:1",
"type": ""
}
],
"src": "2435:210:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2749:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2759:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2771:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2782:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2767:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2767:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2759:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2839:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2852:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2863:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2848:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2848:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "2795:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2795:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "2795:71:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2721:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2733:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2744:4:1",
"type": ""
}
],
"src": "2651:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2977:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2987:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2999:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3010:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2995:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2995:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2987:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3067:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3080:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3091:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3076:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3076:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "3023:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3023:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "3023:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2949:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2961:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2972:4:1",
"type": ""
}
],
"src": "2879:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3151:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3161:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3184:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3166:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3166:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3161:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3195:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3218:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3200:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3200:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3195:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3358:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "3360:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3360:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "3360:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3279:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3286:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3354:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3282:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3282:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3276:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3276:81:1"
},
"nodeType": "YulIf",
"src": "3273:2:1"
},
{
"nodeType": "YulAssignment",
"src": "3390:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3401:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3404:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3397:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3397:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "3390:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "3138:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "3141:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "3147:3:1",
"type": ""
}
],
"src": "3107:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3471:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3481:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3510:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "3492:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3492:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3481:7:1"
}
]
}
]
},
"name": "cleanup_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3453:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3463:7:1",
"type": ""
}
],
"src": "3418:104:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3570:48:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3580:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3605:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3598:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3598:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3591:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3591:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3580:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3552:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3562:7:1",
"type": ""
}
],
"src": "3528:90:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3669:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3679:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "3690:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3679:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3651:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3661:7:1",
"type": ""
}
],
"src": "3624:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3752:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3762:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3777:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3784:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3773:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3773:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3762:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3734:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3744:7:1",
"type": ""
}
],
"src": "3707:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3884:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3894:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "3905:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3894:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3866:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3876:7:1",
"type": ""
}
],
"src": "3839:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3966:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3976:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4005:5:1"
}
],
"functionName": {
"name": "leftAlign_t_uint8",
"nodeType": "YulIdentifier",
"src": "3987:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3987:24:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "3976:7:1"
}
]
}
]
},
"name": "leftAlign_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3948:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "3958:7:1",
"type": ""
}
],
"src": "3922:95:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4070:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4080:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "4091:5:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "4080:7:1"
}
]
}
]
},
"name": "leftAlign_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4052:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "4062:7:1",
"type": ""
}
],
"src": "4023:79:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4153:48:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4163:32:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4189:5:1"
}
],
"functionName": {
"name": "shift_left_248",
"nodeType": "YulIdentifier",
"src": "4174:14:1"
},
"nodeType": "YulFunctionCall",
"src": "4174:21:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "4163:7:1"
}
]
}
]
},
"name": "leftAlign_t_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4135:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "4145:7:1",
"type": ""
}
],
"src": "4108:93:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4235:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4252:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4255:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4245:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4245:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "4245:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4349:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4352:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4342:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4342:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4342:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4373:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4376:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4366:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4366:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4366:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "4207:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4436:53:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4446:36:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4471:3:1",
"type": "",
"value": "248"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4476:5:1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "4467:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4467:15:1"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "4446:8:1"
}
]
}
]
},
"name": "shift_left_248",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4417:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "4427:8:1",
"type": ""
}
],
"src": "4393:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4535:76:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4589:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4598:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4601:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4591:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4591:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "4591:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4558:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4580:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "4565:14:1"
},
"nodeType": "YulFunctionCall",
"src": "4565:21:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4555:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4555:32:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4548:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4548:40:1"
},
"nodeType": "YulIf",
"src": "4545:2:1"
}
]
},
"name": "validator_revert_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4528:5:1",
"type": ""
}
],
"src": "4495:116:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4660:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4717:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4726:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4729:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4719:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4719:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "4719:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4683:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4708:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4690:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4690:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4680:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4680:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4673:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4673:43:1"
},
"nodeType": "YulIf",
"src": "4670:2:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4653:5:1",
"type": ""
}
],
"src": "4617:122:1"
}
]
},
"contents": "{\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_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_boolt_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\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_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n mstore(pos, cleanup_t_address_payable(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_t_bool_to_t_bool_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bool(cleanup_t_bool(value)))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(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_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_bool_t_uint256__to_t_bool_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_bool_to_t_bool_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 1)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_payable_to_t_address_payable_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\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_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function leftAlign_t_bool(value) -> aligned {\n aligned := leftAlign_t_uint8(value)\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function leftAlign_t_uint8(value) -> aligned {\n aligned := shift_left_248(value)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function shift_left_248(value) -> newValue {\n newValue :=\n\n shl(248, value)\n\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 validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040526004361061007b5760003560e01c806365c363e21161004e57806365c363e21461011857806382f5689e14610141578063a92cdf4b1461016c578063e0a8f09a146101975761007b565b806310e1d8ca1461008057806329040113146100ab57806343a63534146100d6578063614d85e114610101575b600080fd5b34801561008c57600080fd5b506100956101b3565b6040516100a29190610661565b60405180910390f35b3480156100b757600080fd5b506100c06101d7565b6040516100cd9190610661565b60405180910390f35b3480156100e257600080fd5b506100eb6101fd565b6040516100f89190610697565b60405180910390f35b34801561010d57600080fd5b50610116610203565b005b34801561012457600080fd5b5061013f600480360381019061013a919061058f565b6102a7565b005b34801561014d57600080fd5b5061015661044f565b604051610163919061067c565b60405180910390f35b34801561017857600080fd5b50610181610462565b60405161018e91906106b2565b60405180910390f35b6101b160048036038101906101ac9190610566565b610468565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6201518060045461021491906106cd565b421161021f57600080fd5b671bc16d674ec8000047101561023457600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f193505050501580156102a4573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102ff57600080fd5b6002548282604051602001610315929190610635565b604051602081830303815290604052805190602001201461033557600080fd5b671bc16d674ec8000047101561034a57600080fd5b600360009054906101000a900460ff16151582151514156103db57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f193505050501580156103d5573d6000803e3d6000fd5b5061044b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc671bc16d674ec800009081150290604051600060405180830381858888f19350505050158015610449573d6000803e3d6000fd5b505b5050565b600360009054906101000a900460ff1681565b60045481565b670de0b6b3a7640000341461047c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104d757600080fd5b80600360006101000a81548160ff0219169083151502179055504260048190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008135905061054b816107df565b92915050565b600081359050610560816107f6565b92915050565b60006020828403121561057857600080fd5b60006105868482850161053c565b91505092915050565b600080604083850312156105a257600080fd5b60006105b08582860161053c565b92505060206105c185828601610551565b9150509250929050565b6105d481610723565b82525050565b6105e381610735565b82525050565b6105fa6105f582610735565b610775565b82525050565b61060981610741565b82525050565b6106188161076b565b82525050565b61062f61062a8261076b565b610787565b82525050565b600061064182856105e9565b600182019150610651828461061e565b6020820191508190509392505050565b600060208201905061067660008301846105cb565b92915050565b600060208201905061069160008301846105da565b92915050565b60006020820190506106ac6000830184610600565b92915050565b60006020820190506106c7600083018461060f565b92915050565b60006106d88261076b565b91506106e38361076b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610718576107176107a3565b5b828201905092915050565b600061072e8261074b565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061078082610791565b9050919050565b6000819050919050565b600061079c826107d2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160f81b9050919050565b6107e881610735565b81146107f357600080fd5b50565b6107ff8161076b565b811461080a57600080fd5b5056fea2646970667358221220f35c33c2543ae0d19777a36961d2ad1d2a187dd1b0dc88731fa32d78f6ff982764736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x65C363E2 GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x65C363E2 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x82F5689E EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0xA92CDF4B EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0xE0A8F09A EQ PUSH2 0x197 JUMPI PUSH2 0x7B JUMP JUMPDEST DUP1 PUSH4 0x10E1D8CA EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x29040113 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x43A63534 EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0x614D85E1 EQ PUSH2 0x101 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x95 PUSH2 0x1B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x661 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0 PUSH2 0x1D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCD SWAP2 SWAP1 PUSH2 0x661 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEB PUSH2 0x1FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0x697 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x116 PUSH2 0x203 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST PUSH2 0x2A7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x156 PUSH2 0x44F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x163 SWAP2 SWAP1 PUSH2 0x67C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 PUSH2 0x462 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x6B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x566 JUMP JUMPDEST PUSH2 0x468 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH3 0x15180 PUSH1 0x4 SLOAD PUSH2 0x214 SWAP2 SWAP1 PUSH2 0x6CD JUMP JUMPDEST TIMESTAMP GT PUSH2 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH8 0x1BC16D674EC80000 SELFBALANCE LT ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0x1BC16D674EC80000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x315 SWAP3 SWAP2 SWAP1 PUSH2 0x635 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH8 0x1BC16D674EC80000 SELFBALANCE LT ISZERO PUSH2 0x34A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO DUP3 ISZERO ISZERO EQ ISZERO PUSH2 0x3DB JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0x1BC16D674EC80000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x44B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH8 0x1BC16D674EC80000 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x449 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 CALLVALUE EQ PUSH2 0x47C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x4D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP TIMESTAMP PUSH1 0x4 DUP2 SWAP1 SSTORE POP CALLER PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x54B DUP2 PUSH2 0x7DF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x560 DUP2 PUSH2 0x7F6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x578 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x586 DUP5 DUP3 DUP6 ADD PUSH2 0x53C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5B0 DUP6 DUP3 DUP7 ADD PUSH2 0x53C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5C1 DUP6 DUP3 DUP7 ADD PUSH2 0x551 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x5D4 DUP2 PUSH2 0x723 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5E3 DUP2 PUSH2 0x735 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5FA PUSH2 0x5F5 DUP3 PUSH2 0x735 JUMP JUMPDEST PUSH2 0x775 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x609 DUP2 PUSH2 0x741 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x618 DUP2 PUSH2 0x76B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x62F PUSH2 0x62A DUP3 PUSH2 0x76B JUMP JUMPDEST PUSH2 0x787 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x641 DUP3 DUP6 PUSH2 0x5E9 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x651 DUP3 DUP5 PUSH2 0x61E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x676 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5CB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x691 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5DA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6AC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x600 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6C7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x60F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6D8 DUP3 PUSH2 0x76B JUMP JUMPDEST SWAP2 POP PUSH2 0x6E3 DUP4 PUSH2 0x76B JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x718 JUMPI PUSH2 0x717 PUSH2 0x7A3 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x72E DUP3 PUSH2 0x74B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x780 DUP3 PUSH2 0x791 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x79C DUP3 PUSH2 0x7D2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF8 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7E8 DUP2 PUSH2 0x735 JUMP JUMPDEST DUP2 EQ PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7FF DUP2 PUSH2 0x76B JUMP JUMPDEST DUP2 EQ PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURN 0x5C CALLER 0xC2 SLOAD GASPRICE 0xE0 0xD1 SWAP8 PUSH24 0xA36961D2AD1D2A187DD1B0DC88731FA32D78F6FF98276473 PUSH16 0x6C634300080100330000000000000000 ",
"sourceMap": "4323:1748:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4347:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4382;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4417:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5900:169;;;;;;;;;;;;;:::i;:::-;;5396:386;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4449:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4478:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4936:240;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4347:29;;;;;;;;;;;;:::o;4382:::-;;;;;;;;;;;;;:::o;4417:26::-;;;;:::o;5900:169::-;5970:6;5962:5;;:14;;;;:::i;:::-;5944:15;:32;5936:41;;;;;;6020:7;5995:21;:32;;5987:41;;;;;;6038:6;;;;;;;;;;;:15;;:24;6054:7;6038:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5900:169::o;5396:386::-;5490:6;;;;;;;;;;5476:20;;:10;:20;;;5468:29;;;;;;5574:11;;5542;5555:13;5525:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5515:55;;;;;;:70;5507:79;;;;;;5629:7;5604:21;:32;;5596:41;;;;;;5675:11;;;;;;;;;;;5660:26;;:11;:26;;;5656:119;;;5700:6;;;;;;;;;;;:15;;:24;5716:7;5700:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5656:119;;;5751:6;;;;;;;;;;:15;;:24;5767:7;5751:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5656:119;5396:386;;:::o;4449:23::-;;;;;;;;;;;;;:::o;4478:17::-;;;;:::o;4936:240::-;5015:7;5002:9;:20;4994:29;;;;;;5057:1;5041:18;;:6;;;;;;;;;;;:18;;;5033:27;;;;;;5091:11;5079;;:23;;;;;;;;;;;;;;;;;;5118:15;5112:5;:21;;;;5158:10;5143:6;;:26;;;;;;;;;;;;;;;;;;4936:240;:::o;7:133:1:-;;88:6;75:20;66:29;;104:30;128:5;104:30;:::i;:::-;56:84;;;;:::o;146:139::-;;230:6;217:20;208:29;;246:33;273:5;246:33;:::i;:::-;198:87;;;;:::o;291:256::-;;396:2;384:9;375:7;371:23;367:32;364:2;;;412:1;409;402:12;364:2;455:1;480:50;522:7;513:6;502:9;498:22;480:50;:::i;:::-;470:60;;426:114;354:193;;;;:::o;553:401::-;;;675:2;663:9;654:7;650:23;646:32;643:2;;;691:1;688;681:12;643:2;734:1;759:50;801:7;792:6;781:9;777:22;759:50;:::i;:::-;749:60;;705:114;858:2;884:53;929:7;920:6;909:9;905:22;884:53;:::i;:::-;874:63;;829:118;633:321;;;;;:::o;960:142::-;1063:32;1089:5;1063:32;:::i;:::-;1058:3;1051:45;1041:61;;:::o;1108:109::-;1189:21;1204:5;1189:21;:::i;:::-;1184:3;1177:34;1167:50;;:::o;1223:145::-;1322:39;1339:21;1354:5;1339:21;:::i;:::-;1322:39;:::i;:::-;1317:3;1310:52;1300:68;;:::o;1374:118::-;1461:24;1479:5;1461:24;:::i;:::-;1456:3;1449:37;1439:53;;:::o;1498:118::-;1585:24;1603:5;1585:24;:::i;:::-;1580:3;1573:37;1563:53;;:::o;1622:157::-;1727:45;1747:24;1765:5;1747:24;:::i;:::-;1727:45;:::i;:::-;1722:3;1715:58;1705:74;;:::o;1785:384::-;;1934:69;1999:3;1990:6;1934:69;:::i;:::-;2028:1;2023:3;2019:11;2012:18;;2040:75;2111:3;2102:6;2040:75;:::i;:::-;2140:2;2135:3;2131:12;2124:19;;2160:3;2153:10;;1923:246;;;;;:::o;2175:254::-;;2322:2;2311:9;2307:18;2299:26;;2335:87;2419:1;2408:9;2404:17;2395:6;2335:87;:::i;:::-;2289:140;;;;:::o;2435:210::-;;2560:2;2549:9;2545:18;2537:26;;2573:65;2635:1;2624:9;2620:17;2611:6;2573:65;:::i;:::-;2527:118;;;;:::o;2651:222::-;;2782:2;2771:9;2767:18;2759:26;;2795:71;2863:1;2852:9;2848:17;2839:6;2795:71;:::i;:::-;2749:124;;;;:::o;2879:222::-;;3010:2;2999:9;2995:18;2987:26;;3023:71;3091:1;3080:9;3076:17;3067:6;3023:71;:::i;:::-;2977:124;;;;:::o;3107:305::-;;3166:20;3184:1;3166:20;:::i;:::-;3161:25;;3200:20;3218:1;3200:20;:::i;:::-;3195:25;;3354:1;3286:66;3282:74;3279:1;3276:81;3273:2;;;3360:18;;:::i;:::-;3273:2;3404:1;3401;3397:9;3390:16;;3151:261;;;;:::o;3418:104::-;;3492:24;3510:5;3492:24;:::i;:::-;3481:35;;3471:51;;;:::o;3528:90::-;;3605:5;3598:13;3591:21;3580:32;;3570:48;;;:::o;3624:77::-;;3690:5;3679:16;;3669:32;;;:::o;3707:126::-;;3784:42;3777:5;3773:54;3762:65;;3752:81;;;:::o;3839:77::-;;3905:5;3894:16;;3884:32;;;:::o;3922:95::-;;3987:24;4005:5;3987:24;:::i;:::-;3976:35;;3966:51;;;:::o;4023:79::-;;4091:5;4080:16;;4070:32;;;:::o;4108:93::-;;4174:21;4189:5;4174:21;:::i;:::-;4163:32;;4153:48;;;:::o;4207:180::-;4255:77;4252:1;4245:88;4352:4;4349:1;4342:15;4376:4;4373:1;4366:15;4393:96;;4476:5;4471:3;4467:15;4446:36;;4436:53;;;:::o;4495:116::-;4565:21;4580:5;4565:21;:::i;:::-;4558:5;4555:32;4545:2;;4601:1;4598;4591:12;4545:2;4535:76;:::o;4617:122::-;4690:24;4708:5;4690:24;:::i;:::-;4683:5;4680:35;4670:2;;4729:1;4726;4719:12;4670:2;4660:79;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "423000",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"chooseHeadB()": "1193",
"commitmentA()": "1174",
"guess(bool)": "63093",
"partyA()": "1212",
"partyB()": "1237",
"resolve(bool,uint256)": "infinite",
"timeB()": "1173",
"timeOut()": "infinite"
}
},
"methodIdentifiers": {
"chooseHeadB()": "82f5689e",
"commitmentA()": "43a63534",
"guess(bool)": "e0a8f09a",
"partyA()": "10e1d8ca",
"partyB()": "29040113",
"resolve(bool,uint256)": "65c363e2",
"timeB()": "a92cdf4b",
"timeOut()": "614d85e1"
}
},
"abi": [
{
"inputs": [
{
"internalType": "bytes32",
"name": "_commitmentA",
"type": "bytes32"
}
],
"stateMutability": "payable",
"type": "constructor"
},
{
"inputs": [],
"name": "chooseHeadB",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "commitmentA",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_chooseHead",
"type": "bool"
}
],
"name": "guess",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "partyA",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "partyB",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_chooseHead",
"type": "bool"
},
{
"internalType": "uint256",
"name": "_randomNumber",
"type": "uint256"
}
],
"name": "resolve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "timeB",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timeOut",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.1+commit.df193b15"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "bytes32",
"name": "_commitmentA",
"type": "bytes32"
}
],
"stateMutability": "payable",
"type": "constructor"
},
{
"inputs": [],
"name": "chooseHeadB",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "commitmentA",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_chooseHead",
"type": "bool"
}
],
"name": "guess",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "partyA",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "partyB",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_chooseHead",
"type": "bool"
},
{
"internalType": "uint256",
"name": "_randomNumber",
"type": "uint256"
}
],
"name": "resolve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "timeB",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timeOut",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"constructor": {
"details": "Constructor, commit head or tail.",
"params": {
"_commitmentA": "is keccak256(chooseHead,randomNumber);"
}
},
"guess(bool)": {
"details": "Guess the choice of party A.",
"params": {
"_chooseHead": "True if the guess is head, false otherwize."
}
},
"resolve(bool,uint256)": {
"details": "Reveal the commited value and send ETH to the winner.",
"params": {
"_chooseHead": "True if head was chosen.",
"_randomNumber": "The random number chosen to obfuscate the commitment."
}
},
"timeOut()": {
"details": "Time out party A if it takes more than 1 day to reveal. Send ETH to party B. "
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/attackable.sol": "HeadTail"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/attackable.sol": {
"keccak256": "0x5fbeeb33e4335fcd468eade7cb3c935e94da426ffdf3b62565201df5b0692d33",
"license": "UNLICENSED",
"urls": [
"bzz-raw://4cebb2a25b2182aa14aa74faab3446286bd6ec5b1439a182e0ea43a42be31310",
"dweb:/ipfs/QmckpSBtogyamrsKa2Jmx6BEuQhgQM2ue25fux82X9P4tP"
]
}
},
"version": 1
}
This file has been truncated, but you can view the full file.
{
"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": {
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061066e806100206000396000f3fe60806040526004361061004a5760003560e01c806318160ddd1461004f57806327e235e31461007a578063412664ae146100b7578063a6f2ae3a146100e0578063e4849b32146100ea575b600080fd5b34801561005b57600080fd5b50610064610113565b6040516100719190610440565b60405180910390f35b34801561008657600080fd5b506100a1600480360381019061009c91906103a3565b610119565b6040516100ae9190610440565b60405180910390f35b3480156100c357600080fd5b506100de60048036038101906100d991906103cc565b610131565b005b6100e86101df565b005b3480156100f657600080fd5b50610111600480360381019061010c9190610408565b610288565b005b60015481565b60006020528060005260406000206000915090505481565b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461017f919061053c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546101d4919061045b565b925050819055505050565b6000600154670de0b6b3a76400006101f7919061045b565b34670de0b6b3a764000061020b91906104e2565b61021591906104b1565b9050806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610265919061045b565b92505081905550806001600082825461027e919061045b565b9250508190555050565b6000670de0b6b3a764000082600154670de0b6b3a76400006102aa919061045b565b6102b491906104e2565b6102be91906104b1565b9050816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461030e919061053c565b925050819055508160016000828254610327919061053c565b925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610374573d6000803e3d6000fd5b505050565b6000813590506103888161060a565b92915050565b60008135905061039d81610621565b92915050565b6000602082840312156103b557600080fd5b60006103c384828501610379565b91505092915050565b600080604083850312156103df57600080fd5b60006103ed85828601610379565b92505060206103fe8582860161038e565b9150509250929050565b60006020828403121561041a57600080fd5b60006104288482850161038e565b91505092915050565b61043a816105a2565b82525050565b60006020820190506104556000830184610431565b92915050565b6000610466826105a2565b9150610471836105a2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156104a6576104a56105ac565b5b828201905092915050565b60006104bc826105a2565b91506104c7836105a2565b9250826104d7576104d66105db565b5b828204905092915050565b60006104ed826105a2565b91506104f8836105a2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610531576105306105ac565b5b828202905092915050565b6000610547826105a2565b9150610552836105a2565b925082821015610565576105646105ac565b5b828203905092915050565b600061057b82610582565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61061381610570565b811461061e57600080fd5b50565b61062a816105a2565b811461063557600080fd5b5056fea2646970667358221220d9e9d14e9dec3f5be436172d39aa93d8ecb6bbc832f3d082d8716872a44bb78d64736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x66E DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x18160DDD EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x27E235E3 EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x412664AE EQ PUSH2 0xB7 JUMPI DUP1 PUSH4 0xA6F2AE3A EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0xE4849B32 EQ PUSH2 0xEA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0x113 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x440 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9C SWAP2 SWAP1 PUSH2 0x3A3 JUMP JUMPDEST PUSH2 0x119 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAE SWAP2 SWAP1 PUSH2 0x440 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD9 SWAP2 SWAP1 PUSH2 0x3CC JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE8 PUSH2 0x1DF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x111 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10C SWAP2 SWAP1 PUSH2 0x408 JUMP JUMPDEST PUSH2 0x288 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x17F SWAP2 SWAP1 PUSH2 0x53C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x45B JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD PUSH8 0xDE0B6B3A7640000 PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x45B JUMP JUMPDEST CALLVALUE PUSH8 0xDE0B6B3A7640000 PUSH2 0x20B SWAP2 SWAP1 PUSH2 0x4E2 JUMP JUMPDEST PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x4B1 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x265 SWAP2 SWAP1 PUSH2 0x45B JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x27E SWAP2 SWAP1 PUSH2 0x45B JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH1 0x1 SLOAD PUSH8 0xDE0B6B3A7640000 PUSH2 0x2AA SWAP2 SWAP1 PUSH2 0x45B JUMP JUMPDEST PUSH2 0x2B4 SWAP2 SWAP1 PUSH2 0x4E2 JUMP JUMPDEST PUSH2 0x2BE SWAP2 SWAP1 PUSH2 0x4B1 JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x30E SWAP2 SWAP1 PUSH2 0x53C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x327 SWAP2 SWAP1 PUSH2 0x53C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x374 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x388 DUP2 PUSH2 0x60A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x39D DUP2 PUSH2 0x621 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3C3 DUP5 DUP3 DUP6 ADD PUSH2 0x379 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3ED DUP6 DUP3 DUP7 ADD PUSH2 0x379 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3FE DUP6 DUP3 DUP7 ADD PUSH2 0x38E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x41A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x428 DUP5 DUP3 DUP6 ADD PUSH2 0x38E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x43A DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x455 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x431 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x466 DUP3 PUSH2 0x5A2 JUMP JUMPDEST SWAP2 POP PUSH2 0x471 DUP4 PUSH2 0x5A2 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x4A6 JUMPI PUSH2 0x4A5 PUSH2 0x5AC JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4BC DUP3 PUSH2 0x5A2 JUMP JUMPDEST SWAP2 POP PUSH2 0x4C7 DUP4 PUSH2 0x5A2 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x4D7 JUMPI PUSH2 0x4D6 PUSH2 0x5DB JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4ED DUP3 PUSH2 0x5A2 JUMP JUMPDEST SWAP2 POP PUSH2 0x4F8 DUP4 PUSH2 0x5A2 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x531 JUMPI PUSH2 0x530 PUSH2 0x5AC JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x547 DUP3 PUSH2 0x5A2 JUMP JUMPDEST SWAP2 POP PUSH2 0x552 DUP4 PUSH2 0x5A2 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x565 JUMPI PUSH2 0x564 PUSH2 0x5AC JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57B DUP3 PUSH2 0x582 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x613 DUP2 PUSH2 0x570 JUMP JUMPDEST DUP2 EQ PUSH2 0x61E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x62A DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP2 EQ PUSH2 0x635 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0xE9 0xD1 0x4E SWAP14 0xEC EXTCODEHASH JUMPDEST 0xE4 CALLDATASIZE OR 0x2D CODECOPY 0xAA SWAP4 0xD8 0xEC 0xB6 0xBB 0xC8 ORIGIN RETURN 0xD0 DUP3 0xD8 PUSH18 0x6872A44BB78D64736F6C6343000801003300 ",
"sourceMap": "6690:1020:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:3593:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:1"
},
"nodeType": "YulFunctionCall",
"src": "78:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "107:26:1"
},
"nodeType": "YulFunctionCall",
"src": "107:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:1",
"type": ""
}
],
"src": "7:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "204:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "214:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "236:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "223:12:1"
},
"nodeType": "YulFunctionCall",
"src": "223:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "214:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "279:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "252:26:1"
},
"nodeType": "YulFunctionCall",
"src": "252:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "252:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "182:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "190:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "198:5:1",
"type": ""
}
],
"src": "152:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "363:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "409:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "418:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "421:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "411:6:1"
},
"nodeType": "YulFunctionCall",
"src": "411:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "411:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "384:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "393:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "380:3:1"
},
"nodeType": "YulFunctionCall",
"src": "380:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "405:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "376:3:1"
},
"nodeType": "YulFunctionCall",
"src": "376:32:1"
},
"nodeType": "YulIf",
"src": "373:2:1"
},
{
"nodeType": "YulBlock",
"src": "435:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "450:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "464:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "454:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "479:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "514:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "525:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "510:3:1"
},
"nodeType": "YulFunctionCall",
"src": "510:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "534:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "489:20:1"
},
"nodeType": "YulFunctionCall",
"src": "489:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "479:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "333:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "344:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "356:6:1",
"type": ""
}
],
"src": "297:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "648:324:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "694:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "703:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "706:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "696:6:1"
},
"nodeType": "YulFunctionCall",
"src": "696:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "696:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "669:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "678:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "665:3:1"
},
"nodeType": "YulFunctionCall",
"src": "665:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "690:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "661:3:1"
},
"nodeType": "YulFunctionCall",
"src": "661:32:1"
},
"nodeType": "YulIf",
"src": "658:2:1"
},
{
"nodeType": "YulBlock",
"src": "720:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "735:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "749:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "739:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "764:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "799:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "810:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "795:3:1"
},
"nodeType": "YulFunctionCall",
"src": "795:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "819:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "774:20:1"
},
"nodeType": "YulFunctionCall",
"src": "774:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "764:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "847:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "862:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "876:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "866:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "892:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "927:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "938:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "923:3:1"
},
"nodeType": "YulFunctionCall",
"src": "923:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "947:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "902:20:1"
},
"nodeType": "YulFunctionCall",
"src": "902:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "892:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "610:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "621:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "633:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "641:6:1",
"type": ""
}
],
"src": "565:407:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1044:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1090:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1099:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1102:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1092:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1092:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1092:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1065:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1074:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1061:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1061:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1086:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1057:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1057:32:1"
},
"nodeType": "YulIf",
"src": "1054:2:1"
},
{
"nodeType": "YulBlock",
"src": "1116:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1131:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1145:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1135:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1160:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1195:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1206:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1191:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1191:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1215:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1170:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1170:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1160:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1014:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1025:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1037:6:1",
"type": ""
}
],
"src": "978:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1311:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1328:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1351:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1333:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1333:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1321:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1321:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1321:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1299:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1306:3:1",
"type": ""
}
],
"src": "1246:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1468:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1478:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1490:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1501:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1486:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1486:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1478:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1558:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1571:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1582:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1567:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1567:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1514:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1514:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1514:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1440:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1452:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1463:4:1",
"type": ""
}
],
"src": "1370:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1642:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1652:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1675:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1657:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1657:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1652:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1686:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1709:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1691:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1691:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1686:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1849:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1851:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1851:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1851:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1770:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1777:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1845:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1773:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1773:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1767:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1767:81:1"
},
"nodeType": "YulIf",
"src": "1764:2:1"
},
{
"nodeType": "YulAssignment",
"src": "1881:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1892:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1895:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1888:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1888:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "1881:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1629:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1632:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "1638:3:1",
"type": ""
}
],
"src": "1598:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1951:143:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1961:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1984:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1966:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1966:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1961:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1995:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2018:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2000:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2000:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1995:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2042:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x12",
"nodeType": "YulIdentifier",
"src": "2044:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2044:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2044:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2039:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2032:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2032:9:1"
},
"nodeType": "YulIf",
"src": "2029:2:1"
},
{
"nodeType": "YulAssignment",
"src": "2074:14:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2083:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2086:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "2079:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2079:9:1"
},
"variableNames": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "2074:1:1"
}
]
}
]
},
"name": "checked_div_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1940:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1943:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nodeType": "YulTypedName",
"src": "1949:1:1",
"type": ""
}
],
"src": "1909:185:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2148:300:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2158:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2181:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2163:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2163:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2158:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2192:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2215:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2197:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2197:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2192:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2390:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "2392:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2392:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2392:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2302:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2295:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2295:9:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2288:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2288:17:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2310:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2317:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2385:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "2313:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2313:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2307:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2307:81:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2284:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2284:105:1"
},
"nodeType": "YulIf",
"src": "2281:2:1"
},
{
"nodeType": "YulAssignment",
"src": "2422:20:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2437:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2440:1:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "2433:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2433:9:1"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "2422:7:1"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "2131:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "2134:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "2140:7:1",
"type": ""
}
],
"src": "2100:348:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2499:146:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2509:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2532:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2514:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2514:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2509:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2543:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2566:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2548:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2548:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2543:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2590:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "2592:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2592:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2592:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2584:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2587:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2581:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2581:8:1"
},
"nodeType": "YulIf",
"src": "2578:2:1"
},
{
"nodeType": "YulAssignment",
"src": "2622:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2634:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2637:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2630:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2630:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "2622:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "2485:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "2488:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "2494:4:1",
"type": ""
}
],
"src": "2454:191:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2696:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2706:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2735:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2717:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2717:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2706:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2678:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2688:7:1",
"type": ""
}
],
"src": "2651:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2798:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2808:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2823:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2830:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2819:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2819:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2808:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2780:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2790:7:1",
"type": ""
}
],
"src": "2753:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2930:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2940:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2951:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2940:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2912:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2922:7:1",
"type": ""
}
],
"src": "2885:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2996:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3013:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3016:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3006:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3006:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3006:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3110:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3113:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3103:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3103:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3103:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3134:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3137:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3127:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3127:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3127:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "2968:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3182:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3199:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3202:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3192:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3192:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3192:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3296:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3299:4:1",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3289:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3289:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3289:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3320:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3323:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3313:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3313:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3313:15:1"
}
]
},
"name": "panic_error_0x12",
"nodeType": "YulFunctionDefinition",
"src": "3154:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3383:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3440:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3449:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3452:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3442:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3442:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3442:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3406:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3431:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "3413:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3413:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3403:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3403:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3396:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3396:43:1"
},
"nodeType": "YulIf",
"src": "3393:2:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3376:5:1",
"type": ""
}
],
"src": "3340:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3511:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3568:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3577:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3580:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3570:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3570:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3570:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3534:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3559:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3541:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3541:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3531:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3531:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3524:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3524:43:1"
},
"nodeType": "YulIf",
"src": "3521:2:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3504:5:1",
"type": ""
}
],
"src": "3468:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\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 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_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 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 function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040526004361061004a5760003560e01c806318160ddd1461004f57806327e235e31461007a578063412664ae146100b7578063a6f2ae3a146100e0578063e4849b32146100ea575b600080fd5b34801561005b57600080fd5b50610064610113565b6040516100719190610440565b60405180910390f35b34801561008657600080fd5b506100a1600480360381019061009c91906103a3565b610119565b6040516100ae9190610440565b60405180910390f35b3480156100c357600080fd5b506100de60048036038101906100d991906103cc565b610131565b005b6100e86101df565b005b3480156100f657600080fd5b50610111600480360381019061010c9190610408565b610288565b005b60015481565b60006020528060005260406000206000915090505481565b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461017f919061053c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546101d4919061045b565b925050819055505050565b6000600154670de0b6b3a76400006101f7919061045b565b34670de0b6b3a764000061020b91906104e2565b61021591906104b1565b9050806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610265919061045b565b92505081905550806001600082825461027e919061045b565b9250508190555050565b6000670de0b6b3a764000082600154670de0b6b3a76400006102aa919061045b565b6102b491906104e2565b6102be91906104b1565b9050816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461030e919061053c565b925050819055508160016000828254610327919061053c565b925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610374573d6000803e3d6000fd5b505050565b6000813590506103888161060a565b92915050565b60008135905061039d81610621565b92915050565b6000602082840312156103b557600080fd5b60006103c384828501610379565b91505092915050565b600080604083850312156103df57600080fd5b60006103ed85828601610379565b92505060206103fe8582860161038e565b9150509250929050565b60006020828403121561041a57600080fd5b60006104288482850161038e565b91505092915050565b61043a816105a2565b82525050565b60006020820190506104556000830184610431565b92915050565b6000610466826105a2565b9150610471836105a2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156104a6576104a56105ac565b5b828201905092915050565b60006104bc826105a2565b91506104c7836105a2565b9250826104d7576104d66105db565b5b828204905092915050565b60006104ed826105a2565b91506104f8836105a2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610531576105306105ac565b5b828202905092915050565b6000610547826105a2565b9150610552836105a2565b925082821015610565576105646105ac565b5b828203905092915050565b600061057b82610582565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61061381610570565b811461061e57600080fd5b50565b61062a816105a2565b811461063557600080fd5b5056fea2646970667358221220d9e9d14e9dec3f5be436172d39aa93d8ecb6bbc832f3d082d8716872a44bb78d64736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x18160DDD EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x27E235E3 EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x412664AE EQ PUSH2 0xB7 JUMPI DUP1 PUSH4 0xA6F2AE3A EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0xE4849B32 EQ PUSH2 0xEA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0x113 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x440 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9C SWAP2 SWAP1 PUSH2 0x3A3 JUMP JUMPDEST PUSH2 0x119 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAE SWAP2 SWAP1 PUSH2 0x440 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD9 SWAP2 SWAP1 PUSH2 0x3CC JUMP JUMPDEST PUSH2 0x131 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE8 PUSH2 0x1DF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x111 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10C SWAP2 SWAP1 PUSH2 0x408 JUMP JUMPDEST PUSH2 0x288 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x17F SWAP2 SWAP1 PUSH2 0x53C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x45B JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD PUSH8 0xDE0B6B3A7640000 PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x45B JUMP JUMPDEST CALLVALUE PUSH8 0xDE0B6B3A7640000 PUSH2 0x20B SWAP2 SWAP1 PUSH2 0x4E2 JUMP JUMPDEST PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x4B1 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x265 SWAP2 SWAP1 PUSH2 0x45B JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x27E SWAP2 SWAP1 PUSH2 0x45B JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH1 0x1 SLOAD PUSH8 0xDE0B6B3A7640000 PUSH2 0x2AA SWAP2 SWAP1 PUSH2 0x45B JUMP JUMPDEST PUSH2 0x2B4 SWAP2 SWAP1 PUSH2 0x4E2 JUMP JUMPDEST PUSH2 0x2BE SWAP2 SWAP1 PUSH2 0x4B1 JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x30E SWAP2 SWAP1 PUSH2 0x53C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x327 SWAP2 SWAP1 PUSH2 0x53C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x374 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x388 DUP2 PUSH2 0x60A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x39D DUP2 PUSH2 0x621 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3C3 DUP5 DUP3 DUP6 ADD PUSH2 0x379 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3ED DUP6 DUP3 DUP7 ADD PUSH2 0x379 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3FE DUP6 DUP3 DUP7 ADD PUSH2 0x38E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x41A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x428 DUP5 DUP3 DUP6 ADD PUSH2 0x38E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x43A DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x455 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x431 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x466 DUP3 PUSH2 0x5A2 JUMP JUMPDEST SWAP2 POP PUSH2 0x471 DUP4 PUSH2 0x5A2 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x4A6 JUMPI PUSH2 0x4A5 PUSH2 0x5AC JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4BC DUP3 PUSH2 0x5A2 JUMP JUMPDEST SWAP2 POP PUSH2 0x4C7 DUP4 PUSH2 0x5A2 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x4D7 JUMPI PUSH2 0x4D6 PUSH2 0x5DB JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4ED DUP3 PUSH2 0x5A2 JUMP JUMPDEST SWAP2 POP PUSH2 0x4F8 DUP4 PUSH2 0x5A2 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x531 JUMPI PUSH2 0x530 PUSH2 0x5AC JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x547 DUP3 PUSH2 0x5A2 JUMP JUMPDEST SWAP2 POP PUSH2 0x552 DUP4 PUSH2 0x5A2 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x565 JUMPI PUSH2 0x564 PUSH2 0x5AC JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57B DUP3 PUSH2 0x582 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x613 DUP2 PUSH2 0x570 JUMP JUMPDEST DUP2 EQ PUSH2 0x61E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x62A
View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

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