TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

019b477e-b317-72ff-8bc4-eb27159612f3

complete
Chain ID
1
Address
Block Number
Created
Mon, Dec 22, 2025 7:17 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
2
Validated
2
Source
Verified
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
crit 0 high 2 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
22481 artifact.fetch complete 1 / 3 3 months ago
22482 tool.cast_disasm complete 1 / 3 3 months ago
65534 analysis.bundle complete 1 / 3 1 week ago
65535 capability.graph complete 1 / 3 1 week ago
65536 detector.run complete 1 / 3 1 week ago
65537 validation.fork complete 1 / 3 1 week ago
113499 report.consolidate complete 1 / 6 1 week ago
113500 tool.slither complete 1 / 2 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: yes

Slither

tool.slither
Status
complete
Attempts
1 / 2
Findings
3
Solc
0.4.25 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-a1kvj1uv)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-a1kvj1uv)

SimpleExchange.gasExchangePrivate(address,uint256,uint256,uint256) (contracts/Contract.sol#692-716) uses arbitrary from in transferFrom: assert(bool)(EURO_TOKEN.transferFrom(gasRecipient,this,amountEurUlps)) (contracts/Contract.sol#704-708)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#arbitrary-from-in-transferfrom

Reclaimable.reclaim(IBasicToken) (contracts/Contract.sol#332-345) sends eth to arbitrary user
	Dangerous calls:
	- reclaimer.transfer(address(this).balance) (contracts/Contract.sol#337-339)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#functions-that-send-ether-to-arbitrary-destinations

Reentrancy in AccessControlled.setAccessPolicy(IAccessPolicy,address) (contracts/Contract.sol#107-125):
	External calls:
	- require(bool)(newPolicy.allowed(newAccessController,ROLE_ACCESS_CONTROLLER,this,msg.sig)) (contracts/Contract.sol#118-120)
	- only(ROLE_ACCESS_CONTROLLER) (contracts/Contract.sol#112-114)
		- require(bool)(_accessPolicy.allowed(msg.sender,role,this,msg.sig)) (contracts/Contract.sol#91-92)
	State variables written after the call(s):
	- _accessPolicy = newPolicy (contracts/Contract.sol#123)
	AccessControlled._accessPolicy (contracts/Contract.sol#81-82) can be used in cross function reentrancies:
	- AccessControlled.accessPolicy() (contracts/Contract.sol#125-131)
	- AccessControlled.only(bytes32) (contracts/Contract.sol#89-92)
	- AccessControlled.setAccessPolicy(IAccessPolicy,address) (contracts/Contract.sol#107-125)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1

SimpleExchange.getExchangeRates(address[],address[]).idx (contracts/Contract.sol#666) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables

SimpleExchange.constructor(IAccessPolicy,IERC223Token,IERC223Token).accessPolicy (contracts/Contract.sol#573-575) shadows:
	- AccessControlled.accessPolicy() (contracts/Contract.sol#125-131) (function)
	- IAccessControlled.accessPolicy() (contracts/Contract.sol#52-56) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing

Reclaimable.reclaim(IBasicToken).reclaimer (contracts/Contract.sol#333-335) lacks a zero-check on :
		- reclaimer.transfer(address(this).balance) (contracts/Contract.sol#337-339)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation

SimpleExchange.gasExchangePrivate(address,uint256,uint256,uint256) (contracts/Contract.sol#692-716) has external calls inside a loop: assert(bool)(EURO_TOKEN.transferFrom(gasRecipient,this,amountEurUlps)) (contracts/Contract.sol#704-708)
	Calls stack containing the loop:
		SimpleExchange.gasExchangeMultiple(address[],uint256[],uint256)
SimpleExchange.gasExchangePrivate(address,uint256,uint256,uint256) (contracts/Contract.sol#692-716) has external calls inside a loop: gasRecipient.transfer(amountEthWei) (contracts/Contract.sol#711-712)
	Calls stack containing the loop:
		SimpleExchange.gasExchangeMultiple(address[],uint256[],uint256)
SimpleExchange.setExchangeRatePrivate(IERC223Token,IERC223Token,uint256) (contracts/Contract.sol#737-768) has external calls inside a loop: require(bool,string)(denominatorToken.decimals() == numeratorToken.decimals(),NF_SEX_DECIMALS) (contracts/Contract.sol#748-749)
	Calls stack containing the loop:
		SimpleExchange.setExchangeRates(IERC223Token[],IERC223Token[],uint256[])
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop

Reentrancy in SimpleExchange.setExchangeRatePrivate(IERC223Token,IERC223Token,uint256) (contracts/Contract.sol#737-768):
	External calls:
	- require(bool,string)(denominatorToken.decimals() == numeratorToken.decimals(),NF_SEX_DECIMALS) (contracts/Contract.sol#748-749)
	State variables written after the call(s):
	- _rates[denominatorToken][numeratorToken] = TokenRate({rateFraction:uint128(invRateFraction),timestamp:uint128(block.timestamp)}) (contracts/Contract.sol#754-761)
	- _rates[numeratorToken][denominatorToken] = TokenRate({rateFraction:uint128(rateFraction),timestamp:uint128(block.timestamp)}) (contracts/Contract.sol#761-764)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2

Reentrancy in SimpleExchange.gasExchange(address,uint256,uint256) (contracts/Contract.sol#589-611):
	External calls:
	- gasExchangePrivate(gasRecipient,amountEurUlps,exchangeFeeFraction,rate) (contracts/Contract.sol#606-611)
		- assert(bool)(EURO_TOKEN.transferFrom(gasRecipient,this,amountEurUlps)) (contracts/Contract.sol#704-708)
	- only(ROLE_GAS_EXCHANGE) (contracts/Contract.sol#592-593)
		- require(bool)(_accessPolicy.allowed(msg.sender,role,this,msg.sig)) (contracts/Contract.sol#91-92)
	External calls sending eth:
	- gasExchangePrivate(gasRecipient,amountEurUlps,exchangeFeeFraction,rate) (contracts/Contract.sol#606-611)
		- gasRecipient.transfer(amountEthWei) (contracts/Contract.sol#711-712)
	Event emitted after the call(s):
	- LogGasExchange(gasRecipient,amountEurUlps,exchangeFeeFraction,amountEthWei,rate) (contracts/Contract.sol#712-716)
		- gasExchangePrivate(gasRecipient,amountEurUlps,exchangeFeeFraction,rate) (contracts/Contract.sol#606-611)
Reentrancy in SimpleExchange.gasExchangeMultiple(address[],uint256[],uint256) (contracts/Contract.sol#611-632):
	External calls:
	- gasExchangePrivate(gasRecipients[idx],amountsEurUlps[idx],exchangeFeeFraction,rate) (contracts/Contract.sol#629-631)
		- assert(bool)(EURO_TOKEN.transferFrom(gasRecipient,this,amountEurUlps)) (contracts/Contract.sol#704-708)
	- only(ROLE_GAS_EXCHANGE) (contracts/Contract.sol#617-619)
		- require(bool)(_accessPolicy.allowed(msg.sender,role,this,msg.sig)) (contracts/Contract.sol#91-92)
	External calls sending eth:
	- gasExchangePrivate(gasRecipients[idx],amountsEurUlps[idx],exchangeFeeFraction,rate) (contracts/Contract.sol#629-631)
		- gasRecipient.transfer(amountEthWei) (contracts/Contract.sol#711-712)
	Event emitted after the call(s):
	- LogGasExchange(gasRecipient,amountEurUlps,exchangeFeeFraction,amountEthWei,rate) (contracts/Contract.sol#712-716)
		- gasExchangePrivate(gasRecipients[idx],amountsEurUlps[idx],exchangeFeeFraction,rate) (contracts/Contract.sol#629-631)
Reentrancy in SimpleExchange.gasExchangePrivate(address,uint256,uint256,uint256) (contracts/Contract.sol#692-716):
	External calls:
	- assert(bool)(EURO_TOKEN.transferFrom(gasRecipient,this,amountEurUlps)) (contracts/Contract.sol#704-708)
	External calls sending eth:
	- gasRecipient.transfer(amountEthWei) (contracts/Contract.sol#711-712)
	Event emitted after the call(s):
	- LogGasExchange(gasRecipient,amountEurUlps,exchangeFeeFraction,amountEthWei,rate) (contracts/Contract.sol#712-716)
Reentrancy in AccessControlled.setAccessPolicy(IAccessPolicy,address) (contracts/Contract.sol#107-125):
	External calls:
	- require(bool)(newPolicy.allowed(newAccessController,ROLE_ACCESS_CONTROLLER,this,msg.sig)) (contracts/Contract.sol#118-120)
	- only(ROLE_ACCESS_CONTROLLER) (contracts/Contract.sol#112-114)
		- require(bool)(_accessPolicy.allowed(msg.sender,role,this,msg.sig)) (contracts/Contract.sol#91-92)
	Event emitted after the call(s):
	- LogAccessPolicyChanged(msg.sender,oldPolicy,newPolicy) (contracts/Contract.sol#123-125)
Reentrancy in SimpleExchange.setExchangeRate(IERC223Token,IERC223Token,uint256) (contracts/Contract.sol#639-642):
	External calls:
	- setExchangeRatePrivate(numeratorToken,denominatorToken,rateFraction) (contracts/Contract.sol#641-642)
		- require(bool,string)(denominatorToken.decimals() == numeratorToken.decimals(),NF_SEX_DECIMALS) (contracts/Contract.sol#748-749)
	- only(ROLE_TOKEN_RATE_ORACLE) (contracts/Contract.sol#640-641)
		- require(bool)(_accessPolicy.allowed(msg.sender,role,this,msg.sig)) (contracts/Contract.sol#91-92)
	Event emitted after the call(s):
	- LogSetExchangeRate(numeratorToken,denominatorToken,rateFraction) (contracts/Contract.sol#766)
		- setExchangeRatePrivate(numeratorToken,denominatorToken,rateFraction) (contracts/Contract.sol#641-642)
	- LogSetExchangeRate(denominatorToken,numeratorToken,invRateFraction) (contracts/Contract.sol#767-768)
		- setExchangeRatePrivate(numeratorToken,denominatorToken,rateFraction) (contracts/Contract.sol#641-642)
Reentrancy in SimpleExchange.setExchangeRatePrivate(IERC223Token,IERC223Token,uint256) (contracts/Contract.sol#737-768):
	External calls:
	- require(bool,string)(denominatorToken.decimals() == numeratorToken.decimals(),NF_SEX_DECIMALS) (contracts/Contract.sol#748-749)
	Event emitted after the call(s):
	- LogSetExchangeRate(numeratorToken,denominatorToken,rateFraction) (contracts/Contract.sol#766)
	- LogSetExchangeRate(denominatorToken,numeratorToken,invRateFraction) (contracts/Contract.sol#767-768)
Reentrancy in SimpleExchange.setExchangeRates(IERC223Token[],IERC223Token[],uint256[]) (contracts/Contract.sol#642-652):
	External calls:
	- setExchangeRatePrivate(numeratorTokens[idx],denominatorTokens[idx],rateFractions[idx]) (contracts/Contract.sol#651-652)
		- require(bool,string)(denominatorToken.decimals() == numeratorToken.decimals(),NF_SEX_DECIMALS) (contracts/Contract.sol#748-749)
	- only(ROLE_TOKEN_RATE_ORACLE) (contracts/Contract.sol#645)
		- require(bool)(_accessPolicy.allowed(msg.sender,role,this,msg.sig)) (contracts/Contract.sol#91-92)
	Event emitted after the call(s):
	- LogSetExchangeRate(numeratorToken,denominatorToken,rateFraction) (contracts/Contract.sol#766)
		- setExchangeRatePrivate(numeratorTokens[idx],denominatorTokens[idx],rateFractions[idx]) (contracts/Contract.sol#651-652)
	- LogSetExchangeRate(denominatorToken,numeratorToken,invRateFraction) (contracts/Contract.sol#767-768)
		- setExchangeRatePrivate(numeratorTokens[idx],denominatorTokens[idx],rateFractions[idx]) (contracts/Contract.sol#651-652)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3

SimpleExchange.gasExchange(address,uint256,uint256) (contracts/Contract.sol#589-611) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp - rateTimestamp < 3600,NF_SEX_OLD_RATE) (contracts/Contract.sol#603-606)
SimpleExchange.gasExchangeMultiple(address[],uint256[],uint256) (contracts/Contract.sol#611-632) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp - rateTimestamp < 3600,NF_SEX_OLD_RATE) (contracts/Contract.sol#625-626)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp

Void constructor called in SimpleExchange.constructor(IAccessPolicy,IERC223Token,IERC223Token) (contracts/Contract.sol#572-583):
	- Reclaimable() (contracts/Contract.sol#580)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#void-constructor

Math.absDiff(uint256,uint256) (contracts/Contract.sol#140-147) is never used and should be removed
Math.max(uint256,uint256) (contracts/Contract.sol#215-221) is never used and should be removed
Math.min(uint256,uint256) (contracts/Contract.sol#207-214) is never used and should be removed
Math.sub(uint256,uint256) (contracts/Contract.sol#191-197) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code

Version constraint 0.4.25 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- DirtyBytesArrayToStorage
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow
	- privateCanBeOverridden
	- SignedArrayStorageCopy
	- ABIEncoderV2StorageArrayWithMultiSlotElement
	- DynamicConstructorArgumentsClippedABIV2
	- UninitializedFunctionPointerInConstructor_0.4.x
	- IncorrectEventSignatureInLibraries_0.4.x
	- ABIEncoderV2PackedStorage_0.4.x.
It is used by:
	- 0.4.25 (contracts/Contract.sol#1)
solc-0.4.25 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible.
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Variable SimpleExchange.ETHER_TOKEN (contracts/Contract.sol#557) is not in mixedCase
Variable SimpleExchange.EURO_TOKEN (contracts/Contract.sol#559-560) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

Reentrancy in SimpleExchange.gasExchangePrivate(address,uint256,uint256,uint256) (contracts/Contract.sol#692-716):
	External calls:
	- gasRecipient.transfer(amountEthWei) (contracts/Contract.sol#711-712)
	Event emitted after the call(s):
	- LogGasExchange(gasRecipient,amountEurUlps,exchangeFeeFraction,amountEthWei,rate) (contracts/Contract.sol#712-716)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-4

AccessRoles.ROLE_NEUMARK_ISSUER (contracts/Contract.sol#242-246) is never used in SimpleExchange (contracts/Contract.sol#544-768)
AccessRoles.ROLE_NEUMARK_BURNER (contracts/Contract.sol#247-250) is never used in SimpleExchange (contracts/Contract.sol#544-768)
AccessRoles.ROLE_SNAPSHOT_CREATOR (contracts/Contract.sol#250-253) is never used in SimpleExchange (contracts/Contract.sol#544-768)
AccessRoles.ROLE_TRANSFER_ADMIN (contracts/Contract.sol#253-256) is never used in SimpleExchange (contracts/Contract.sol#544-768)
AccessRoles.ROLE_PLATFORM_OPERATOR_REPRESENTATIVE (contracts/Contract.sol#262-264) is never used in SimpleExchange (contracts/Contract.sol#544-768)
AccessRoles.ROLE_EURT_DEPOSIT_MANAGER (contracts/Contract.sol#264-265) is never used in SimpleExchange (contracts/Contract.sol#544-768)
AccessRoles.ROLE_IDENTITY_MANAGER (contracts/Contract.sol#267-268) is never used in SimpleExchange (contracts/Contract.sol#544-768)
AccessRoles.ROLE_EURT_LEGAL_MANAGER (contracts/Contract.sol#270-271) is never used in SimpleExchange (contracts/Contract.sol#544-768)
AccessRoles.ROLE_UNIVERSE_MANAGER (contracts/Contract.sol#273-274) is never used in SimpleExchange (contracts/Contract.sol#544-768)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-state-variable

transfer(address,uint256,bytes) should be declared external:
	- IERC223Token.transfer(address,uint256,bytes) (contracts/Contract.sol#452-455)
gasExchangeMultiple(address[],uint256[],uint256) should be declared external:
	- IGasExchange.gasExchangeMultiple(address[],uint256[],uint256) (contracts/Contract.sol#507-508)
	- SimpleExchange.gasExchangeMultiple(address[],uint256[],uint256) (contracts/Contract.sol#611-632)
setExchangeRates(IERC223Token[],IERC223Token[],uint256[]) should be declared external:
	- IGasExchange.setExchangeRates(IERC223Token[],IERC223Token[],uint256[]) (contracts/Contract.sol#529-530)
	- SimpleExchange.setExchangeRates(IERC223Token[],IERC223Token[],uint256[]) (contracts/Contract.sol#642-652)
getExchangeRates(address[],address[]) should be declared external:
	- ITokenExchangeRateOracle.getExchangeRates(address[],address[]) (contracts/Contract.sol#537-542)
	- SimpleExchange.getExchangeRates(address[],address[]) (contracts/Contract.sol#661-682)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#public-function-that-could-be-declared-external
. analyzed (16 contracts with 100 detectors), 42 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.4.25",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.4.25",
        "install_stderr": null,
        "install_stdout": "Version '0.4.25' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-a1kvj1uv --allow-paths /tmp/slither-a1kvj1uv,/tmp/slither-a1kvj1uv/lib,/tmp/slither-a1kvj1uv/src",
    "remappings": [],
    "source_files": [
        "contracts/Contract.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 42,
    "workspace_hash": "90c36935bebb7f5a812286aff042724c9fb81c14e7866271943c815e45529160",
    "duration_seconds": 0.5899252891540527,
    "solc_version_requested": "0.4.25"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
0
No findings?
View stderr
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-v16rh4vq
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5c95-d2c1-7d71-bb93-6b11801995ec
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
warning: Codex could not find system bubblewrap on PATH. Please install bubblewrap with your package manager. Codex will use the vendored bubblewrap in the meantime.
ERROR: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at Apr 8th, 2026 9:11 AM.
ERROR: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at Apr 8th, 2026 9:11 AM.
Metadata
{
    "codex": {
        "ran_at": "2026-04-05T07:40:17.559724+00:00",
        "returncode": 1
    },
    "project": {
        "mode": "source",
        "file_count": 1,
        "import_count": 0,
        "first_party_contracts_count": 1
    },
    "summary": null,
    "no_findings": null,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
14
EXT*/BALANCE
15
Total opcodes
3761
Flags
heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00a3
0000000c: JUMPI
0000000d: PUSH4 0xffffffff
00000012: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000030: PUSH1 0x00
00000032: CALLDATALOAD
00000033: DIV
00000034: AND
00000035: PUSH4 0x259df814
0000003a: DUP2
0000003b: EQ
0000003c: PUSH2 0x00e4
0000003f: JUMPI
00000040: DUP1
00000041: PUSH4 0x57875631
00000046: EQ
00000047: PUSH2 0x010d
0000004a: JUMPI
0000004b: DUP1
0000004c: PUSH4 0x759970be
00000051: EQ
00000052: PUSH2 0x0134
00000055: JUMPI
00000056: DUP1
00000057: PUSH4 0x782aaeea
0000005c: EQ
0000005d: PUSH2 0x01c4
00000060: JUMPI
00000061: DUP1
00000062: PUSH4 0x8291286c
00000067: EQ
00000068: PUSH2 0x01ee
0000006b: JUMPI
0000006c: DUP1
0000006d: PUSH4 0x9be54fe9
00000072: EQ
00000073: PUSH2 0x021c
00000076: JUMPI
00000077: DUP1
00000078: PUSH4 0xbaaa61be
0000007d: EQ
0000007e: PUSH2 0x0343
00000081: JUMPI
00000082: DUP1
00000083: PUSH4 0xe8b6ab90
00000088: EQ
00000089: PUSH2 0x036a
0000008c: JUMPI
0000008d: DUP1
0000008e: PUSH4 0xf5d60a51
00000093: EQ
00000094: PUSH2 0x0431
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0xfc772c8b
0000009e: EQ
0000009f: PUSH2 0x0462
000000a2: JUMPI
000000a3: JUMPDEST
000000a4: PUSH1 0x40
000000a6: DUP1
000000a7: MLOAD
000000a8: CALLER
000000a9: DUP2
000000aa: MSTORE
000000ab: CALLVALUE
000000ac: PUSH1 0x20
000000ae: DUP3
000000af: ADD
000000b0: MSTORE
000000b1: ADDRESS
000000b2: BALANCE
000000b3: DUP2
000000b4: DUP4
000000b5: ADD
000000b6: MSTORE
000000b7: SWAP1
000000b8: MLOAD
000000b9: PUSH32 0x633d9fea77720aaf2e5fa116283184d790773f86cb47f83e32a613a0f7afc3b4
000000da: SWAP2
000000db: DUP2
000000dc: SWAP1
000000dd: SUB
000000de: PUSH1 0x60
000000e0: ADD
000000e1: SWAP1
000000e2: LOG1
000000e3: STOP
000000e4: JUMPDEST
000000e5: CALLVALUE
000000e6: DUP1
000000e7: ISZERO
000000e8: PUSH2 0x00f0
000000eb: JUMPI
000000ec: PUSH1 0x00
000000ee: DUP1
000000ef: REVERT
000000f0: JUMPDEST
000000f1: POP
000000f2: PUSH2 0x010b
000000f5: PUSH1 0x01
000000f7: PUSH1 0xa0
000000f9: PUSH1 0x02
000000fb: EXP
000000fc: SUB
000000fd: PUSH1 0x04
000000ff: CALLDATALOAD
00000100: AND
00000101: PUSH1 0x24
00000103: CALLDATALOAD
00000104: PUSH1 0x44
00000106: CALLDATALOAD
00000107: PUSH2 0x0483
0000010a: JUMP
0000010b: JUMPDEST
0000010c: STOP
0000010d: JUMPDEST
0000010e: CALLVALUE
0000010f: DUP1
00000110: ISZERO
00000111: PUSH2 0x0119
00000114: JUMPI
00000115: PUSH1 0x00
00000117: DUP1
00000118: REVERT
00000119: JUMPDEST
0000011a: POP
0000011b: PUSH2 0x010b
0000011e: PUSH1 0x01
00000120: PUSH1 0xa0
00000122: PUSH1 0x02
00000124: EXP
00000125: SUB
00000126: PUSH1 0x04
00000128: CALLDATALOAD
00000129: DUP2
0000012a: AND
0000012b: SWAP1
0000012c: PUSH1 0x24
0000012e: CALLDATALOAD
0000012f: AND
00000130: PUSH2 0x05ea
00000133: JUMP
00000134: JUMPDEST
00000135: CALLVALUE
00000136: DUP1
00000137: ISZERO
00000138: PUSH2 0x0140
0000013b: JUMPI
0000013c: PUSH1 0x00
0000013e: DUP1
0000013f: REVERT
00000140: JUMPDEST
00000141: POP
00000142: PUSH1 0x40
00000144: DUP1
00000145: MLOAD
00000146: PUSH1 0x20
00000148: PUSH1 0x04
0000014a: DUP1
0000014b: CALLDATALOAD
0000014c: DUP1
0000014d: DUP3
0000014e: ADD
0000014f: CALLDATALOAD
00000150: DUP4
00000151: DUP2
00000152: MUL
00000153: DUP1
00000154: DUP7
00000155: ADD
00000156: DUP6
00000157: ADD
00000158: SWAP1
00000159: SWAP7
0000015a: MSTORE
0000015b: DUP1
0000015c: DUP6
0000015d: MSTORE
0000015e: PUSH2 0x010b
00000161: SWAP6
00000162: CALLDATASIZE
00000163: SWAP6
00000164: SWAP4
00000165: SWAP5
00000166: PUSH1 0x24
00000168: SWAP5
00000169: SWAP4
0000016a: DUP6
0000016b: ADD
0000016c: SWAP3
0000016d: SWAP2
0000016e: DUP3
0000016f: SWAP2
00000170: DUP6
00000171: ADD
00000172: SWAP1
00000173: DUP5
00000174: SWAP1
00000175: DUP1
00000176: DUP3
00000177: DUP5
00000178: CALLDATACOPY
00000179: POP
0000017a: POP
0000017b: PUSH1 0x40
0000017d: DUP1
0000017e: MLOAD
0000017f: DUP8
00000180: CALLDATALOAD
00000181: DUP10
00000182: ADD
00000183: DUP1
00000184: CALLDATALOAD
00000185: PUSH1 0x20
00000187: DUP2
00000188: DUP2
00000189: MUL
0000018a: DUP5
0000018b: DUP2
0000018c: ADD
0000018d: DUP3
0000018e: ADD
0000018f: SWAP1
00000190: SWAP6
00000191: MSTORE
00000192: DUP2
00000193: DUP5
00000194: MSTORE
00000195: SWAP9
00000196: SWAP12
00000197: SWAP11
00000198: SWAP10
00000199: DUP10
0000019a: ADD
0000019b: SWAP9
0000019c: SWAP3
0000019d: SWAP8
0000019e: POP
0000019f: SWAP1
000001a0: DUP3
000001a1: ADD
000001a2: SWAP6
000001a3: POP
000001a4: SWAP4
000001a5: POP
000001a6: DUP4
000001a7: SWAP3
000001a8: POP
000001a9: DUP6
000001aa: ADD
000001ab: SWAP1
000001ac: DUP5
000001ad: SWAP1
000001ae: DUP1
000001af: DUP3
000001b0: DUP5
000001b1: CALLDATACOPY
000001b2: POP
000001b3: SWAP5
000001b4: SWAP8
000001b5: POP
000001b6: POP
000001b7: SWAP4
000001b8: CALLDATALOAD
000001b9: SWAP5
000001ba: POP
000001bb: PUSH2 0x07f1
000001be: SWAP4
000001bf: POP
000001c0: POP
000001c1: POP
000001c2: POP
000001c3: JUMP
000001c4: JUMPDEST
000001c5: CALLVALUE
000001c6: DUP1
000001c7: ISZERO
000001c8: PUSH2 0x01d0
000001cb: JUMPI
000001cc: PUSH1 0x00
000001ce: DUP1
000001cf: REVERT
000001d0: JUMPDEST
000001d1: POP
000001d2: PUSH2 0x010b
000001d5: PUSH1 0x01
000001d7: PUSH1 0xa0
000001d9: PUSH1 0x02
000001db: EXP
000001dc: SUB
000001dd: PUSH1 0x04
000001df: CALLDATALOAD
000001e0: DUP2
000001e1: AND
000001e2: SWAP1
000001e3: PUSH1 0x24
000001e5: CALLDATALOAD
000001e6: AND
000001e7: PUSH1 0x44
000001e9: CALLDATALOAD
000001ea: PUSH2 0x09af
000001ed: JUMP
000001ee: JUMPDEST
000001ef: CALLVALUE
000001f0: DUP1
000001f1: ISZERO
000001f2: PUSH2 0x01fa
000001f5: JUMPI
000001f6: PUSH1 0x00
000001f8: DUP1
000001f9: REVERT
000001fa: JUMPDEST
000001fb: POP
000001fc: PUSH2 0x0203
000001ff: PUSH2 0x0a89
00000202: JUMP
00000203: JUMPDEST
00000204: PUSH1 0x40
00000206: DUP1
00000207: MLOAD
00000208: SWAP3
00000209: DUP4
0000020a: MSTORE
0000020b: PUSH1 0x20
0000020d: DUP4
0000020e: ADD
0000020f: SWAP2
00000210: SWAP1
00000211: SWAP2
00000212: MSTORE
00000213: DUP1
00000214: MLOAD
00000215: SWAP2
00000216: DUP3
00000217: SWAP1
00000218: SUB
00000219: ADD
0000021a: SWAP1
0000021b: RETURN
0000021c: JUMPDEST
0000021d: CALLVALUE
0000021e: DUP1
0000021f: ISZERO
00000220: PUSH2 0x0228
00000223: JUMPI
00000224: PUSH1 0x00
00000226: DUP1
00000227: REVERT
00000228: JUMPDEST
00000229: POP
0000022a: PUSH1 0x40
0000022c: DUP1
0000022d: MLOAD
0000022e: PUSH1 0x20
00000230: PUSH1 0x04
00000232: DUP1
00000233: CALLDATALOAD
00000234: DUP1
00000235: DUP3
00000236: ADD
00000237: CALLDATALOAD
00000238: DUP4
00000239: DUP2
0000023a: MUL
0000023b: DUP1
0000023c: DUP7
0000023d: ADD
0000023e: DUP6
0000023f: ADD
00000240: SWAP1
00000241: SWAP7
00000242: MSTORE
00000243: DUP1
00000244: DUP6
00000245: MSTORE
00000246: PUSH2 0x02aa
00000249: SWAP6
0000024a: CALLDATASIZE
0000024b: SWAP6
0000024c: SWAP4
0000024d: SWAP5
0000024e: PUSH1 0x24
00000250: SWAP5
00000251: SWAP4
00000252: DUP6
00000253: ADD
00000254: SWAP3
00000255: SWAP2
00000256: DUP3
00000257: SWAP2
00000258: DUP6
00000259: ADD
0000025a: SWAP1
0000025b: DUP5
0000025c: SWAP1
0000025d: DUP1
0000025e: DUP3
0000025f: DUP5
00000260: CALLDATACOPY
00000261: POP
00000262: POP
00000263: PUSH1 0x40
00000265: DUP1
00000266: MLOAD
00000267: DUP8
00000268: CALLDATALOAD
00000269: DUP10
0000026a: ADD
0000026b: DUP1
0000026c: CALLDATALOAD
0000026d: PUSH1 0x20
0000026f: DUP2
00000270: DUP2
00000271: MUL
00000272: DUP5
00000273: DUP2
00000274: ADD
00000275: DUP3
00000276: ADD
00000277: SWAP1
00000278: SWAP6
00000279: MSTORE
0000027a: DUP2
0000027b: DUP5
0000027c: MSTORE
0000027d: SWAP9
0000027e: SWAP12
0000027f: SWAP11
00000280: SWAP10
00000281: DUP10
00000282: ADD
00000283: SWAP9
00000284: SWAP3
00000285: SWAP8
00000286: POP
00000287: SWAP1
00000288: DUP3
00000289: ADD
0000028a: SWAP6
0000028b: POP
0000028c: SWAP4
0000028d: POP
0000028e: DUP4
0000028f: SWAP3
00000290: POP
00000291: DUP6
00000292: ADD
00000293: SWAP1
00000294: DUP5
00000295: SWAP1
00000296: DUP1
00000297: DUP3
00000298: DUP5
00000299: CALLDATACOPY
0000029a: POP
0000029b: SWAP5
0000029c: SWAP8
0000029d: POP
0000029e: PUSH2 0x0ab0
000002a1: SWAP7
000002a2: POP
000002a3: POP
000002a4: POP
000002a5: POP
000002a6: POP
000002a7: POP
000002a8: POP
000002a9: JUMP
000002aa: JUMPDEST
000002ab: PUSH1 0x40
000002ad: MLOAD
000002ae: DUP1
000002af: DUP1
000002b0: PUSH1 0x20
000002b2: ADD
000002b3: DUP1
000002b4: PUSH1 0x20
000002b6: ADD
000002b7: DUP4
000002b8: DUP2
000002b9: SUB
000002ba: DUP4
000002bb: MSTORE
000002bc: DUP6
000002bd: DUP2
000002be: DUP2
000002bf: MLOAD
000002c0: DUP2
000002c1: MSTORE
000002c2: PUSH1 0x20
000002c4: ADD
000002c5: SWAP2
000002c6: POP
000002c7: DUP1
000002c8: MLOAD
000002c9: SWAP1
000002ca: PUSH1 0x20
000002cc: ADD
000002cd: SWAP1
000002ce: PUSH1 0x20
000002d0: MUL
000002d1: DUP1
000002d2: DUP4
000002d3: DUP4
000002d4: PUSH1 0x00
000002d6: JUMPDEST
000002d7: DUP4
000002d8: DUP2
000002d9: LT
000002da: ISZERO
000002db: PUSH2 0x02ee
000002de: JUMPI
000002df: DUP2
000002e0: DUP2
000002e1: ADD
000002e2: MLOAD
000002e3: DUP4
000002e4: DUP3
000002e5: ADD
000002e6: MSTORE
000002e7: PUSH1 0x20
000002e9: ADD
000002ea: PUSH2 0x02d6
000002ed: JUMP
000002ee: JUMPDEST
000002ef: POP
000002f0: POP
000002f1: POP
000002f2: POP
000002f3: SWAP1
000002f4: POP
000002f5: ADD
000002f6: DUP4
000002f7: DUP2
000002f8: SUB
000002f9: DUP3
000002fa: MSTORE
000002fb: DUP5
000002fc: DUP2
000002fd: DUP2
000002fe: MLOAD
000002ff: DUP2
00000300: MSTORE
00000301: PUSH1 0x20
00000303: ADD
00000304: SWAP2
00000305: POP
00000306: DUP1
00000307: MLOAD
00000308: SWAP1
00000309: PUSH1 0x20
0000030b: ADD
0000030c: SWAP1
0000030d: PUSH1 0x20
0000030f: MUL
00000310: DUP1
00000311: DUP4
00000312: DUP4
00000313: PUSH1 0x00
00000315: JUMPDEST
00000316: DUP4
00000317: DUP2
00000318: LT
00000319: ISZERO
0000031a: PUSH2 0x032d
0000031d: JUMPI
0000031e: DUP2
0000031f: DUP2
00000320: ADD
00000321: MLOAD
00000322: DUP4
00000323: DUP3
00000324: ADD
00000325: MSTORE
00000326: PUSH1 0x20
00000328: ADD
00000329: PUSH2 0x0315
0000032c: JUMP
0000032d: JUMPDEST
0000032e: POP
0000032f: POP
00000330: POP
00000331: POP
00000332: SWAP1
00000333: POP
00000334: ADD
00000335: SWAP5
00000336: POP
00000337: POP
00000338: POP
00000339: POP
0000033a: POP
0000033b: PUSH1 0x40
0000033d: MLOAD
0000033e: DUP1
0000033f: SWAP2
00000340: SUB
00000341: SWAP1
00000342: RETURN
00000343: JUMPDEST
00000344: CALLVALUE
00000345: DUP1
00000346: ISZERO
00000347: PUSH2 0x034f
0000034a: JUMPI
0000034b: PUSH1 0x00
0000034d: DUP1
0000034e: REVERT
0000034f: JUMPDEST
00000350: POP
00000351: PUSH2 0x0203
00000354: PUSH1 0x01
00000356: PUSH1 0xa0
00000358: PUSH1 0x02
0000035a: EXP
0000035b: SUB
0000035c: PUSH1 0x04
0000035e: CALLDATALOAD
0000035f: DUP2
00000360: AND
00000361: SWAP1
00000362: PUSH1 0x24
00000364: CALLDATALOAD
00000365: AND
00000366: PUSH2 0x0bb3
00000369: JUMP
0000036a: JUMPDEST
0000036b: CALLVALUE
0000036c: DUP1
0000036d: ISZERO
0000036e: PUSH2 0x0376
00000371: JUMPI
00000372: PUSH1 0x00
00000374: DUP1
00000375: REVERT
00000376: JUMPDEST
00000377: POP
00000378: PUSH1 0x40
0000037a: DUP1
0000037b: MLOAD
0000037c: PUSH1 0x20
0000037e: PUSH1 0x04
00000380: DUP1
00000381: CALLDATALOAD
00000382: DUP1
00000383: DUP3
00000384: ADD
00000385: CALLDATALOAD
00000386: DUP4
00000387: DUP2
00000388: MUL
00000389: DUP1
0000038a: DUP7
0000038b: ADD
0000038c: DUP6
0000038d: ADD
0000038e: SWAP1
0000038f: SWAP7
00000390: MSTORE
00000391: DUP1
00000392: DUP6
00000393: MSTORE
00000394: PUSH2 0x010b
00000397: SWAP6
00000398: CALLDATASIZE
00000399: SWAP6
0000039a: SWAP4
0000039b: SWAP5
0000039c: PUSH1 0x24
0000039e: SWAP5
0000039f: SWAP4
000003a0: DUP6
000003a1: ADD
000003a2: SWAP3
000003a3: SWAP2
000003a4: DUP3
000003a5: SWAP2
000003a6: DUP6
000003a7: ADD
000003a8: SWAP1
000003a9: DUP5
000003aa: SWAP1
000003ab: DUP1
000003ac: DUP3
000003ad: DUP5
000003ae: CALLDATACOPY
000003af: POP
000003b0: POP
000003b1: PUSH1 0x40
000003b3: DUP1
000003b4: MLOAD
000003b5: DUP8
000003b6: CALLDATALOAD
000003b7: DUP10
000003b8: ADD
000003b9: DUP1
000003ba: CALLDATALOAD
000003bb: PUSH1 0x20
000003bd: DUP2
000003be: DUP2
000003bf: MUL
000003c0: DUP5
000003c1: DUP2
000003c2: ADD
000003c3: DUP3
000003c4: ADD
000003c5: SWAP1
000003c6: SWAP6
000003c7: MSTORE
000003c8: DUP2
000003c9: DUP5
000003ca: MSTORE
000003cb: SWAP9
000003cc: SWAP12
000003cd: SWAP11
000003ce: SWAP10
000003cf: DUP10
000003d0: ADD
000003d1: SWAP9
000003d2: SWAP3
000003d3: SWAP8
000003d4: POP
000003d5: SWAP1
000003d6: DUP3
000003d7: ADD
000003d8: SWAP6
000003d9: POP
000003da: SWAP4
000003db: POP
000003dc: DUP4
000003dd: SWAP3
000003de: POP
000003df: DUP6
000003e0: ADD
000003e1: SWAP1
000003e2: DUP5
000003e3: SWAP1
000003e4: DUP1
000003e5: DUP3
000003e6: DUP5
000003e7: CALLDATACOPY
000003e8: POP
000003e9: POP
000003ea: PUSH1 0x40
000003ec: DUP1
000003ed: MLOAD
000003ee: DUP8
000003ef: CALLDATALOAD
000003f0: DUP10
000003f1: ADD
000003f2: DUP1
000003f3: CALLDATALOAD
000003f4: PUSH1 0x20
000003f6: DUP2
000003f7: DUP2
000003f8: MUL
000003f9: DUP5
000003fa: DUP2
000003fb: ADD
000003fc: DUP3
000003fd: ADD
000003fe: SWAP1
000003ff: SWAP6
00000400: MSTORE
00000401: DUP2
00000402: DUP5
00000403: MSTORE
00000404: SWAP9
00000405: SWAP12
00000406: SWAP11
00000407: SWAP10
00000408: DUP10
00000409: ADD
0000040a: SWAP9
0000040b: SWAP3
0000040c: SWAP8
0000040d: POP
0000040e: SWAP1
0000040f: DUP3
00000410: ADD
00000411: SWAP6
00000412: POP
00000413: SWAP4
00000414: POP
00000415: DUP4
00000416: SWAP3
00000417: POP
00000418: DUP6
00000419: ADD
0000041a: SWAP1
0000041b: DUP5
0000041c: SWAP1
0000041d: DUP1
0000041e: DUP3
0000041f: DUP5
00000420: CALLDATACOPY
00000421: POP
00000422: SWAP5
00000423: SWAP8
00000424: POP
00000425: PUSH2 0x0bcb
00000428: SWAP7
00000429: POP
0000042a: POP
0000042b: POP
0000042c: POP
0000042d: POP
0000042e: POP
0000042f: POP
00000430: JUMP
00000431: JUMPDEST
00000432: CALLVALUE
00000433: DUP1
00000434: ISZERO
00000435: PUSH2 0x043d
00000438: JUMPI
00000439: PUSH1 0x00
0000043b: DUP1
0000043c: REVERT
0000043d: JUMPDEST
0000043e: POP
0000043f: PUSH2 0x0446
00000442: PUSH2 0x0d1d
00000445: JUMP
00000446: JUMPDEST
00000447: PUSH1 0x40
00000449: DUP1
0000044a: MLOAD
0000044b: PUSH1 0x01
0000044d: PUSH1 0xa0
0000044f: PUSH1 0x02
00000451: EXP
00000452: SUB
00000453: SWAP1
00000454: SWAP3
00000455: AND
00000456: DUP3
00000457: MSTORE
00000458: MLOAD
00000459: SWAP1
0000045a: DUP2
0000045b: SWAP1
0000045c: SUB
0000045d: PUSH1 0x20
0000045f: ADD
00000460: SWAP1
00000461: RETURN
00000462: JUMPDEST
00000463: CALLVALUE
00000464: DUP1
00000465: ISZERO
00000466: PUSH2 0x046e
00000469: JUMPI
0000046a: PUSH1 0x00
0000046c: DUP1
0000046d: REVERT
0000046e: JUMPDEST
0000046f: POP
00000470: PUSH2 0x010b
00000473: PUSH1 0x01
00000475: PUSH1 0xa0
00000477: PUSH1 0x02
00000479: EXP
0000047a: SUB
0000047b: PUSH1 0x04
0000047d: CALLDATALOAD
0000047e: AND
0000047f: PUSH2 0x0d2c
00000482: JUMP
00000483: JUMPDEST
00000484: PUSH1 0x00
00000486: DUP1
00000487: SLOAD
00000488: PUSH1 0x40
0000048a: DUP1
0000048b: MLOAD
0000048c: PUSH1 0xe0
0000048e: PUSH1 0x02
00000490: EXP
00000491: PUSH4 0x9085b77f
00000496: MUL
00000497: DUP2
00000498: MSTORE
00000499: CALLER
0000049a: PUSH1 0x04
0000049c: DUP3
0000049d: ADD
0000049e: MSTORE
0000049f: PUSH32 0x9fe43636e0675246c99e96d7abf9f858f518b9442c35166d87f0934abef8a969
000004c0: PUSH1 0x24
000004c2: DUP3
000004c3: ADD
000004c4: DUP2
000004c5: SWAP1
000004c6: MSTORE
000004c7: ADDRESS
000004c8: PUSH1 0x44
000004ca: DUP4
000004cb: ADD
000004cc: MSTORE
000004cd: PUSH1 0x01
000004cf: PUSH1 0xe0
000004d1: PUSH1 0x02
000004d3: EXP
000004d4: SUB
000004d5: NOT
000004d6: DUP6
000004d7: CALLDATALOAD
000004d8: AND
000004d9: PUSH1 0x64
000004db: DUP4
000004dc: ADD
000004dd: MSTORE
000004de: SWAP2
000004df: MLOAD
000004e0: DUP5
000004e1: SWAP4
000004e2: PUSH1 0x01
000004e4: PUSH1 0xa0
000004e6: PUSH1 0x02
000004e8: EXP
000004e9: SUB
000004ea: AND
000004eb: SWAP2
000004ec: PUSH4 0x9085b77f
000004f1: SWAP2
000004f2: PUSH1 0x84
000004f4: DUP1
000004f5: DUP4
000004f6: ADD
000004f7: SWAP3
000004f8: PUSH1 0x20
000004fa: SWAP3
000004fb: SWAP2
000004fc: SWAP1
000004fd: DUP3
000004fe: SWAP1
000004ff: SUB
00000500: ADD
00000501: DUP2
00000502: DUP9
00000503: DUP8
00000504: DUP1
00000505: EXTCODESIZE
00000506: ISZERO
00000507: DUP1
00000508: ISZERO
00000509: PUSH2 0x0511
0000050c: JUMPI
0000050d: PUSH1 0x00
0000050f: DUP1
00000510: REVERT
00000511: JUMPDEST
00000512: POP
00000513: GAS
00000514: CALL
00000515: ISZERO
00000516: DUP1
00000517: ISZERO
00000518: PUSH2 0x0525
0000051b: JUMPI
0000051c: RETURNDATASIZE
0000051d: PUSH1 0x00
0000051f: DUP1
00000520: RETURNDATACOPY
00000521: RETURNDATASIZE
00000522: PUSH1 0x00
00000524: REVERT
00000525: JUMPDEST
00000526: POP
00000527: POP
00000528: POP
00000529: POP
0000052a: PUSH1 0x40
0000052c: MLOAD
0000052d: RETURNDATASIZE
0000052e: PUSH1 0x20
00000530: DUP2
00000531: LT
00000532: ISZERO
00000533: PUSH2 0x053b
00000536: JUMPI
00000537: PUSH1 0x00
00000539: DUP1
0000053a: REVERT
0000053b: JUMPDEST
0000053c: POP
0000053d: MLOAD
0000053e: ISZERO
0000053f: ISZERO
00000540: PUSH2 0x0548
00000543: JUMPI
00000544: PUSH1 0x00
00000546: DUP1
00000547: REVERT
00000548: JUMPDEST
00000549: PUSH8 0x0de0b6b3a7640000
00000552: DUP5
00000553: LT
00000554: PUSH2 0x0559
00000557: JUMPI
00000558: INVALID
00000559: JUMPDEST
0000055a: PUSH1 0x02
0000055c: SLOAD
0000055d: PUSH1 0x01
0000055f: SLOAD
00000560: PUSH2 0x0575
00000563: SWAP2
00000564: PUSH1 0x01
00000566: PUSH1 0xa0
00000568: PUSH1 0x02
0000056a: EXP
0000056b: SUB
0000056c: SWAP1
0000056d: DUP2
0000056e: AND
0000056f: SWAP2
00000570: AND
00000571: PUSH2 0x0f73
00000574: JUMP
00000575: JUMPDEST
00000576: SWAP3
00000577: POP
00000578: SWAP3
00000579: POP
0000057a: PUSH2 0x0e10
0000057d: DUP3
0000057e: TIMESTAMP
0000057f: SUB
00000580: LT
00000581: ISZERO
00000582: ISZERO
00000583: PUSH2 0x05d6
00000586: JUMPI
00000587: PUSH1 0x40
00000589: DUP1
0000058a: MLOAD
0000058b: PUSH1 0xe5
0000058d: PUSH1 0x02
0000058f: EXP
00000590: PUSH3 0x461bcd
00000594: MUL
00000595: DUP2
00000596: MSTORE
00000597: PUSH1 0x20
00000599: PUSH1 0x04
0000059b: DUP3
0000059c: ADD
0000059d: MSTORE
0000059e: PUSH1 0x0f
000005a0: PUSH1 0x24
000005a2: DUP3
000005a3: ADD
000005a4: MSTORE
000005a5: PUSH32 0x4e465f5345585f4f4c445f524154450000000000000000000000000000000000
000005c6: PUSH1 0x44
000005c8: DUP3
000005c9: ADD
000005ca: MSTORE
000005cb: SWAP1
000005cc: MLOAD
000005cd: SWAP1
000005ce: DUP2
000005cf: SWAP1
000005d0: SUB
000005d1: PUSH1 0x64
000005d3: ADD
000005d4: SWAP1
000005d5: REVERT
000005d6: JUMPDEST
000005d7: PUSH2 0x05e2
000005da: DUP7
000005db: DUP7
000005dc: DUP7
000005dd: DUP7
000005de: PUSH2 0x106f
000005e1: JUMP
000005e2: JUMPDEST
000005e3: POP
000005e4: POP
000005e5: POP
000005e6: POP
000005e7: POP
000005e8: POP
000005e9: JUMP
000005ea: JUMPDEST
000005eb: PUSH1 0x00
000005ed: DUP1
000005ee: SLOAD
000005ef: PUSH1 0x40
000005f1: DUP1
000005f2: MLOAD
000005f3: PUSH1 0xe0
000005f5: PUSH1 0x02
000005f7: EXP
000005f8: PUSH4 0x9085b77f
000005fd: MUL
000005fe: DUP2
000005ff: MSTORE
00000600: CALLER
00000601: PUSH1 0x04
00000603: DUP3
00000604: ADD
00000605: MSTORE
00000606: PUSH32 0xac42f8beb17975ed062dcb80c63e6d203ef1c2c335ced149dc5664cc671cb7da
00000627: PUSH1 0x24
00000629: DUP3
0000062a: ADD
0000062b: DUP2
0000062c: SWAP1
0000062d: MSTORE
0000062e: ADDRESS
0000062f: PUSH1 0x44
00000631: DUP4
00000632: ADD
00000633: MSTORE
00000634: PUSH1 0x01
00000636: PUSH1 0xe0
00000638: PUSH1 0x02
0000063a: EXP
0000063b: SUB
0000063c: NOT
0000063d: DUP6
0000063e: CALLDATALOAD
0000063f: AND
00000640: PUSH1 0x64
00000642: DUP4
00000643: ADD
00000644: MSTORE
00000645: SWAP2
00000646: MLOAD
00000647: SWAP2
00000648: SWAP3
00000649: PUSH1 0x01
0000064b: PUSH1 0xa0
0000064d: PUSH1 0x02
0000064f: EXP
00000650: SUB
00000651: AND
00000652: SWAP2
00000653: PUSH4 0x9085b77f
00000658: SWAP2
00000659: PUSH1 0x84
0000065b: DUP1
0000065c: DUP3
0000065d: ADD
0000065e: SWAP3
0000065f: PUSH1 0x20
00000661: SWAP3
00000662: SWAP1
00000663: SWAP2
00000664: SWAP1
00000665: DUP3
00000666: SWAP1
00000667: SUB
00000668: ADD
00000669: DUP2
0000066a: DUP9
0000066b: DUP8
0000066c: DUP1
0000066d: EXTCODESIZE
0000066e: ISZERO
0000066f: DUP1
00000670: ISZERO
00000671: PUSH2 0x0679
00000674: JUMPI
00000675: PUSH1 0x00
00000677: DUP1
00000678: REVERT
00000679: JUMPDEST
0000067a: POP
0000067b: GAS
0000067c: CALL
0000067d: ISZERO
0000067e: DUP1
0000067f: ISZERO
00000680: PUSH2 0x068d
00000683: JUMPI
00000684: RETURNDATASIZE
00000685: PUSH1 0x00
00000687: DUP1
00000688: RETURNDATACOPY
00000689: RETURNDATASIZE
0000068a: PUSH1 0x00
0000068c: REVERT
0000068d: JUMPDEST
0000068e: POP
0000068f: POP
00000690: POP
00000691: POP
00000692: PUSH1 0x40
00000694: MLOAD
00000695: RETURNDATASIZE
00000696: PUSH1 0x20
00000698: DUP2
00000699: LT
0000069a: ISZERO
0000069b: PUSH2 0x06a3
0000069e: JUMPI
0000069f: PUSH1 0x00
000006a1: DUP1
000006a2: REVERT
000006a3: JUMPDEST
000006a4: POP
000006a5: MLOAD
000006a6: ISZERO
000006a7: ISZERO
000006a8: PUSH2 0x06b0
000006ab: JUMPI
000006ac: PUSH1 0x00
000006ae: DUP1
000006af: REVERT
000006b0: JUMPDEST
000006b1: PUSH1 0x40
000006b3: DUP1
000006b4: MLOAD
000006b5: PUSH1 0xe0
000006b7: PUSH1 0x02
000006b9: EXP
000006ba: PUSH4 0x9085b77f
000006bf: MUL
000006c0: DUP2
000006c1: MSTORE
000006c2: PUSH1 0x01
000006c4: PUSH1 0xa0
000006c6: PUSH1 0x02
000006c8: EXP
000006c9: SUB
000006ca: DUP6
000006cb: DUP2
000006cc: AND
000006cd: PUSH1 0x04
000006cf: DUP4
000006d0: ADD
000006d1: MSTORE
000006d2: PUSH32 0xac42f8beb17975ed062dcb80c63e6d203ef1c2c335ced149dc5664cc671cb7da
000006f3: PUSH1 0x24
000006f5: DUP4
000006f6: ADD
000006f7: MSTORE
000006f8: ADDRESS
000006f9: PUSH1 0x44
000006fb: DUP4
000006fc: ADD
000006fd: MSTORE
000006fe: PUSH1 0x00
00000700: DUP1
00000701: CALLDATALOAD
00000702: PUSH1 0x01
00000704: PUSH1 0xe0
00000706: PUSH1 0x02
00000708: EXP
00000709: SUB
0000070a: NOT
0000070b: AND
0000070c: PUSH1 0x64
0000070e: DUP5
0000070f: ADD
00000710: MSTORE
00000711: SWAP3
00000712: MLOAD
00000713: SWAP1
00000714: DUP8
00000715: AND
00000716: SWAP3
00000717: PUSH4 0x9085b77f
0000071c: SWAP3
0000071d: PUSH1 0x84
0000071f: DUP1
00000720: DUP3
00000721: ADD
00000722: SWAP4
00000723: PUSH1 0x20
00000725: SWAP4
00000726: SWAP1
00000727: SWAP3
00000728: DUP4
00000729: SWAP1
0000072a: SUB
0000072b: SWAP1
0000072c: SWAP2
0000072d: ADD
0000072e: SWAP1
0000072f: DUP3
00000730: SWAP1
00000731: DUP8
00000732: DUP1
00000733: EXTCODESIZE
00000734: ISZERO
00000735: DUP1
00000736: ISZERO
00000737: PUSH2 0x073f
0000073a: JUMPI
0000073b: PUSH1 0x00
0000073d: DUP1
0000073e: REVERT
0000073f: JUMPDEST
00000740: POP
00000741: GAS
00000742: CALL
00000743: ISZERO
00000744: DUP1
00000745: ISZERO
00000746: PUSH2 0x0753
00000749: JUMPI
0000074a: RETURNDATASIZE
0000074b: PUSH1 0x00
0000074d: DUP1
0000074e: RETURNDATACOPY
0000074f: RETURNDATASIZE
00000750: PUSH1 0x00
00000752: REVERT
00000753: JUMPDEST
00000754: POP
00000755: POP
00000756: POP
00000757: POP
00000758: PUSH1 0x40
0000075a: MLOAD
0000075b: RETURNDATASIZE
0000075c: PUSH1 0x20
0000075e: DUP2
0000075f: LT
00000760: ISZERO
00000761: PUSH2 0x0769
00000764: JUMPI
00000765: PUSH1 0x00
00000767: DUP1
00000768: REVERT
00000769: JUMPDEST
0000076a: POP
0000076b: MLOAD
0000076c: ISZERO
0000076d: ISZERO
0000076e: PUSH2 0x0776
00000771: JUMPI
00000772: PUSH1 0x00
00000774: DUP1
00000775: REVERT
00000776: JUMPDEST
00000777: PUSH1 0x00
00000779: DUP1
0000077a: SLOAD
0000077b: PUSH1 0x01
0000077d: PUSH1 0xa0
0000077f: PUSH1 0x02
00000781: EXP
00000782: SUB
00000783: DUP7
00000784: DUP2
00000785: AND
00000786: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000079b: NOT
0000079c: DUP4
0000079d: AND
0000079e: DUP2
0000079f: OR
000007a0: SWAP1
000007a1: SWAP4
000007a2: SSTORE
000007a3: PUSH1 0x40
000007a5: DUP1
000007a6: MLOAD
000007a7: CALLER
000007a8: DUP2
000007a9: MSTORE
000007aa: SWAP2
000007ab: SWAP1
000007ac: SWAP3
000007ad: AND
000007ae: PUSH1 0x20
000007b0: DUP3
000007b1: ADD
000007b2: DUP2
000007b3: SWAP1
000007b4: MSTORE
000007b5: DUP2
000007b6: DUP4
000007b7: ADD
000007b8: SWAP4
000007b9: SWAP1
000007ba: SWAP4
000007bb: MSTORE
000007bc: SWAP1
000007bd: MLOAD
000007be: SWAP2
000007bf: SWAP4
000007c0: POP
000007c1: PUSH32 0x7d475c32583df95fccc34a6e12df24c1fc9943092cc129b6512013aecba0f136
000007e2: SWAP2
000007e3: SWAP1
000007e4: DUP2
000007e5: SWAP1
000007e6: SUB
000007e7: PUSH1 0x60
000007e9: ADD
000007ea: SWAP1
000007eb: LOG1
000007ec: POP
000007ed: POP
000007ee: POP
000007ef: POP
000007f0: JUMP
000007f1: JUMPDEST
000007f2: PUSH1 0x00
000007f4: DUP1
000007f5: SLOAD
000007f6: PUSH1 0x40
000007f8: DUP1
000007f9: MLOAD
000007fa: PUSH1 0xe0
000007fc: PUSH1 0x02
000007fe: EXP
000007ff: PUSH4 0x9085b77f
00000804: MUL
00000805: DUP2
00000806: MSTORE
00000807: CALLER
00000808: PUSH1 0x04
0000080a: DUP3
0000080b: ADD
0000080c: MSTORE
0000080d: PUSH32 0x9fe43636e0675246c99e96d7abf9f858f518b9442c35166d87f0934abef8a969
0000082e: PUSH1 0x24
00000830: DUP3
00000831: ADD
00000832: DUP2
00000833: SWAP1
00000834: MSTORE
00000835: ADDRESS
00000836: PUSH1 0x44
00000838: DUP4
00000839: ADD
0000083a: MSTORE
0000083b: PUSH1 0x01
0000083d: PUSH1 0xe0
0000083f: PUSH1 0x02
00000841: EXP
00000842: SUB
00000843: NOT
00000844: DUP6
00000845: CALLDATALOAD
00000846: AND
00000847: PUSH1 0x64
00000849: DUP4
0000084a: ADD
0000084b: MSTORE
0000084c: SWAP2
0000084d: MLOAD
0000084e: DUP5
0000084f: SWAP4
00000850: DUP5
00000851: SWAP4
00000852: SWAP3
00000853: PUSH1 0x01
00000855: PUSH1 0xa0
00000857: PUSH1 0x02
00000859: EXP
0000085a: SUB
0000085b: SWAP1
0000085c: SWAP2
0000085d: AND
0000085e: SWAP2
0000085f: PUSH4 0x9085b77f
00000864: SWAP2
00000865: PUSH1 0x84
00000867: DUP1
00000868: DUP3
00000869: ADD
0000086a: SWAP3
0000086b: PUSH1 0x20
0000086d: SWAP3
0000086e: SWAP1
0000086f: SWAP2
00000870: SWAP1
00000871: DUP3
00000872: SWAP1
00000873: SUB
00000874: ADD
00000875: DUP2
00000876: DUP9
00000877: DUP8
00000878: DUP1
00000879: EXTCODESIZE
0000087a: ISZERO
0000087b: DUP1
0000087c: ISZERO
0000087d: PUSH2 0x0885
00000880: JUMPI
00000881: PUSH1 0x00
00000883: DUP1
00000884: REVERT
00000885: JUMPDEST
00000886: POP
00000887: GAS
00000888: CALL
00000889: ISZERO
0000088a: DUP1
0000088b: ISZERO
0000088c: PUSH2 0x0899
0000088f: JUMPI
00000890: RETURNDATASIZE
00000891: PUSH1 0x00
00000893: DUP1
00000894: RETURNDATACOPY
00000895: RETURNDATASIZE
00000896: PUSH1 0x00
00000898: REVERT
00000899: JUMPDEST
0000089a: POP
0000089b: POP
0000089c: POP
0000089d: POP
0000089e: PUSH1 0x40
000008a0: MLOAD
000008a1: RETURNDATASIZE
000008a2: PUSH1 0x20
000008a4: DUP2
000008a5: LT
000008a6: ISZERO
000008a7: PUSH2 0x08af
000008aa: JUMPI
000008ab: PUSH1 0x00
000008ad: DUP1
000008ae: REVERT
000008af: JUMPDEST
000008b0: POP
000008b1: MLOAD
000008b2: ISZERO
000008b3: ISZERO
000008b4: PUSH2 0x08bc
000008b7: JUMPI
000008b8: PUSH1 0x00
000008ba: DUP1
000008bb: REVERT
000008bc: JUMPDEST
000008bd: PUSH8 0x0de0b6b3a7640000
000008c6: DUP6
000008c7: LT
000008c8: PUSH2 0x08cd
000008cb: JUMPI
000008cc: INVALID
000008cd: JUMPDEST
000008ce: DUP6
000008cf: MLOAD
000008d0: DUP8
000008d1: MLOAD
000008d2: EQ
000008d3: PUSH2 0x08db
000008d6: JUMPI
000008d7: PUSH1 0x00
000008d9: DUP1
000008da: REVERT
000008db: JUMPDEST
000008dc: PUSH1 0x02
000008de: SLOAD
000008df: PUSH1 0x01
000008e1: SLOAD
000008e2: PUSH2 0x08f7
000008e5: SWAP2
000008e6: PUSH1 0x01
000008e8: PUSH1 0xa0
000008ea: PUSH1 0x02
000008ec: EXP
000008ed: SUB
000008ee: SWAP1
000008ef: DUP2
000008f0: AND
000008f1: SWAP2
000008f2: AND
000008f3: PUSH2 0x0f73
000008f6: JUMP
000008f7: JUMPDEST
000008f8: SWAP4
000008f9: POP
000008fa: SWAP4
000008fb: POP
000008fc: PUSH2 0x0e10
000008ff: DUP4
00000900: TIMESTAMP
00000901: SUB
00000902: LT
00000903: ISZERO
00000904: ISZERO
00000905: PUSH2 0x0958
00000908: JUMPI
00000909: PUSH1 0x40
0000090b: DUP1
0000090c: MLOAD
0000090d: PUSH1 0xe5
0000090f: PUSH1 0x02
00000911: EXP
00000912: PUSH3 0x461bcd
00000916: MUL
00000917: DUP2
00000918: MSTORE
00000919: PUSH1 0x20
0000091b: PUSH1 0x04
0000091d: DUP3
0000091e: ADD
0000091f: MSTORE
00000920: PUSH1 0x0f
00000922: PUSH1 0x24
00000924: DUP3
00000925: ADD
00000926: MSTORE
00000927: PUSH32 0x4e465f5345585f4f4c445f524154450000000000000000000000000000000000
00000948: PUSH1 0x44
0000094a: DUP3
0000094b: ADD
0000094c: MSTORE
0000094d: SWAP1
0000094e: MLOAD
0000094f: SWAP1
00000950: DUP2
00000951: SWAP1
00000952: SUB
00000953: PUSH1 0x64
00000955: ADD
00000956: SWAP1
00000957: REVERT
00000958: JUMPDEST
00000959: DUP7
0000095a: MLOAD
0000095b: DUP3
0000095c: LT
0000095d: ISZERO
0000095e: PUSH2 0x09a6
00000961: JUMPI
00000962: PUSH2 0x099b
00000965: DUP8
00000966: DUP4
00000967: DUP2
00000968: MLOAD
00000969: DUP2
0000096a: LT
0000096b: ISZERO
0000096c: ISZERO
0000096d: PUSH2 0x0972
00000970: JUMPI
00000971: INVALID
00000972: JUMPDEST
00000973: SWAP1
00000974: PUSH1 0x20
00000976: ADD
00000977: SWAP1
00000978: PUSH1 0x20
0000097a: MUL
0000097b: ADD
0000097c: MLOAD
0000097d: DUP8
0000097e: DUP5
0000097f: DUP2
00000980: MLOAD
00000981: DUP2
00000982: LT
00000983: ISZERO
00000984: ISZERO
00000985: PUSH2 0x098a
00000988: JUMPI
00000989: INVALID
0000098a: JUMPDEST
0000098b: SWAP1
0000098c: PUSH1 0x20
0000098e: ADD
0000098f: SWAP1
00000990: PUSH1 0x20
00000992: MUL
00000993: ADD
00000994: MLOAD
00000995: DUP8
00000996: DUP8
00000997: PUSH2 0x106f
0000099a: JUMP
0000099b: JUMPDEST
0000099c: PUSH1 0x01
0000099e: DUP3
0000099f: ADD
000009a0: SWAP2
000009a1: POP
000009a2: PUSH2 0x0958
000009a5: JUMP
000009a6: JUMPDEST
000009a7: POP
000009a8: POP
000009a9: POP
000009aa: POP
000009ab: POP
000009ac: POP
000009ad: POP
000009ae: JUMP
000009af: JUMPDEST
000009b0: PUSH1 0x00
000009b2: DUP1
000009b3: SLOAD
000009b4: PUSH1 0x40
000009b6: DUP1
000009b7: MLOAD
000009b8: PUSH1 0xe0
000009ba: PUSH1 0x02
000009bc: EXP
000009bd: PUSH4 0x9085b77f
000009c2: MUL
000009c3: DUP2
000009c4: MSTORE
000009c5: CALLER
000009c6: PUSH1 0x04
000009c8: DUP3
000009c9: ADD
000009ca: MSTORE
000009cb: PUSH32 0xa80c3a0c8a5324136e4c806a778583a2a980f378bdd382921b8d28dcfe965585
000009ec: PUSH1 0x24
000009ee: DUP3
000009ef: ADD
000009f0: DUP2
000009f1: SWAP1
000009f2: MSTORE
000009f3: ADDRESS
000009f4: PUSH1 0x44
000009f6: DUP4
000009f7: ADD
000009f8: MSTORE
000009f9: PUSH1 0x01
000009fb: PUSH1 0xe0
000009fd: PUSH1 0x02
000009ff: EXP
00000a00: SUB
00000a01: NOT
00000a02: DUP6
00000a03: CALLDATALOAD
00000a04: AND
00000a05: PUSH1 0x64
00000a07: DUP4
00000a08: ADD
00000a09: MSTORE
00000a0a: SWAP2
00000a0b: MLOAD
00000a0c: SWAP2
00000a0d: SWAP4
00000a0e: PUSH1 0x01
00000a10: PUSH1 0xa0
00000a12: PUSH1 0x02
00000a14: EXP
00000a15: SUB
00000a16: SWAP1
00000a17: SWAP4
00000a18: AND
00000a19: SWAP3
00000a1a: PUSH4 0x9085b77f
00000a1f: SWAP3
00000a20: PUSH1 0x84
00000a22: DUP1
00000a23: DUP5
00000a24: ADD
00000a25: SWAP4
00000a26: PUSH1 0x20
00000a28: SWAP4
00000a29: SWAP1
00000a2a: DUP4
00000a2b: SWAP1
00000a2c: SUB
00000a2d: SWAP1
00000a2e: SWAP2
00000a2f: ADD
00000a30: SWAP1
00000a31: DUP3
00000a32: SWAP1
00000a33: DUP8
00000a34: DUP1
00000a35: EXTCODESIZE
00000a36: ISZERO
00000a37: DUP1
00000a38: ISZERO
00000a39: PUSH2 0x0a41
00000a3c: JUMPI
00000a3d: PUSH1 0x00
00000a3f: DUP1
00000a40: REVERT
00000a41: JUMPDEST
00000a42: POP
00000a43: GAS
00000a44: CALL
00000a45: ISZERO
00000a46: DUP1
00000a47: ISZERO
00000a48: PUSH2 0x0a55
00000a4b: JUMPI
00000a4c: RETURNDATASIZE
00000a4d: PUSH1 0x00
00000a4f: DUP1
00000a50: RETURNDATACOPY
00000a51: RETURNDATASIZE
00000a52: PUSH1 0x00
00000a54: REVERT
00000a55: JUMPDEST
00000a56: POP
00000a57: POP
00000a58: POP
00000a59: POP
00000a5a: PUSH1 0x40
00000a5c: MLOAD
00000a5d: RETURNDATASIZE
00000a5e: PUSH1 0x20
00000a60: DUP2
00000a61: LT
00000a62: ISZERO
00000a63: PUSH2 0x0a6b
00000a66: JUMPI
00000a67: PUSH1 0x00
00000a69: DUP1
00000a6a: REVERT
00000a6b: JUMPDEST
00000a6c: POP
00000a6d: MLOAD
00000a6e: ISZERO
00000a6f: ISZERO
00000a70: PUSH2 0x0a78
00000a73: JUMPI
00000a74: PUSH1 0x00
00000a76: DUP1
00000a77: REVERT
00000a78: JUMPDEST
00000a79: PUSH2 0x0a83
00000a7c: DUP5
00000a7d: DUP5
00000a7e: DUP5
00000a7f: PUSH2 0x11c2
00000a82: JUMP
00000a83: JUMPDEST
00000a84: POP
00000a85: POP
00000a86: POP
00000a87: POP
00000a88: JUMP
00000a89: JUMPDEST
00000a8a: PUSH32 0x434a1a753d1d39381c462f37c155e520ae6f86ad79289abca9cde354a0cebd68
00000aab: PUSH1 0x00
00000aad: SWAP1
00000aae: SWAP2
00000aaf: JUMP
00000ab0: JUMPDEST
00000ab1: PUSH1 0x60
00000ab3: DUP1
00000ab4: PUSH1 0x00
00000ab6: DUP1
00000ab7: PUSH1 0x00
00000ab9: DUP6
00000aba: MLOAD
00000abb: DUP8
00000abc: MLOAD
00000abd: EQ
00000abe: ISZERO
00000abf: ISZERO
00000ac0: PUSH2 0x0ac8
00000ac3: JUMPI
00000ac4: PUSH1 0x00
00000ac6: DUP1
00000ac7: REVERT
00000ac8: JUMPDEST
00000ac9: DUP7
00000aca: MLOAD
00000acb: PUSH1 0x40
00000acd: MLOAD
00000ace: SWAP1
00000acf: DUP1
00000ad0: DUP3
00000ad1: MSTORE
00000ad2: DUP1
00000ad3: PUSH1 0x20
00000ad5: MUL
00000ad6: PUSH1 0x20
00000ad8: ADD
00000ad9: DUP3
00000ada: ADD
00000adb: PUSH1 0x40
00000add: MSTORE
00000ade: DUP1
00000adf: ISZERO
00000ae0: PUSH2 0x0af3
00000ae3: JUMPI
00000ae4: DUP2
00000ae5: PUSH1 0x20
00000ae7: ADD
00000ae8: PUSH1 0x20
00000aea: DUP3
00000aeb: MUL
00000aec: DUP1
00000aed: CODESIZE
00000aee: DUP4
00000aef: CODECOPY
00000af0: ADD
00000af1: SWAP1
00000af2: POP
00000af3: JUMPDEST
00000af4: POP
00000af5: SWAP5
00000af6: POP
00000af7: DUP6
00000af8: MLOAD
00000af9: PUSH1 0x40
00000afb: MLOAD
00000afc: SWAP1
00000afd: DUP1
00000afe: DUP3
00000aff: MSTORE
00000b00: DUP1
00000b01: PUSH1 0x20
00000b03: MUL
00000b04: PUSH1 0x20
00000b06: ADD
00000b07: DUP3
00000b08: ADD
00000b09: PUSH1 0x40
00000b0b: MSTORE
00000b0c: DUP1
00000b0d: ISZERO
00000b0e: PUSH2 0x0b21
00000b11: JUMPI
00000b12: DUP2
00000b13: PUSH1 0x20
00000b15: ADD
00000b16: PUSH1 0x20
00000b18: DUP3
00000b19: MUL
00000b1a: DUP1
00000b1b: CODESIZE
00000b1c: DUP4
00000b1d: CODECOPY
00000b1e: ADD
00000b1f: SWAP1
00000b20: POP
00000b21: JUMPDEST
00000b22: POP
00000b23: SWAP4
00000b24: POP
00000b25: JUMPDEST
00000b26: DUP7
00000b27: MLOAD
00000b28: DUP4
00000b29: LT
00000b2a: ISZERO
00000b2b: PUSH2 0x0ba9
00000b2e: JUMPI
00000b2f: PUSH2 0x0b66
00000b32: DUP8
00000b33: DUP5
00000b34: DUP2
00000b35: MLOAD
00000b36: DUP2
00000b37: LT
00000b38: ISZERO
00000b39: ISZERO
00000b3a: PUSH2 0x0b3f
00000b3d: JUMPI
00000b3e: INVALID
00000b3f: JUMPDEST
00000b40: SWAP1
00000b41: PUSH1 0x20
00000b43: ADD
00000b44: SWAP1
00000b45: PUSH1 0x20
00000b47: MUL
00000b48: ADD
00000b49: MLOAD
00000b4a: DUP8
00000b4b: DUP6
00000b4c: DUP2
00000b4d: MLOAD
00000b4e: DUP2
00000b4f: LT
00000b50: ISZERO
00000b51: ISZERO
00000b52: PUSH2 0x0b57
00000b55: JUMPI
00000b56: INVALID
00000b57: JUMPDEST
00000b58: SWAP1
00000b59: PUSH1 0x20
00000b5b: ADD
00000b5c: SWAP1
00000b5d: PUSH1 0x20
00000b5f: MUL
00000b60: ADD
00000b61: MLOAD
00000b62: PUSH2 0x0f73
00000b65: JUMP
00000b66: JUMPDEST
00000b67: SWAP2
00000b68: POP
00000b69: SWAP2
00000b6a: POP
00000b6b: DUP2
00000b6c: DUP6
00000b6d: DUP5
00000b6e: DUP2
00000b6f: MLOAD
00000b70: DUP2
00000b71: LT
00000b72: ISZERO
00000b73: ISZERO
00000b74: PUSH2 0x0b79
00000b77: JUMPI
00000b78: INVALID
00000b79: JUMPDEST
00000b7a: PUSH1 0x20
00000b7c: SWAP1
00000b7d: DUP2
00000b7e: MUL
00000b7f: SWAP1
00000b80: SWAP2
00000b81: ADD
00000b82: ADD
00000b83: MSTORE
00000b84: DUP4
00000b85: MLOAD
00000b86: DUP2
00000b87: SWAP1
00000b88: DUP6
00000b89: SWAP1
00000b8a: DUP6
00000b8b: SWAP1
00000b8c: DUP2
00000b8d: LT
00000b8e: PUSH2 0x0b93
00000b91: JUMPI
00000b92: INVALID
00000b93: JUMPDEST
00000b94: PUSH1 0x20
00000b96: SWAP1
00000b97: DUP2
00000b98: MUL
00000b99: SWAP1
00000b9a: SWAP2
00000b9b: ADD
00000b9c: ADD
00000b9d: MSTORE
00000b9e: PUSH1 0x01
00000ba0: SWAP3
00000ba1: SWAP1
00000ba2: SWAP3
00000ba3: ADD
00000ba4: SWAP2
00000ba5: PUSH2 0x0b25
00000ba8: JUMP
00000ba9: JUMPDEST
00000baa: POP
00000bab: POP
00000bac: POP
00000bad: SWAP3
00000bae: POP
00000baf: SWAP3
00000bb0: SWAP1
00000bb1: POP
00000bb2: JUMP
00000bb3: JUMPDEST
00000bb4: PUSH1 0x00
00000bb6: DUP1
00000bb7: PUSH2 0x0bc0
00000bba: DUP5
00000bbb: DUP5
00000bbc: PUSH2 0x0f73
00000bbf: JUMP
00000bc0: JUMPDEST
00000bc1: SWAP2
00000bc2: POP
00000bc3: SWAP2
00000bc4: POP
00000bc5: SWAP3
00000bc6: POP
00000bc7: SWAP3
00000bc8: SWAP1
00000bc9: POP
00000bca: JUMP
00000bcb: JUMPDEST
00000bcc: PUSH1 0x00
00000bce: DUP1
00000bcf: SLOAD
00000bd0: PUSH1 0x40
00000bd2: DUP1
00000bd3: MLOAD
00000bd4: PUSH1 0xe0
00000bd6: PUSH1 0x02
00000bd8: EXP
00000bd9: PUSH4 0x9085b77f
00000bde: MUL
00000bdf: DUP2
00000be0: MSTORE
00000be1: CALLER
00000be2: PUSH1 0x04
00000be4: DUP3
00000be5: ADD
00000be6: MSTORE
00000be7: PUSH32 0xa80c3a0c8a5324136e4c806a778583a2a980f378bdd382921b8d28dcfe965585
00000c08: PUSH1 0x24
00000c0a: DUP3
00000c0b: ADD
00000c0c: DUP2
00000c0d: SWAP1
00000c0e: MSTORE
00000c0f: ADDRESS
00000c10: PUSH1 0x44
00000c12: DUP4
00000c13: ADD
00000c14: MSTORE
00000c15: PUSH1 0x01
00000c17: PUSH1 0xe0
00000c19: PUSH1 0x02
00000c1b: EXP
00000c1c: SUB
00000c1d: NOT
00000c1e: DUP6
00000c1f: CALLDATALOAD
00000c20: AND
00000c21: PUSH1 0x64
00000c23: DUP4
00000c24: ADD
00000c25: MSTORE
00000c26: SWAP2
00000c27: MLOAD
00000c28: SWAP2
00000c29: SWAP3
00000c2a: PUSH1 0x01
00000c2c: PUSH1 0xa0
00000c2e: PUSH1 0x02
00000c30: EXP
00000c31: SUB
00000c32: AND
00000c33: SWAP2
00000c34: PUSH4 0x9085b77f
00000c39: SWAP2
00000c3a: PUSH1 0x84
00000c3c: DUP1
00000c3d: DUP3
00000c3e: ADD
00000c3f: SWAP3
00000c40: PUSH1 0x20
00000c42: SWAP3
00000c43: SWAP1
00000c44: SWAP2
00000c45: SWAP1
00000c46: DUP3
00000c47: SWAP1
00000c48: SUB
00000c49: ADD
00000c4a: DUP2
00000c4b: DUP9
00000c4c: DUP8
00000c4d: DUP1
00000c4e: EXTCODESIZE
00000c4f: ISZERO
00000c50: DUP1
00000c51: ISZERO
00000c52: PUSH2 0x0c5a
00000c55: JUMPI
00000c56: PUSH1 0x00
00000c58: DUP1
00000c59: REVERT
00000c5a: JUMPDEST
00000c5b: POP
00000c5c: GAS
00000c5d: CALL
00000c5e: ISZERO
00000c5f: DUP1
00000c60: ISZERO
00000c61: PUSH2 0x0c6e
00000c64: JUMPI
00000c65: RETURNDATASIZE
00000c66: PUSH1 0x00
00000c68: DUP1
00000c69: RETURNDATACOPY
00000c6a: RETURNDATASIZE
00000c6b: PUSH1 0x00
00000c6d: REVERT
00000c6e: JUMPDEST
00000c6f: POP
00000c70: POP
00000c71: POP
00000c72: POP
00000c73: PUSH1 0x40
00000c75: MLOAD
00000c76: RETURNDATASIZE
00000c77: PUSH1 0x20
00000c79: DUP2
00000c7a: LT
00000c7b: ISZERO
00000c7c: PUSH2 0x0c84
00000c7f: JUMPI
00000c80: PUSH1 0x00
00000c82: DUP1
00000c83: REVERT
00000c84: JUMPDEST
00000c85: POP
00000c86: MLOAD
00000c87: ISZERO
00000c88: ISZERO
00000c89: PUSH2 0x0c91
00000c8c: JUMPI
00000c8d: PUSH1 0x00
00000c8f: DUP1
00000c90: REVERT
00000c91: JUMPDEST
00000c92: DUP4
00000c93: MLOAD
00000c94: DUP6
00000c95: MLOAD
00000c96: EQ
00000c97: PUSH2 0x0c9f
00000c9a: JUMPI
00000c9b: PUSH1 0x00
00000c9d: DUP1
00000c9e: REVERT
00000c9f: JUMPDEST
00000ca0: DUP3
00000ca1: MLOAD
00000ca2: DUP6
00000ca3: MLOAD
00000ca4: EQ
00000ca5: PUSH2 0x0cad
00000ca8: JUMPI
00000ca9: PUSH1 0x00
00000cab: DUP1
00000cac: REVERT
00000cad: JUMPDEST
00000cae: PUSH1 0x00
00000cb0: SWAP2
00000cb1: POP
00000cb2: JUMPDEST
00000cb3: DUP5
00000cb4: MLOAD
00000cb5: DUP3
00000cb6: LT
00000cb7: ISZERO
00000cb8: PUSH2 0x0d16
00000cbb: JUMPI
00000cbc: PUSH2 0x0d0b
00000cbf: DUP6
00000cc0: DUP4
00000cc1: DUP2
00000cc2: MLOAD
00000cc3: DUP2
00000cc4: LT
00000cc5: ISZERO
00000cc6: ISZERO
00000cc7: PUSH2 0x0ccc
00000cca: JUMPI
00000ccb: INVALID
00000ccc: JUMPDEST
00000ccd: SWAP1
00000cce: PUSH1 0x20
00000cd0: ADD
00000cd1: SWAP1
00000cd2: PUSH1 0x20
00000cd4: MUL
00000cd5: ADD
00000cd6: MLOAD
00000cd7: DUP6
00000cd8: DUP5
00000cd9: DUP2
00000cda: MLOAD
00000cdb: DUP2
00000cdc: LT
00000cdd: ISZERO
00000cde: ISZERO
00000cdf: PUSH2 0x0ce4
00000ce2: JUMPI
00000ce3: INVALID
00000ce4: JUMPDEST
00000ce5: SWAP1
00000ce6: PUSH1 0x20
00000ce8: ADD
00000ce9: SWAP1
00000cea: PUSH1 0x20
00000cec: MUL
00000ced: ADD
00000cee: MLOAD
00000cef: DUP6
00000cf0: DUP6
00000cf1: DUP2
00000cf2: MLOAD
00000cf3: DUP2
00000cf4: LT
00000cf5: ISZERO
00000cf6: ISZERO
00000cf7: PUSH2 0x0cfc
00000cfa: JUMPI
00000cfb: INVALID
00000cfc: JUMPDEST
00000cfd: SWAP1
00000cfe: PUSH1 0x20
00000d00: ADD
00000d01: SWAP1
00000d02: PUSH1 0x20
00000d04: MUL
00000d05: ADD
00000d06: MLOAD
00000d07: PUSH2 0x11c2
00000d0a: JUMP
00000d0b: JUMPDEST
00000d0c: PUSH1 0x01
00000d0e: SWAP1
00000d0f: SWAP2
00000d10: ADD
00000d11: SWAP1
00000d12: PUSH2 0x0cb2
00000d15: JUMP
00000d16: JUMPDEST
00000d17: POP
00000d18: POP
00000d19: POP
00000d1a: POP
00000d1b: POP
00000d1c: JUMP
00000d1d: JUMPDEST
00000d1e: PUSH1 0x00
00000d20: SLOAD
00000d21: PUSH1 0x01
00000d23: PUSH1 0xa0
00000d25: PUSH1 0x02
00000d27: EXP
00000d28: SUB
00000d29: AND
00000d2a: SWAP1
00000d2b: JUMP
00000d2c: JUMPDEST
00000d2d: PUSH1 0x00
00000d2f: DUP1
00000d30: SLOAD
00000d31: PUSH1 0x40
00000d33: DUP1
00000d34: MLOAD
00000d35: PUSH1 0xe0
00000d37: PUSH1 0x02
00000d39: EXP
00000d3a: PUSH4 0x9085b77f
00000d3f: MUL
00000d40: DUP2
00000d41: MSTORE
00000d42: CALLER
00000d43: PUSH1 0x04
00000d45: DUP3
00000d46: ADD
00000d47: MSTORE
00000d48: PUSH32 0x0542bbd0c672578966dcc525b30aa16723bb042675554ac5b0362f86b6e97dc5
00000d69: PUSH1 0x24
00000d6b: DUP3
00000d6c: ADD
00000d6d: DUP2
00000d6e: SWAP1
00000d6f: MSTORE
00000d70: ADDRESS
00000d71: PUSH1 0x44
00000d73: DUP4
00000d74: ADD
00000d75: MSTORE
00000d76: PUSH1 0x01
00000d78: PUSH1 0xe0
00000d7a: PUSH1 0x02
00000d7c: EXP
00000d7d: SUB
00000d7e: NOT
00000d7f: DUP6
00000d80: CALLDATALOAD
00000d81: AND
00000d82: PUSH1 0x64
00000d84: DUP4
00000d85: ADD
00000d86: MSTORE
00000d87: SWAP2
00000d88: MLOAD
00000d89: DUP5
00000d8a: SWAP4
00000d8b: PUSH1 0x01
00000d8d: PUSH1 0xa0
00000d8f: PUSH1 0x02
00000d91: EXP
00000d92: SUB
00000d93: AND
00000d94: SWAP2
00000d95: PUSH4 0x9085b77f
00000d9a: SWAP2
00000d9b: PUSH1 0x84
00000d9d: DUP1
00000d9e: DUP4
00000d9f: ADD
00000da0: SWAP3
00000da1: PUSH1 0x20
00000da3: SWAP3
00000da4: SWAP2
00000da5: SWAP1
00000da6: DUP3
00000da7: SWAP1
00000da8: SUB
00000da9: ADD
00000daa: DUP2
00000dab: DUP9
00000dac: DUP8
00000dad: DUP1
00000dae: EXTCODESIZE
00000daf: ISZERO
00000db0: DUP1
00000db1: ISZERO
00000db2: PUSH2 0x0dba
00000db5: JUMPI
00000db6: PUSH1 0x00
00000db8: DUP1
00000db9: REVERT
00000dba: JUMPDEST
00000dbb: POP
00000dbc: GAS
00000dbd: CALL
00000dbe: ISZERO
00000dbf: DUP1
00000dc0: ISZERO
00000dc1: PUSH2 0x0dce
00000dc4: JUMPI
00000dc5: RETURNDATASIZE
00000dc6: PUSH1 0x00
00000dc8: DUP1
00000dc9: RETURNDATACOPY
00000dca: RETURNDATASIZE
00000dcb: PUSH1 0x00
00000dcd: REVERT
00000dce: JUMPDEST
00000dcf: POP
00000dd0: POP
00000dd1: POP
00000dd2: POP
00000dd3: PUSH1 0x40
00000dd5: MLOAD
00000dd6: RETURNDATASIZE
00000dd7: PUSH1 0x20
00000dd9: DUP2
00000dda: LT
00000ddb: ISZERO
00000ddc: PUSH2 0x0de4
00000ddf: JUMPI
00000de0: PUSH1 0x00
00000de2: DUP1
00000de3: REVERT
00000de4: JUMPDEST
00000de5: POP
00000de6: MLOAD
00000de7: ISZERO
00000de8: ISZERO
00000de9: PUSH2 0x0df1
00000dec: JUMPI
00000ded: PUSH1 0x00
00000def: DUP1
00000df0: REVERT
00000df1: JUMPDEST
00000df2: CALLER
00000df3: SWAP3
00000df4: POP
00000df5: PUSH1 0x01
00000df7: PUSH1 0xa0
00000df9: PUSH1 0x02
00000dfb: EXP
00000dfc: SUB
00000dfd: DUP5
00000dfe: AND
00000dff: ISZERO
00000e00: ISZERO
00000e01: PUSH2 0x0e40
00000e04: JUMPI
00000e05: PUSH1 0x40
00000e07: MLOAD
00000e08: PUSH1 0x01
00000e0a: PUSH1 0xa0
00000e0c: PUSH1 0x02
00000e0e: EXP
00000e0f: SUB
00000e10: DUP5
00000e11: AND
00000e12: SWAP1
00000e13: ADDRESS
00000e14: BALANCE
00000e15: DUP1
00000e16: ISZERO
00000e17: PUSH2 0x08fc
00000e1a: MUL
00000e1b: SWAP2
00000e1c: PUSH1 0x00
00000e1e: DUP2
00000e1f: DUP2
00000e20: DUP2
00000e21: DUP6
00000e22: DUP9
00000e23: DUP9
00000e24: CALL
00000e25: SWAP4
00000e26: POP
00000e27: POP
00000e28: POP
00000e29: POP
00000e2a: ISZERO
00000e2b: DUP1
00000e2c: ISZERO
00000e2d: PUSH2 0x0e3a
00000e30: JUMPI
00000e31: RETURNDATASIZE
00000e32: PUSH1 0x00
00000e34: DUP1
00000e35: RETURNDATACOPY
00000e36: RETURNDATASIZE
00000e37: PUSH1 0x00
00000e39: REVERT
00000e3a: JUMPDEST
00000e3b: POP
00000e3c: PUSH2 0x0a83
00000e3f: JUMP
00000e40: JUMPDEST
00000e41: PUSH1 0x40
00000e43: DUP1
00000e44: MLOAD
00000e45: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00000e66: DUP2
00000e67: MSTORE
00000e68: ADDRESS
00000e69: PUSH1 0x04
00000e6b: DUP3
00000e6c: ADD
00000e6d: MSTORE
00000e6e: SWAP1
00000e6f: MLOAD
00000e70: PUSH1 0x01
00000e72: PUSH1 0xa0
00000e74: PUSH1 0x02
00000e76: EXP
00000e77: SUB
00000e78: DUP7
00000e79: AND
00000e7a: SWAP2
00000e7b: PUSH4 0x70a08231
00000e80: SWAP2
00000e81: PUSH1 0x24
00000e83: DUP1
00000e84: DUP4
00000e85: ADD
00000e86: SWAP3
00000e87: PUSH1 0x20
00000e89: SWAP3
00000e8a: SWAP2
00000e8b: SWAP1
00000e8c: DUP3
00000e8d: SWAP1
00000e8e: SUB
00000e8f: ADD
00000e90: DUP2
00000e91: PUSH1 0x00
00000e93: DUP8
00000e94: DUP1
00000e95: EXTCODESIZE
00000e96: ISZERO
00000e97: DUP1
00000e98: ISZERO
00000e99: PUSH2 0x0ea1
00000e9c: JUMPI
00000e9d: PUSH1 0x00
00000e9f: DUP1
00000ea0: REVERT
00000ea1: JUMPDEST
00000ea2: POP
00000ea3: GAS
00000ea4: CALL
00000ea5: ISZERO
00000ea6: DUP1
00000ea7: ISZERO
00000ea8: PUSH2 0x0eb5
00000eab: JUMPI
00000eac: RETURNDATASIZE
00000ead: PUSH1 0x00
00000eaf: DUP1
00000eb0: RETURNDATACOPY
00000eb1: RETURNDATASIZE
00000eb2: PUSH1 0x00
00000eb4: REVERT
00000eb5: JUMPDEST
00000eb6: POP
00000eb7: POP
00000eb8: POP
00000eb9: POP
00000eba: PUSH1 0x40
00000ebc: MLOAD
00000ebd: RETURNDATASIZE
00000ebe: PUSH1 0x20
00000ec0: DUP2
00000ec1: LT
00000ec2: ISZERO
00000ec3: PUSH2 0x0ecb
00000ec6: JUMPI
00000ec7: PUSH1 0x00
00000ec9: DUP1
00000eca: REVERT
00000ecb: JUMPDEST
00000ecc: POP
00000ecd: MLOAD
00000ece: PUSH1 0x40
00000ed0: DUP1
00000ed1: MLOAD
00000ed2: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00000ef3: DUP2
00000ef4: MSTORE
00000ef5: PUSH1 0x01
00000ef7: PUSH1 0xa0
00000ef9: PUSH1 0x02
00000efb: EXP
00000efc: SUB
00000efd: DUP7
00000efe: DUP2
00000eff: AND
00000f00: PUSH1 0x04
00000f02: DUP4
00000f03: ADD
00000f04: MSTORE
00000f05: PUSH1 0x24
00000f07: DUP3
00000f08: ADD
00000f09: DUP5
00000f0a: SWAP1
00000f0b: MSTORE
00000f0c: SWAP2
00000f0d: MLOAD
00000f0e: SWAP3
00000f0f: SWAP5
00000f10: POP
00000f11: SWAP1
00000f12: DUP7
00000f13: AND
00000f14: SWAP2
00000f15: PUSH4 0xa9059cbb
00000f1a: SWAP2
00000f1b: PUSH1 0x44
00000f1d: DUP1
00000f1e: DUP3
00000f1f: ADD
00000f20: SWAP3
00000f21: PUSH1 0x20
00000f23: SWAP3
00000f24: SWAP1
00000f25: SWAP2
00000f26: SWAP1
00000f27: DUP3
00000f28: SWAP1
00000f29: SUB
00000f2a: ADD
00000f2b: DUP2
00000f2c: PUSH1 0x00
00000f2e: DUP8
00000f2f: DUP1
00000f30: EXTCODESIZE
00000f31: ISZERO
00000f32: DUP1
00000f33: ISZERO
00000f34: PUSH2 0x0f3c
00000f37: JUMPI
00000f38: PUSH1 0x00
00000f3a: DUP1
00000f3b: REVERT
00000f3c: JUMPDEST
00000f3d: POP
00000f3e: GAS
00000f3f: CALL
00000f40: ISZERO
00000f41: DUP1
00000f42: ISZERO
00000f43: PUSH2 0x0f50
00000f46: JUMPI
00000f47: RETURNDATASIZE
00000f48: PUSH1 0x00
00000f4a: DUP1
00000f4b: RETURNDATACOPY
00000f4c: RETURNDATASIZE
00000f4d: PUSH1 0x00
00000f4f: REVERT
00000f50: JUMPDEST
00000f51: POP
00000f52: POP
00000f53: POP
00000f54: POP
00000f55: PUSH1 0x40
00000f57: MLOAD
00000f58: RETURNDATASIZE
00000f59: PUSH1 0x20
00000f5b: DUP2
00000f5c: LT
00000f5d: ISZERO
00000f5e: PUSH2 0x0f66
00000f61: JUMPI
00000f62: PUSH1 0x00
00000f64: DUP1
00000f65: REVERT
00000f66: JUMPDEST
00000f67: POP
00000f68: MLOAD
00000f69: ISZERO
00000f6a: ISZERO
00000f6b: PUSH2 0x0a83
00000f6e: JUMPI
00000f6f: PUSH1 0x00
00000f71: DUP1
00000f72: REVERT
00000f73: JUMPDEST
00000f74: PUSH1 0x01
00000f76: PUSH1 0xa0
00000f78: PUSH1 0x02
00000f7a: EXP
00000f7b: SUB
00000f7c: DUP3
00000f7d: DUP2
00000f7e: AND
00000f7f: PUSH1 0x00
00000f81: DUP2
00000f82: DUP2
00000f83: MSTORE
00000f84: PUSH1 0x03
00000f86: PUSH1 0x20
00000f88: DUP2
00000f89: DUP2
00000f8a: MSTORE
00000f8b: PUSH1 0x40
00000f8d: DUP1
00000f8e: DUP5
00000f8f: KECCAK256
00000f90: SWAP6
00000f91: DUP8
00000f92: AND
00000f93: DUP5
00000f94: MSTORE
00000f95: SWAP5
00000f96: DUP2
00000f97: MSTORE
00000f98: DUP5
00000f99: DUP4
00000f9a: KECCAK256
00000f9b: SWAP2
00000f9c: DUP2
00000f9d: MSTORE
00000f9e: DUP5
00000f9f: DUP4
00000fa0: KECCAK256
00000fa1: SWAP4
00000fa2: DUP4
00000fa3: MSTORE
00000fa4: SWAP3
00000fa5: SWAP1
00000fa6: SWAP3
00000fa7: MSTORE
00000fa8: SWAP2
00000fa9: DUP3
00000faa: KECCAK256
00000fab: DUP2
00000fac: SLOAD
00000fad: DUP4
00000fae: SWAP3
00000faf: SWAP2
00000fb0: SWAP1
00000fb1: DUP4
00000fb2: SWAP1
00000fb3: PUSH1 0x80
00000fb5: PUSH1 0x02
00000fb7: EXP
00000fb8: SWAP1
00000fb9: DIV
00000fba: PUSH16 0xffffffffffffffffffffffffffffffff
00000fcb: AND
00000fcc: DUP2
00000fcd: LT
00000fce: ISZERO
00000fcf: PUSH2 0x0ffa
00000fd2: JUMPI
00000fd3: DUP3
00000fd4: SLOAD
00000fd5: PUSH16 0xffffffffffffffffffffffffffffffff
00000fe6: DUP1
00000fe7: DUP3
00000fe8: AND
00000fe9: SWAP7
00000fea: POP
00000feb: PUSH1 0x80
00000fed: PUSH1 0x02
00000fef: EXP
00000ff0: SWAP1
00000ff1: SWAP2
00000ff2: DIV
00000ff3: AND
00000ff4: SWAP4
00000ff5: POP
00000ff6: PUSH2 0x0ba9
00000ff9: JUMP
00000ffa: JUMPDEST
00000ffb: DUP2
00000ffc: SLOAD
00000ffd: PUSH1 0x00
00000fff: PUSH1 0x80
00001001: PUSH1 0x02
00001003: EXP
00001004: SWAP1
00001005: SWAP2
00001006: DIV
00001007: PUSH16 0xffffffffffffffffffffffffffffffff
00001018: AND
00001019: GT
0000101a: ISZERO
0000101b: PUSH2 0x0ba9
0000101e: JUMPI
0000101f: DUP2
00001020: SLOAD
00001021: PUSH2 0x1047
00001024: SWAP1
00001025: PUSH8 0x0de0b6b3a7640000
0000102e: SWAP1
0000102f: DUP2
00001030: SWAP1
00001031: PUSH16 0xffffffffffffffffffffffffffffffff
00001042: AND
00001043: PUSH2 0x159f
00001046: JUMP
00001047: JUMPDEST
00001048: DUP3
00001049: SLOAD
0000104a: SWAP1
0000104b: SWAP6
0000104c: POP
0000104d: PUSH1 0x80
0000104f: PUSH1 0x02
00001051: EXP
00001052: SWAP1
00001053: DIV
00001054: PUSH16 0xffffffffffffffffffffffffffffffff
00001065: AND
00001066: SWAP4
00001067: POP
00001068: DUP5
00001069: SWAP1
0000106a: POP
0000106b: PUSH2 0x0ba9
0000106e: JUMP
0000106f: JUMPDEST
00001070: PUSH1 0x00
00001072: PUSH2 0x1086
00001075: PUSH2 0x107e
00001078: DUP6
00001079: DUP6
0000107a: PUSH2 0x15bc
0000107d: JUMP
0000107e: JUMPDEST
0000107f: DUP6
00001080: SUB
00001081: DUP4
00001082: PUSH2 0x15bc
00001085: JUMP
00001086: JUMPDEST
00001087: PUSH1 0x02
00001089: SLOAD
0000108a: PUSH1 0x40
0000108c: DUP1
0000108d: MLOAD
0000108e: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000
000010af: DUP2
000010b0: MSTORE
000010b1: PUSH1 0x01
000010b3: PUSH1 0xa0
000010b5: PUSH1 0x02
000010b7: EXP
000010b8: SUB
000010b9: DUP10
000010ba: DUP2
000010bb: AND
000010bc: PUSH1 0x04
000010be: DUP4
000010bf: ADD
000010c0: MSTORE
000010c1: ADDRESS
000010c2: PUSH1 0x24
000010c4: DUP4
000010c5: ADD
000010c6: MSTORE
000010c7: PUSH1 0x44
000010c9: DUP3
000010ca: ADD
000010cb: DUP10
000010cc: SWAP1
000010cd: MSTORE
000010ce: SWAP2
000010cf: MLOAD
000010d0: SWAP4
000010d1: SWAP5
000010d2: POP
000010d3: SWAP2
000010d4: AND
000010d5: SWAP2
000010d6: PUSH4 0x23b872dd
000010db: SWAP2
000010dc: PUSH1 0x64
000010de: DUP1
000010df: DUP3
000010e0: ADD
000010e1: SWAP3
000010e2: PUSH1 0x20
000010e4: SWAP3
000010e5: SWAP1
000010e6: SWAP2
000010e7: SWAP1
000010e8: DUP3
000010e9: SWAP1
000010ea: SUB
000010eb: ADD
000010ec: DUP2
000010ed: PUSH1 0x00
000010ef: DUP8
000010f0: DUP1
000010f1: EXTCODESIZE
000010f2: ISZERO
000010f3: DUP1
000010f4: ISZERO
000010f5: PUSH2 0x10fd
000010f8: JUMPI
000010f9: PUSH1 0x00
000010fb: DUP1
000010fc: REVERT
000010fd: JUMPDEST
000010fe: POP
000010ff: GAS
00001100: CALL
00001101: ISZERO
00001102: DUP1
00001103: ISZERO
00001104: PUSH2 0x1111
00001107: JUMPI
00001108: RETURNDATASIZE
00001109: PUSH1 0x00
0000110b: DUP1
0000110c: RETURNDATACOPY
0000110d: RETURNDATASIZE
0000110e: PUSH1 0x00
00001110: REVERT
00001111: JUMPDEST
00001112: POP
00001113: POP
00001114: POP
00001115: POP
00001116: PUSH1 0x40
00001118: MLOAD
00001119: RETURNDATASIZE
0000111a: PUSH1 0x20
0000111c: DUP2
0000111d: LT
0000111e: ISZERO
0000111f: PUSH2 0x1127
00001122: JUMPI
00001123: PUSH1 0x00
00001125: DUP1
00001126: REVERT
00001127: JUMPDEST
00001128: POP
00001129: MLOAD
0000112a: ISZERO
0000112b: ISZERO
0000112c: PUSH2 0x1131
0000112f: JUMPI
00001130: INVALID
00001131: JUMPDEST
00001132: PUSH1 0x40
00001134: MLOAD
00001135: PUSH1 0x01
00001137: PUSH1 0xa0
00001139: PUSH1 0x02
0000113b: EXP
0000113c: SUB
0000113d: DUP7
0000113e: AND
0000113f: SWAP1
00001140: DUP3
00001141: ISZERO
00001142: PUSH2 0x08fc
00001145: MUL
00001146: SWAP1
00001147: DUP4
00001148: SWAP1
00001149: PUSH1 0x00
0000114b: DUP2
0000114c: DUP2
0000114d: DUP2
0000114e: DUP6
0000114f: DUP9
00001150: DUP9
00001151: CALL
00001152: SWAP4
00001153: POP
00001154: POP
00001155: POP
00001156: POP
00001157: ISZERO
00001158: DUP1
00001159: ISZERO
0000115a: PUSH2 0x1167
0000115d: JUMPI
0000115e: RETURNDATASIZE
0000115f: PUSH1 0x00
00001161: DUP1
00001162: RETURNDATACOPY
00001163: RETURNDATASIZE
00001164: PUSH1 0x00
00001166: REVERT
00001167: JUMPDEST
00001168: POP
00001169: PUSH1 0x40
0000116b: DUP1
0000116c: MLOAD
0000116d: DUP6
0000116e: DUP2
0000116f: MSTORE
00001170: PUSH1 0x20
00001172: DUP2
00001173: ADD
00001174: DUP6
00001175: SWAP1
00001176: MSTORE
00001177: DUP1
00001178: DUP3
00001179: ADD
0000117a: DUP4
0000117b: SWAP1
0000117c: MSTORE
0000117d: PUSH1 0x60
0000117f: DUP2
00001180: ADD
00001181: DUP5
00001182: SWAP1
00001183: MSTORE
00001184: SWAP1
00001185: MLOAD
00001186: PUSH1 0x01
00001188: PUSH1 0xa0
0000118a: PUSH1 0x02
0000118c: EXP
0000118d: SUB
0000118e: DUP8
0000118f: AND
00001190: SWAP2
00001191: PUSH32 0x68e7498f69f8111a2f38ea9fcdd9ec33aa072c3ee3e4c665981b416f82b3f0e3
000011b2: SWAP2
000011b3: SWAP1
000011b4: DUP2
000011b5: SWAP1
000011b6: SUB
000011b7: PUSH1 0x80
000011b9: ADD
000011ba: SWAP1
000011bb: LOG2
000011bc: POP
000011bd: POP
000011be: POP
000011bf: POP
000011c0: POP
000011c1: JUMP
000011c2: JUMPDEST
000011c3: PUSH1 0x00
000011c5: PUSH1 0x01
000011c7: PUSH1 0xa0
000011c9: PUSH1 0x02
000011cb: EXP
000011cc: SUB
000011cd: DUP5
000011ce: DUP2
000011cf: AND
000011d0: SWAP1
000011d1: DUP5
000011d2: AND
000011d3: EQ
000011d4: ISZERO
000011d5: PUSH2 0x1228
000011d8: JUMPI
000011d9: PUSH1 0x40
000011db: DUP1
000011dc: MLOAD
000011dd: PUSH1 0xe5
000011df: PUSH1 0x02
000011e1: EXP
000011e2: PUSH3 0x461bcd
000011e6: MUL
000011e7: DUP2
000011e8: MSTORE
000011e9: PUSH1 0x20
000011eb: PUSH1 0x04
000011ed: DUP3
000011ee: ADD
000011ef: MSTORE
000011f0: PUSH1 0x0f
000011f2: PUSH1 0x24
000011f4: DUP3
000011f5: ADD
000011f6: MSTORE
000011f7: PUSH32 0x4e465f5345585f53414d455f4e5f440000000000000000000000000000000000
00001218: PUSH1 0x44
0000121a: DUP3
0000121b: ADD
0000121c: MSTORE
0000121d: SWAP1
0000121e: MLOAD
0000121f: SWAP1
00001220: DUP2
00001221: SWAP1
00001222: SUB
00001223: PUSH1 0x64
00001225: ADD
00001226: SWAP1
00001227: REVERT
00001228: JUMPDEST
00001229: PUSH1 0x00
0000122b: DUP3
0000122c: GT
0000122d: PUSH2 0x1232
00001230: JUMPI
00001231: INVALID
00001232: JUMPDEST
00001233: PUSH1 0x80
00001235: PUSH1 0x02
00001237: EXP
00001238: DUP3
00001239: LT
0000123a: PUSH2 0x123f
0000123d: JUMPI
0000123e: INVALID
0000123f: JUMPDEST
00001240: PUSH2 0x1252
00001243: PUSH8 0x0de0b6b3a7640000
0000124c: DUP1
0000124d: DUP5
0000124e: PUSH2 0x159f
00001251: JUMP
00001252: JUMPDEST
00001253: SWAP1
00001254: POP
00001255: DUP4
00001256: PUSH1 0x01
00001258: PUSH1 0xa0
0000125a: PUSH1 0x02
0000125c: EXP
0000125d: SUB
0000125e: AND
0000125f: PUSH4 0x313ce567
00001264: PUSH1 0x40
00001266: MLOAD
00001267: DUP2
00001268: PUSH4 0xffffffff
0000126d: AND
0000126e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000128c: MUL
0000128d: DUP2
0000128e: MSTORE
0000128f: PUSH1 0x04
00001291: ADD
00001292: PUSH1 0x20
00001294: PUSH1 0x40
00001296: MLOAD
00001297: DUP1
00001298: DUP4
00001299: SUB
0000129a: DUP2
0000129b: PUSH1 0x00
0000129d: DUP8
0000129e: DUP1
0000129f: EXTCODESIZE
000012a0: ISZERO
000012a1: DUP1
000012a2: ISZERO
000012a3: PUSH2 0x12ab
000012a6: JUMPI
000012a7: PUSH1 0x00
000012a9: DUP1
000012aa: REVERT
000012ab: JUMPDEST
000012ac: POP
000012ad: GAS
000012ae: CALL
000012af: ISZERO
000012b0: DUP1
000012b1: ISZERO
000012b2: PUSH2 0x12bf
000012b5: JUMPI
000012b6: RETURNDATASIZE
000012b7: PUSH1 0x00
000012b9: DUP1
000012ba: RETURNDATACOPY
000012bb: RETURNDATASIZE
000012bc: PUSH1 0x00
000012be: REVERT
000012bf: JUMPDEST
000012c0: POP
000012c1: POP
000012c2: POP
000012c3: POP
000012c4: PUSH1 0x40
000012c6: MLOAD
000012c7: RETURNDATASIZE
000012c8: PUSH1 0x20
000012ca: DUP2
000012cb: LT
000012cc: ISZERO
000012cd: PUSH2 0x12d5
000012d0: JUMPI
000012d1: PUSH1 0x00
000012d3: DUP1
000012d4: REVERT
000012d5: JUMPDEST
000012d6: POP
000012d7: MLOAD
000012d8: PUSH1 0x40
000012da: DUP1
000012db: MLOAD
000012dc: PUSH32 0x313ce56700000000000000000000000000000000000000000000000000000000
000012fd: DUP2
000012fe: MSTORE
000012ff: SWAP1
00001300: MLOAD
00001301: PUSH1 0xff
00001303: SWAP1
00001304: SWAP3
00001305: AND
00001306: SWAP2
00001307: PUSH1 0x01
00001309: PUSH1 0xa0
0000130b: PUSH1 0x02
0000130d: EXP
0000130e: SUB
0000130f: DUP7
00001310: AND
00001311: SWAP2
00001312: PUSH4 0x313ce567
00001317: SWAP2
00001318: PUSH1 0x04
0000131a: DUP1
0000131b: DUP4
0000131c: ADD
0000131d: SWAP3
0000131e: PUSH1 0x20
00001320: SWAP3
00001321: SWAP2
00001322: SWAP1
00001323: DUP3
00001324: SWAP1
00001325: SUB
00001326: ADD
00001327: DUP2
00001328: PUSH1 0x00
0000132a: DUP8
0000132b: DUP1
0000132c: EXTCODESIZE
0000132d: ISZERO
0000132e: DUP1
0000132f: ISZERO
00001330: PUSH2 0x1338
00001333: JUMPI
00001334: PUSH1 0x00
00001336: DUP1
00001337: REVERT
00001338: JUMPDEST
00001339: POP
0000133a: GAS
0000133b: CALL
0000133c: ISZERO
0000133d: DUP1
0000133e: ISZERO
0000133f: PUSH2 0x134c
00001342: JUMPI
00001343: RETURNDATASIZE
00001344: PUSH1 0x00
00001346: DUP1
00001347: RETURNDATACOPY
00001348: RETURNDATASIZE
00001349: PUSH1 0x00
0000134b: REVERT
0000134c: JUMPDEST
0000134d: POP
0000134e: POP
0000134f: POP
00001350: POP
00001351: PUSH1 0x40
00001353: MLOAD
00001354: RETURNDATASIZE
00001355: PUSH1 0x20
00001357: DUP2
00001358: LT
00001359: ISZERO
0000135a: PUSH2 0x1362
0000135d: JUMPI
0000135e: PUSH1 0x00
00001360: DUP1
00001361: REVERT
00001362: JUMPDEST
00001363: POP
00001364: MLOAD
00001365: PUSH1 0xff
00001367: AND
00001368: EQ
00001369: PUSH2 0x13bc
0000136c: JUMPI
0000136d: PUSH1 0x40
0000136f: DUP1
00001370: MLOAD
00001371: PUSH1 0xe5
00001373: PUSH1 0x02
00001375: EXP
00001376: PUSH3 0x461bcd
0000137a: MUL
0000137b: DUP2
0000137c: MSTORE
0000137d: PUSH1 0x20
0000137f: PUSH1 0x04
00001381: DUP3
00001382: ADD
00001383: MSTORE
00001384: PUSH1 0x0f
00001386: PUSH1 0x24
00001388: DUP3
00001389: ADD
0000138a: MSTORE
0000138b: PUSH32 0x4e465f5345585f444543494d414c530000000000000000000000000000000000
000013ac: PUSH1 0x44
000013ae: DUP3
000013af: ADD
000013b0: MSTORE
000013b1: SWAP1
000013b2: MLOAD
000013b3: SWAP1
000013b4: DUP2
000013b5: SWAP1
000013b6: SUB
000013b7: PUSH1 0x64
000013b9: ADD
000013ba: SWAP1
000013bb: REVERT
000013bc: JUMPDEST
000013bd: PUSH1 0x01
000013bf: PUSH1 0xa0
000013c1: PUSH1 0x02
000013c3: EXP
000013c4: SUB
000013c5: DUP4
000013c6: DUP2
000013c7: AND
000013c8: PUSH1 0x00
000013ca: SWAP1
000013cb: DUP2
000013cc: MSTORE
000013cd: PUSH1 0x03
000013cf: PUSH1 0x20
000013d1: SWAP1
000013d2: DUP2
000013d3: MSTORE
000013d4: PUSH1 0x40
000013d6: DUP1
000013d7: DUP4
000013d8: KECCAK256
000013d9: SWAP4
000013da: DUP9
000013db: AND
000013dc: DUP4
000013dd: MSTORE
000013de: SWAP3
000013df: SWAP1
000013e0: MSTORE
000013e1: SWAP1
000013e2: DUP2
000013e3: KECCAK256
000013e4: SLOAD
000013e5: PUSH1 0x80
000013e7: PUSH1 0x02
000013e9: EXP
000013ea: SWAP1
000013eb: DIV
000013ec: PUSH16 0xffffffffffffffffffffffffffffffff
000013fd: AND
000013fe: GT
000013ff: ISZERO
00001400: PUSH2 0x1485
00001403: JUMPI
00001404: PUSH1 0x40
00001406: DUP1
00001407: MLOAD
00001408: DUP1
00001409: DUP3
0000140a: ADD
0000140b: DUP3
0000140c: MSTORE
0000140d: PUSH16 0xffffffffffffffffffffffffffffffff
0000141e: DUP1
0000141f: DUP5
00001420: AND
00001421: DUP3
00001422: MSTORE
00001423: TIMESTAMP
00001424: DUP2
00001425: AND
00001426: PUSH1 0x20
00001428: DUP1
00001429: DUP5
0000142a: ADD
0000142b: SWAP2
0000142c: DUP3
0000142d: MSTORE
0000142e: PUSH1 0x01
00001430: PUSH1 0xa0
00001432: PUSH1 0x02
00001434: EXP
00001435: SUB
00001436: DUP1
00001437: DUP10
00001438: AND
00001439: PUSH1 0x00
0000143b: SWAP1
0000143c: DUP2
0000143d: MSTORE
0000143e: PUSH1 0x03
00001440: DUP4
00001441: MSTORE
00001442: DUP7
00001443: DUP2
00001444: KECCAK256
00001445: SWAP2
00001446: DUP12
00001447: AND
00001448: DUP2
00001449: MSTORE
0000144a: SWAP2
0000144b: MSTORE
0000144c: SWAP4
0000144d: SWAP1
0000144e: SWAP4
0000144f: KECCAK256
00001450: SWAP2
00001451: MLOAD
00001452: DUP3
00001453: SLOAD
00001454: SWAP4
00001455: MLOAD
00001456: DUP3
00001457: AND
00001458: PUSH1 0x80
0000145a: PUSH1 0x02
0000145c: EXP
0000145d: MUL
0000145e: SWAP1
0000145f: DUP3
00001460: AND
00001461: PUSH16 0xffffffffffffffffffffffffffffffff
00001472: NOT
00001473: SWAP1
00001474: SWAP5
00001475: AND
00001476: SWAP4
00001477: SWAP1
00001478: SWAP4
00001479: OR
0000147a: AND
0000147b: SWAP2
0000147c: SWAP1
0000147d: SWAP2
0000147e: OR
0000147f: SWAP1
00001480: SSTORE
00001481: PUSH2 0x1503
00001484: JUMP
00001485: JUMPDEST
00001486: PUSH1 0x40
00001488: DUP1
00001489: MLOAD
0000148a: DUP1
0000148b: DUP3
0000148c: ADD
0000148d: DUP3
0000148e: MSTORE
0000148f: PUSH16 0xffffffffffffffffffffffffffffffff
000014a0: DUP1
000014a1: DUP6
000014a2: AND
000014a3: DUP3
000014a4: MSTORE
000014a5: TIMESTAMP
000014a6: DUP2
000014a7: AND
000014a8: PUSH1 0x20
000014aa: DUP1
000014ab: DUP5
000014ac: ADD
000014ad: SWAP2
000014ae: DUP3
000014af: MSTORE
000014b0: PUSH1 0x01
000014b2: PUSH1 0xa0
000014b4: PUSH1 0x02
000014b6: EXP
000014b7: SUB
000014b8: DUP1
000014b9: DUP11
000014ba: AND
000014bb: PUSH1 0x00
000014bd: SWAP1
000014be: DUP2
000014bf: MSTORE
000014c0: PUSH1 0x03
000014c2: DUP4
000014c3: MSTORE
000014c4: DUP7
000014c5: DUP2
000014c6: KECCAK256
000014c7: SWAP2
000014c8: DUP11
000014c9: AND
000014ca: DUP2
000014cb: MSTORE
000014cc: SWAP2
000014cd: MSTORE
000014ce: SWAP4
000014cf: SWAP1
000014d0: SWAP4
000014d1: KECCAK256
000014d2: SWAP2
000014d3: MLOAD
000014d4: DUP3
000014d5: SLOAD
000014d6: SWAP4
000014d7: MLOAD
000014d8: DUP3
000014d9: AND
000014da: PUSH1 0x80
000014dc: PUSH1 0x02
000014de: EXP
000014df: MUL
000014e0: SWAP1
000014e1: DUP3
000014e2: AND
000014e3: PUSH16 0xffffffffffffffffffffffffffffffff
000014f4: NOT
000014f5: SWAP1
000014f6: SWAP5
000014f7: AND
000014f8: SWAP4
000014f9: SWAP1
000014fa: SWAP4
000014fb: OR
000014fc: AND
000014fd: SWAP2
000014fe: SWAP1
000014ff: SWAP2
00001500: OR
00001501: SWAP1
00001502: SSTORE
00001503: JUMPDEST
00001504: DUP3
00001505: PUSH1 0x01
00001507: PUSH1 0xa0
00001509: PUSH1 0x02
0000150b: EXP
0000150c: SUB
0000150d: AND
0000150e: DUP5
0000150f: PUSH1 0x01
00001511: PUSH1 0xa0
00001513: PUSH1 0x02
00001515: EXP
00001516: SUB
00001517: AND
00001518: PUSH32 0x1d89fb077bf2ce0a703a51c0422f114127b7ef7b0cc4315d5b2eb6bdf45f027a
00001539: DUP5
0000153a: PUSH1 0x40
0000153c: MLOAD
0000153d: DUP1
0000153e: DUP3
0000153f: DUP2
00001540: MSTORE
00001541: PUSH1 0x20
00001543: ADD
00001544: SWAP2
00001545: POP
00001546: POP
00001547: PUSH1 0x40
00001549: MLOAD
0000154a: DUP1
0000154b: SWAP2
0000154c: SUB
0000154d: SWAP1
0000154e: LOG3
0000154f: DUP4
00001550: PUSH1 0x01
00001552: PUSH1 0xa0
00001554: PUSH1 0x02
00001556: EXP
00001557: SUB
00001558: AND
00001559: DUP4
0000155a: PUSH1 0x01
0000155c: PUSH1 0xa0
0000155e: PUSH1 0x02
00001560: EXP
00001561: SUB
00001562: AND
00001563: PUSH32 0x1d89fb077bf2ce0a703a51c0422f114127b7ef7b0cc4315d5b2eb6bdf45f027a
00001584: DUP4
00001585: PUSH1 0x40
00001587: MLOAD
00001588: DUP1
00001589: DUP3
0000158a: DUP2
0000158b: MSTORE
0000158c: PUSH1 0x20
0000158e: ADD
0000158f: SWAP2
00001590: POP
00001591: POP
00001592: PUSH1 0x40
00001594: MLOAD
00001595: DUP1
00001596: SWAP2
00001597: SUB
00001598: SWAP1
00001599: LOG3
0000159a: POP
0000159b: POP
0000159c: POP
0000159d: POP
0000159e: JUMP
0000159f: JUMPDEST
000015a0: PUSH1 0x00
000015a2: PUSH2 0x15b4
000015a5: PUSH2 0x15ae
000015a8: DUP6
000015a9: DUP6
000015aa: PUSH2 0x15d8
000015ad: JUMP
000015ae: JUMPDEST
000015af: DUP4
000015b0: PUSH2 0x15fc
000015b3: JUMP
000015b4: JUMPDEST
000015b5: SWAP5
000015b6: SWAP4
000015b7: POP
000015b8: POP
000015b9: POP
000015ba: POP
000015bb: JUMP
000015bc: JUMPDEST
000015bd: PUSH1 0x00
000015bf: PUSH2 0x15d1
000015c2: DUP4
000015c3: DUP4
000015c4: PUSH8 0x0de0b6b3a7640000
000015cd: PUSH2 0x159f
000015d0: JUMP
000015d1: JUMPDEST
000015d2: SWAP4
000015d3: SWAP3
000015d4: POP
000015d5: POP
000015d6: POP
000015d7: JUMP
000015d8: JUMPDEST
000015d9: PUSH1 0x00
000015db: DUP3
000015dc: DUP3
000015dd: MUL
000015de: DUP4
000015df: ISZERO
000015e0: DUP1
000015e1: PUSH2 0x15f4
000015e4: JUMPI
000015e5: POP
000015e6: DUP3
000015e7: DUP5
000015e8: DUP3
000015e9: DUP2
000015ea: ISZERO
000015eb: ISZERO
000015ec: PUSH2 0x15f1
000015ef: JUMPI
000015f0: INVALID
000015f1: JUMPDEST
000015f2: DIV
000015f3: EQ
000015f4: JUMPDEST
000015f5: ISZERO
000015f6: ISZERO
000015f7: PUSH2 0x15d1
000015fa: JUMPI
000015fb: INVALID
000015fc: JUMPDEST
000015fd: PUSH1 0x00
000015ff: DUP2
00001600: PUSH2 0x160c
00001603: DUP5
00001604: PUSH1 0x02
00001606: DUP4
00001607: DIV
00001608: PUSH2 0x161d
0000160b: JUMP
0000160c: JUMPDEST
0000160d: DUP2
0000160e: ISZERO
0000160f: ISZERO
00001610: PUSH2 0x1615
00001613: JUMPI
00001614: INVALID
00001615: JUMPDEST
00001616: DIV
00001617: SWAP4
00001618: SWAP3
00001619: POP
0000161a: POP
0000161b: POP
0000161c: JUMP
0000161d: JUMPDEST
0000161e: PUSH1 0x00
00001620: DUP3
00001621: DUP3
00001622: ADD
00001623: DUP4
00001624: DUP2
00001625: LT
00001626: ISZERO
00001627: PUSH2 0x15d1
0000162a: JUMPI
0000162b: INVALID
0000162c: STOP
0000162d: LOG1
0000162e: PUSH6 0x627a7a723058
00001635: KECCAK256
00001636: UNKNOWN(0xC7)
00001637: UNKNOWN(0xEF)
00001638: SWAP14
00001639: GT
0000163a: BLOBHASH
0000163b: UNKNOWN(0xA7)
0000163c: UNKNOWN(0xD7)
0000163d: UNKNOWN(0xD7)
0000163e: SDIV
0000163f: AND
00001640: UNKNOWN(0xA9)
00001641: SWAP14
00001642: UNKNOWN(0xED)
00001643: PUSH9 0xdc253e6e94aa93c025
0000164d: UNKNOWN(0xA5)
0000164e: UNKNOWN(0xED)
0000164f: EXTCODECOPY
00001650: UNKNOWN(0xD9)
00001651: MSIZE
00001652: UNKNOWN(0xDC)
00001653: SHR
00001654: SHL
00001655: SWAP14
00001656: STOP
00001657: UNKNOWN(0x29)

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 yes yes
view
trace_id: 0x0d3ca35aa3c38465aab5a9bddd8dcf98da0cdfac58254ce6df72f591a7a6e679
call_targets: 0x4426d15ad435c156edc1183938ff47b37d3931fb, 0xae38c27e646959735ec70d77ed4ecc03a3eff490
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x0d3ca35aa3c38465aab5a9bddd8dcf98da0cdfac58254ce6df72f591a7a6e679",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x4426d15ad435c156edc1183938ff47b37d3931fb",
        "0xae38c27e646959735ec70d77ed4ecc03a3eff490"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x259df814",
            "selector": "0x259df814",
            "calldata_variants": [
                "0x259df814",
                "0x259df8140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x57875631",
            "selector": "0x57875631",
            "calldata_variants": [
                "0x57875631",
                "0x578756310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x759970be",
            "selector": "0x759970be",
            "calldata_variants": [
                "0x759970be",
                "0x759970be0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x782aaeea",
            "selector": "0x782aaeea",
            "calldata_variants": [
                "0x782aaeea",
                "0x782aaeea0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8291286c",
            "selector": "0x8291286c",
            "calldata_variants": [
                "0x8291286c",
                "0x8291286c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9be54fe9",
            "selector": "0x9be54fe9",
            "calldata_variants": [
                "0x9be54fe9",
                "0x9be54fe90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbaaa61be",
            "selector": "0xbaaa61be",
            "calldata_variants": [
                "0xbaaa61be",
                "0xbaaa61be0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe8b6ab90",
            "selector": "0xe8b6ab90",
            "calldata_variants": [
                "0xe8b6ab90",
                "0xe8b6ab900000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1300,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1660,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1858,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 14,
    "guards_detected": [],
    "untrusted_call_count": 14
}
high other detector ETH value transfer possible 55 yes yes
view
trace_id: 0x0d3ca35aa3c38465aab5a9bddd8dcf98da0cdfac58254ce6df72f591a7a6e679
call_targets: 0x4426d15ad435c156edc1183938ff47b37d3931fb, 0xae38c27e646959735ec70d77ed4ecc03a3eff490
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x0d3ca35aa3c38465aab5a9bddd8dcf98da0cdfac58254ce6df72f591a7a6e679",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x4426d15ad435c156edc1183938ff47b37d3931fb",
        "0xae38c27e646959735ec70d77ed4ecc03a3eff490"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x259df814",
            "selector": "0x259df814",
            "calldata_variants": [
                "0x259df814",
                "0x259df8140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x57875631",
            "selector": "0x57875631",
            "calldata_variants": [
                "0x57875631",
                "0x578756310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x759970be",
            "selector": "0x759970be",
            "calldata_variants": [
                "0x759970be",
                "0x759970be0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x782aaeea",
            "selector": "0x782aaeea",
            "calldata_variants": [
                "0x782aaeea",
                "0x782aaeea0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8291286c",
            "selector": "0x8291286c",
            "calldata_variants": [
                "0x8291286c",
                "0x8291286c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9be54fe9",
            "selector": "0x9be54fe9",
            "calldata_variants": [
                "0x9be54fe9",
                "0x9be54fe90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbaaa61be",
            "selector": "0xbaaa61be",
            "calldata_variants": [
                "0xbaaa61be",
                "0xbaaa61be0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe8b6ab90",
            "selector": "0xe8b6ab90",
            "calldata_variants": [
                "0xe8b6ab90",
                "0xe8b6ab900000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1300,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1660,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1858,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 14,
    "guards_detected": []
}
high other slither SimpleExchange.gasExchangePrivate(address,uint256,uint256,uint256) (contracts/Contract.sol#692-716) uses arbitrary from in transferFrom: assert(bool)(EURO_TOKEN.transferFrom(gas... 85 no
view
evidence_json
{
    "impact": "High",
    "detector": "arbitrary-send-erc20",
    "elements": [
        {
            "name": "gasExchangePrivate",
            "type": "function",
            "source_mapping": {
                "lines": [
                    692,
                    693,
                    694,
                    695,
                    696,
                    697,
                    698,
                    699,
                    700,
                    701,
                    702,
                    703,
                    704,
                    705,
                    706,
                    707,
                    708,
                    709,
                    710,
                    711,
                    712,
                    713,
                    714,
                    715,
                    716
                ],
                "start": 24757,
                "length": 676,
                "ending_column": 19,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 18,
                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "SimpleExchange",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            544,
                            545,
                            546,
                            547,
                            548,
                            549,
                            550,
                            551,
                            552,
                            553,
                            554,
                            555,
                            556,
                            557,
                            558,
                            559,
                            560,
                            561,
                            562,
                            563,
                            564,
                            565,
                            566,
                            567,
                            568,
                            569,
                            570,
                            571,
                            572,
                            573,
                            574,
                            575,
                            576,
                            577,
                            578,
                            579,
                            580,
                            581,
                            582,
                            583,
                            584,
                            585,
                            586,
                            587,
                            588,
                            589,
                            590,
                            591,
                            592,
                            593,
                            594,
                            595,
                            596,
                            597,
                            598,
                            599,
                            600,
                            601,
                            602,
                            603,
                            604,
                            605,
                            606,
                            607,
                            608,
                            609,
                            610,
                            611,
                            612,
                            613,
                            614,
                            615,
                            616,
                            617,
                            618,
                            619,
                            620,
                            621,
                            622,
                            623,
                            624,
                            625,
                            626,
                            627,
                            628,
                            629,
                            630,
                            631,
                            632,
                            633,
                            634,
                            635,
                            636,
                            637,
                            638,
                            639,
                            640,
                            641,
                            642,
                            643,
                            644,
                            645,
                            646,
                            647,
                            648,
                            649,
                            650,
                            651,
                            652,
                            653,
                            654,
                            655,
                            656,
                            657,
                            658,
                            659,
                            660,
                            661,
                            662,
                            663,
                            664,
                            665,
                            666,
                            667,
                            668,
                            669,
                            670,
                            671,
                            672,
                            673,
                            674,
                            675,
                            676,
                            677,
                            678,
                            679,
                            680,
                            681,
                            682,
                            683,
                            684,
                            685,
                            686,
                            687,
                            688,
                            689,
                            690,
                            691,
                            692,
                            693,
                            694,
                            695,
                            696,
                            697,
                            698,
                            699,
                            700,
                            701,
                            702,
                            703,
                            704,
                            705,
                            706,
                            707,
                            708,
                            709,
                            710,
                            711,
                            712,
                            713,
                            714,
                            715,
                            716,
                            717,
                            718,
                            719,
                            720,
                            721,
                            722,
                            723,
                            724,
                            725,
                            726,
                            727,
                            728,
                            729,
                            730,
                            731,
                            732,
                            733,
                            734,
                            735,
                            736,
                            737,
                            738,
                            739,
                            740,
                            741,
                            742,
                            743,
                            744,
                            745,
                            746,
                            747,
                            748,
                            749,
                            750,
                            751,
                            752,
                            753,
                            754,
                            755,
                            756,
                            757,
                            758,
                            759,
                            760,
                            761,
                            762,
                            763,
                            764,
                            765,
                            766,
                            767,
                            768
                        ],
                        "start": 19723,
                        "length": 7853,
                        "ending_column": 28,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 11,
                        "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    }
                },
                "signature": "gasExchangePrivate(address,uint256,uint256,uint256)"
            }
        },
        {
            "name": "assert(bool)(EURO_TOKEN.transferFrom(gasRecipient,this,amountEurUlps))",
            "type": "node",
            "source_mapping": {
                "lines": [
                    704,
                    705,
                    706,
                    707,
                    708
                ],
                "start": 25173,
                "length": 66,
                "ending_column": 22,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 62,
                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "gasExchangePrivate",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            692,
                            693,
                            694,
                            695,
                            696,
                            697,
                            698,
                            699,
                            700,
                            701,
                            702,
                            703,
                            704,
                            705,
                            706,
                            707,
                            708,
                            709,
                            710,
                            711,
                            712,
                            713,
                            714,
                            715,
                            716
                        ],
                        "start": 24757,
                        "length": 676,
                        "ending_column": 19,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 18,
                        "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "SimpleExchange",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    544,
                                    545,
                                    546,
                                    547,
                                    548,
                                    549,
                                    550,
                                    551,
                                    552,
                                    553,
                                    554,
                                    555,
                                    556,
                                    557,
                                    558,
                                    559,
                                    560,
                                    561,
                                    562,
                                    563,
                                    564,
                                    565,
                                    566,
                                    567,
                                    568,
                                    569,
                                    570,
                                    571,
                                    572,
                                    573,
                                    574,
                                    575,
                                    576,
                                    577,
                                    578,
                                    579,
                                    580,
                                    581,
                                    582,
                                    583,
                                    584,
                                    585,
                                    586,
                                    587,
                                    588,
                                    589,
                                    590,
                                    591,
                                    592,
                                    593,
                                    594,
                                    595,
                                    596,
                                    597,
                                    598,
                                    599,
                                    600,
                                    601,
                                    602,
                                    603,
                                    604,
                                    605,
                                    606,
                                    607,
                                    608,
                                    609,
                                    610,
                                    611,
                                    612,
                                    613,
                                    614,
                                    615,
                                    616,
                                    617,
                                    618,
                                    619,
                                    620,
                                    621,
                                    622,
                                    623,
                                    624,
                                    625,
                                    626,
                                    627,
                                    628,
                                    629,
                                    630,
                                    631,
                                    632,
                                    633,
                                    634,
                                    635,
                                    636,
                                    637,
                                    638,
                                    639,
                                    640,
                                    641,
                                    642,
                                    643,
                                    644,
                                    645,
                                    646,
                                    647,
                                    648,
                                    649,
                                    650,
                                    651,
                                    652,
                                    653,
                                    654,
                                    655,
                                    656,
                                    657,
                                    658,
                                    659,
                                    660,
                                    661,
                                    662,
                                    663,
                                    664,
                                    665,
                                    666,
                                    667,
                                    668,
                                    669,
                                    670,
                                    671,
                                    672,
                                    673,
                                    674,
                                    675,
                                    676,
                                    677,
                                    678,
                                    679,
                                    680,
                                    681,
                                    682,
                                    683,
                                    684,
                                    685,
                                    686,
                                    687,
                                    688,
                                    689,
                                    690,
                                    691,
                                    692,
                                    693,
                                    694,
                                    695,
                                    696,
                                    697,
                                    698,
                                    699,
                                    700,
                                    701,
                                    702,
                                    703,
                                    704,
                                    705,
                                    706,
                                    707,
                                    708,
                                    709,
                                    710,
                                    711,
                                    712,
                                    713,
                                    714,
                                    715,
                                    716,
                                    717,
                                    718,
                                    719,
                                    720,
                                    721,
                                    722,
                                    723,
                                    724,
                                    725,
                                    726,
                                    727,
                                    728,
                                    729,
                                    730,
                                    731,
                                    732,
                                    733,
                                    734,
                                    735,
                                    736,
                                    737,
                                    738,
                                    739,
                                    740,
                                    741,
                                    742,
                                    743,
                                    744,
                                    745,
                                    746,
                                    747,
                                    748,
                                    749,
                                    750,
                                    751,
                                    752,
                                    753,
                                    754,
                                    755,
                                    756,
                                    757,
                                    758,
                                    759,
                                    760,
                                    761,
                                    762,
                                    763,
                                    764,
                                    765,
                                    766,
                                    767,
                                    768
                                ],
                                "start": 19723,
                                "length": 7853,
                                "ending_column": 28,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 11,
                                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "gasExchangePrivate(address,uint256,uint256,uint256)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "contracts/Contract.sol",
            "name": "gasExchangePrivate",
            "type": "function",
            "lines": [
                692,
                693,
                694,
                695,
                696,
                697,
                698,
                699,
                700,
                701,
                702,
                703,
                704,
                705,
                706,
                707,
                708,
                709,
                710,
                711,
                712,
                713,
                714,
                715,
                716
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "assert(bool)(EURO_TOKEN.transferFrom(gasRecipient,this,amountEurUlps))",
            "type": "node",
            "lines": [
                704,
                705,
                706,
                707,
                708
            ]
        }
    ],
    "description": "SimpleExchange.gasExchangePrivate(address,uint256,uint256,uint256) (contracts/Contract.sol#692-716) uses arbitrary from in transferFrom: assert(bool)(EURO_TOKEN.transferFrom(gasRecipient,this,amountEurUlps)) (contracts/Contract.sol#704-708)"
}
high other slither Reclaimable.reclaim(IBasicToken) (contracts/Contract.sol#332-345) sends eth to arbitrary user 85 no
view
evidence_json
{
    "impact": "High",
    "detector": "arbitrary-send-eth",
    "elements": [
        {
            "name": "reclaim",
            "type": "function",
            "source_mapping": {
                "lines": [
                    332,
                    333,
                    334,
                    335,
                    336,
                    337,
                    338,
                    339,
                    340,
                    341,
                    342,
                    343,
                    344,
                    345
                ],
                "start": 11784,
                "length": 360,
                "ending_column": 21,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 7,
                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "Reclaimable",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            328,
                            329,
                            330,
                            331,
                            332,
                            333,
                            334,
                            335,
                            336,
                            337,
                            338,
                            339,
                            340,
                            341,
                            342,
                            343,
                            344,
                            345
                        ],
                        "start": 11495,
                        "length": 651,
                        "ending_column": 23,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 1,
                        "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    }
                },
                "signature": "reclaim(IBasicToken)"
            }
        },
        {
            "name": "reclaimer.transfer(address(this).balance)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    337,
                    338,
                    339
                ],
                "start": 11959,
                "length": 41,
                "ending_column": 35,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 26,
                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "reclaim",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            332,
                            333,
                            334,
                            335,
                            336,
                            337,
                            338,
                            339,
                            340,
                            341,
                            342,
                            343,
                            344,
                            345
                        ],
                        "start": 11784,
                        "length": 360,
                        "ending_column": 21,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 7,
                        "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "Reclaimable",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    328,
                                    329,
                                    330,
                                    331,
                                    332,
                                    333,
                                    334,
                                    335,
                                    336,
                                    337,
                                    338,
                                    339,
                                    340,
                                    341,
                                    342,
                                    343,
                                    344,
                                    345
                                ],
                                "start": 11495,
                                "length": 651,
                                "ending_column": 23,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 1,
                                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "reclaim(IBasicToken)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "contracts/Contract.sol",
            "name": "reclaim",
            "type": "function",
            "lines": [
                332,
                333,
                334,
                335,
                336,
                337,
                338,
                339,
                340,
                341,
                342,
                343,
                344,
                345
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "reclaimer.transfer(address(this).balance)",
            "type": "node",
            "lines": [
                337,
                338,
                339
            ]
        }
    ],
    "description": "Reclaimable.reclaim(IBasicToken) (contracts/Contract.sol#332-345) sends eth to arbitrary user\n\tDangerous calls:\n\t- reclaimer.transfer(address(this).balance) (contracts/Contract.sol#337-339)"
}
medium reentrancy slither Reentrancy in AccessControlled.setAccessPolicy(IAccessPolicy,address) (contracts/Contract.sol#107-125): 75 no
view
evidence_json
{
    "impact": "Medium",
    "detector": "reentrancy-no-eth",
    "elements": [
        {
            "name": "setAccessPolicy",
            "type": "function",
            "source_mapping": {
                "lines": [
                    107,
                    108,
                    109,
                    110,
                    111,
                    112,
                    113,
                    114,
                    115,
                    116,
                    117,
                    118,
                    119,
                    120,
                    121,
                    122,
                    123,
                    124,
                    125
                ],
                "start": 4061,
                "length": 641,
                "ending_column": 10,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 4,
                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "AccessControlled",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            77,
                            78,
                            79,
                            80,
                            81,
                            82,
                            83,
                            84,
                            85,
                            86,
                            87,
                            88,
                            89,
                            90,
                            91,
                            92,
                            93,
                            94,
                            95,
                            96,
                            97,
                            98,
                            99,
                            100,
                            101,
                            102,
                            103,
                            104,
                            105,
                            106,
                            107,
                            108,
                            109,
                            110,
                            111,
                            112,
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            124,
                            125,
                            126,
                            127,
                            128,
                            129,
                            130,
                            131
                        ],
                        "start": 3245,
                        "length": 1594,
                        "ending_column": 6,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 156,
                        "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    }
                },
                "signature": "setAccessPolicy(IAccessPolicy,address)"
            }
        },
        {
            "name": "require(bool)(newPolicy.allowed(newAccessController,ROLE_ACCESS_CONTROLLER,this,msg.sig))",
            "type": "node",
            "source_mapping": {
                "lines": [
                    118,
                    119,
                    120
                ],
                "start": 4360,
                "length": 86,
                "ending_column": 28,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 46,
                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "setAccessPolicy",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            107,
                            108,
                            109,
                            110,
                            111,
                            112,
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            124,
                            125
                        ],
                        "start": 4061,
                        "length": 641,
                        "ending_column": 10,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 4,
                        "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "AccessControlled",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122,
                                    123,
                                    124,
                                    125,
                                    126,
                                    127,
                                    128,
                                    129,
                                    130,
                                    131
                                ],
                                "start": 3245,
                                "length": 1594,
                                "ending_column": 6,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 156,
                                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "setAccessPolicy(IAccessPolicy,address)"
                    }
                }
            }
        },
        {
            "name": "only(ROLE_ACCESS_CONTROLLER)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    112,
                    113,
                    114
                ],
                "start": 4163,
                "length": 28,
                "ending_column": 22,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 4,
                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "setAccessPolicy",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            107,
                            108,
                            109,
                            110,
                            111,
                            112,
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            124,
                            125
                        ],
                        "start": 4061,
                        "length": 641,
                        "ending_column": 10,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 4,
                        "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "AccessControlled",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122,
                                    123,
                                    124,
                                    125,
                                    126,
                                    127,
                                    128,
                                    129,
                                    130,
                                    131
                                ],
                                "start": 3245,
                                "length": 1594,
                                "ending_column": 6,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 156,
                                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "setAccessPolicy(IAccessPolicy,address)"
                    }
                }
            }
        },
        {
            "name": "require(bool)(_accessPolicy.allowed(msg.sender,role,this,msg.sig))",
            "type": "node",
            "source_mapping": {
                "lines": [
                    91,
                    92
                ],
                "start": 3633,
                "length": 63,
                "ending_column": 15,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 36,
                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls_sending_eth"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "only",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            89,
                            90,
                            91,
                            92
                        ],
                        "start": 3595,
                        "length": 119,
                        "ending_column": 33,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 30,
                        "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "AccessControlled",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122,
                                    123,
                                    124,
                                    125,
                                    126,
                                    127,
                                    128,
                                    129,
                                    130,
                                    131
                                ],
                                "start": 3245,
                                "length": 1594,
                                "ending_column": 6,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 156,
                                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "only(bytes32)"
                    }
                }
            }
        },
        {
            "name": "_accessPolicy = newPolicy",
            "type": "node",
            "source_mapping": {
                "lines": [
                    123
                ],
                "start": 4577,
                "length": 25,
                "ending_column": 32,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 7,
                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "variable_name": "_accessPolicy",
                "underlying_type": "variables_written"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "setAccessPolicy",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            107,
                            108,
                            109,
                            110,
                            111,
                            112,
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            124,
                            125
                        ],
                        "start": 4061,
                        "length": 641,
                        "ending_column": 10,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 4,
                        "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "AccessControlled",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122,
                                    123,
                                    124,
                                    125,
                                    126,
                                    127,
                                    128,
                                    129,
                                    130,
                                    131
                                ],
                                "start": 3245,
                                "length": 1594,
                                "ending_column": 6,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 156,
                                "filename_absolute": "/tmp/slither-a1kvj1uv/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "setAccessPolicy(IAccessPolicy,address)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "contracts/Contract.sol",
            "name": "setAccessPolicy",
            "type": "function",
            "lines": [
                107,
                108,
                109,
                110,
                111,
                112,
                113,
                114,
                115,
                116,
                117,
                118,
                119,
                120,
                121,
                122,
                123,
                124,
                125
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "require(bool)(newPolicy.allowed(newAccessController,ROLE_ACCESS_CONTROLLER,this,msg.sig))",
            "type": "node",
            "lines": [
                118,
                119,
                120
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "only(ROLE_ACCESS_CONTROLLER)",
            "type": "node",
            "lines": [
                112,
                113,
                114
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "require(bool)(_accessPolicy.allowed(msg.sender,role,this,msg.sig))",
            "type": "node",
            "lines": [
                91,
                92
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "_accessPolicy = newPolicy",
            "type": "node",
            "lines": [
                123
            ]
        }
    ],
    "description": "Reentrancy in AccessControlled.setAccessPolicy(IAccessPolicy,address) (contracts/Contract.sol#107-125):\n\tExternal calls:\n\t- require(bool)(newPolicy.allowed(newAccessController,ROLE_ACCESS_CONTROLLER,this,msg.sig)) (contracts/Contract.sol#118-120)\n\t- only(ROLE_ACCESS_CONTROLLER) (contracts/Contract.sol#112-114)\n\t\t- require(bool)(_accessPolicy.allowed(msg.sender,role,this,msg.sig)) (contracts/Contract.sol#91-92)\n\tState variables written after the call(s):\n\t- _accessPolicy = newPolicy (contracts/Contract.sol#123)\n\tAccessControlled._accessPolicy (contracts/Contract.sol#81-82) can be used in cross function reentrancies:\n\t- AccessControlled.accessPolicy() (contracts/Contract.sol#125-131)\n\t- AccessControlled.only(bytes32) (contracts/Contract.sol#89-92)\n\t- AccessControlled.setAccessPolicy(IAccessPolicy,address) (contracts/Contract.sol#107-125)"
}