b1bfdf89-3608-4fd0-b514-11fbacdbd4cd
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 31789 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 96157 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 96158 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 96159 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 96160 | capability.graph | complete | 1 / 3 | 1 week ago |
| 96161 | detector.run | complete | 1 / 3 | 1 week ago |
| 96162 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:432789] OpenAI Codex v0.77.0 (research preview)
[codex:432789] --------
[codex:432789] workdir: /tmp/codex-multi-263d9z1u
[codex:432789] model: gpt-5.2-codex
[codex:432789] provider: openai
[codex:432789] approval: never
[codex:432789] sandbox: read-only
[codex:432789] reasoning effort: xhigh
[codex:432789] reasoning summaries: auto
[codex:432789] session id: 019ba45d-5ed0-79b3-9015-ceb2614bb73c
[codex:432789] --------
[codex:432789] user
[codex:432789] You are a profit-focused exploit hunter analyzing EVM bytecode. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:432789]
[codex:432789] Read `BYTECODE_BUNDLE.txt` completely. It contains:
[codex:432789] 1. Detected contract patterns (ERC20, ERC721, proxy, etc.)
[codex:432789] 2. Function selectors (4-byte signatures) - these are the entry points
[codex:432789] 3. Opcode disassembly - read this to understand control flow
[codex:432789] 4. Raw bytecode hex - reference for exact offsets
[codex:432789]
[codex:432789] ANALYSIS STRATEGY:
[codex:432789] - Start with detected patterns: if it's ERC20-like, look for transfer/approve bugs
[codex:432789] - Trace function selectors: follow the control flow from entry point to value transfers
[codex:432789] - Read the disassembly: understand the logic, don't just pattern match
[codex:432789] - Look for math operations (DIV, MUL, SUB, ADD) - these are exploit hot spots
[codex:432789] - Check CALL/DELEGATECALL destinations - are they controllable?
[codex:432789] - Verify access control: is CALLER/ORIGIN checked before sensitive operations?
[codex:432789]
[codex:432789] CRITICAL EXPLOIT PATTERNS:
[codex:432789] - DIV/SDIV with small denominator: division by zero, division inversion (1/x where x=1 gives huge result)
[codex:432789] - MUL/MULMOD overflow: integer overflow in share/amount calculations
[codex:432789] - SUB underflow: accounting errors where balances can go negative
[codex:432789] - CALL/DELEGATECALL with user-controlled destination: arbitrary external calls
[codex:432789] - Value transfers without auth: CALL with value but no CALLER check
[codex:432789] - Reentrancy: external CALL before SSTORE (state update)
[codex:432789] - SELFDESTRUCT with controllable beneficiary: drain all funds
[codex:432789] - Proxy storage collision: DELEGATECALL with overlapping storage slots
[codex:432789] - Signature replay: ecrecover without nonce/chainId/deadline
[codex:432789]
[codex:432789] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:432789] - Gas inefficiency, code quality, or best practices
[codex:432789] - Theoretical vulnerabilities without a clear extraction path
[codex:432789] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:432789] - Issues requiring social engineering or off-chain coordination
[codex:432789]
[codex:432789] For each finding, you MUST explain:
[codex:432789] 1. The specific opcode sequence/offsets from the disassembly
[codex:432789] 2. The function selector (if applicable) and how to call it
[codex:432789] 3. The concrete sequence of transactions to extract value
[codex:432789] 4. Why this is exploitable (not just suspicious)
[codex:432789]
[codex:432789] If you cannot identify a concrete profit path: set no_findings=true.
[codex:432789] Do NOT hallucinate. Bytecode analysis is hard - be honest about uncertainty.
[codex:432789]
[codex:432789] Output MUST be valid JSON matching the provided schema.
[codex:432789] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:432789] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:432789] mcp startup: no servers
[codex:432789]
[codex:432789] thinking
[codex:432789] **Preparing to read file**
[codex:432789] exec
[codex:432789] /bin/bash -lc ls in /tmp/codex-multi-263d9z1u succeeded in 5ms:
[codex:432789] BYTECODE_BUNDLE.txt
[codex:432789] codex-output-schema.json
[codex:432789] exec
[codex:432789] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 10ms:
[codex:432789] ================================================================================
[codex:432789] BYTECODE ANALYSIS BUNDLE
[codex:432789] ================================================================================
[codex:432789]
[codex:432789] This contract has NO verified source. Analyze bytecode patterns carefully.
[codex:432789]
[codex:432789] OPCODE STATISTICS:
[codex:432789] Total bytes: 15006
[codex:432789] Key opcodes:
[codex:432789] ADD: 389
[codex:432789] SLOAD: 183
[codex:432789] SUB: 109
[codex:432789] SSTORE: 56
[codex:432789] DIV: 51
[codex:432789] MUL: 45
[codex:432789] CALLER: 18
[codex:432789] CALL: 2
[codex:432789] CREATE: 1
[codex:432789]
[codex:432789] Features:
[codex:432789]
[codex:432789] thinking
[codex:432789] **Analyzing bytecode for exploits**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "SELFDESTRUCT|DELEGATECALL|CALL" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 9ms:
[codex:432789] 16: CALLER: 18
[codex:432789] 17: CALL: 2
[codex:432789] 23: ⚠️ Contains CALL/DELEGATECALL - check for reentrancy!
[codex:432789] 30: - Proxy pattern (DELEGATECALL detected)
[codex:432789] 31: - Contains SELFDESTRUCT
[codex:432789] 67:00000007: CALLDATASIZE
[codex:432789] 72:0000000f: CALLDATALOAD
[codex:432789] 358:00000299: CALLVALUE
[codex:432789] 371:000002ac: CALLDATASIZE
[codex:432789] 378:000002b3: CALLDATALOAD
[codex:432789] 389:000002d3: CALLDATALOAD
[codex:432789] 400:000002f3: CALLDATALOAD
[codex:432789] 411:00000313: CALLDATALOAD
[codex:432789] 422:00000333: CALLDATALOAD
[codex:432789] 433:00000353: CALLDATALOAD
[codex:432789] 444:00000373: CALLDATALOAD
[codex:432789] 455:00000393: CALLDATALOAD
[codex:432789] 466:000003b3: CALLDATALOAD
[codex:432789] 477:000003d3: CALLDATALOAD
[codex:432789] 488:000003f3: CALLDATALOAD
[codex:432789]
[codex:432789] thinking
[codex:432789] **Investigating SELFDESTRUCT absence in disassembly**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "DELEGATECALL" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 7ms:
[codex:432789] 23: ⚠️ Contains CALL/DELEGATECALL - check for reentrancy!
[codex:432789] 30: - Proxy pattern (DELEGATECALL detected)
[codex:432789]
[codex:432789] thinking
[codex:432789] **Investigating disassembly around suspicious call**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "00001af0" -n BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 3923:00001af0: CALL
[codex:432789]
[codex:432789] thinking
[codex:432789] **Extracting code context around line 3923**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '3890,3960p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 00001ab2: AND
[codex:432789] 00001ab3: EQ
[codex:432789] 00001ab4: ISZERO
[codex:432789] 00001ab5: ISZERO
[codex:432789] 00001ab6: PUSH2 0x1abe
[codex:432789] 00001ab9: JUMPI
[codex:432789] 00001aba: PUSH1 0x00
[codex:432789] 00001abc: DUP1
[codex:432789] 00001abd: REVERT
[codex:432789] 00001abe: JUMPDEST
[codex:432789] 00001abf: CALLER
[codex:432789] 00001ac0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 00001ad5: AND
[codex:432789] 00001ad6: PUSH2 0x08fc
[codex:432789] 00001ad9: PUSH1 0x0e
[codex:432789] 00001adb: SLOAD
[codex:432789] 00001adc: SWAP1
[codex:432789] 00001add: DUP2
[codex:432789] 00001ade: ISZERO
[codex:432789] 00001adf: MUL
[codex:432789]
[codex:432789] thinking
[codex:432789] **Analyzing EVM CALL sequence**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '3860,3925p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 27ms:
[codex:432789] 00001a52: PUSH1 0x19
[codex:432789] 00001a54: SLOAD
[codex:432789] 00001a55: SWAP1
[codex:432789] 00001a56: POP
[codex:432789] 00001a57: SWAP1
[codex:432789] 00001a58: JUMP
[codex:432789] 00001a59: JUMPDEST
[codex:432789] 00001a5a: PUSH1 0x00
[codex:432789] 00001a5c: PUSH1 0x08
[codex:432789] 00001a5e: SLOAD
[codex:432789] 00001a5f: SWAP1
[codex:432789] 00001a60: POP
[codex:432789] 00001a61: SWAP1
[codex:432789] 00001a62: JUMP
[codex:432789] 00001a63: JUMPDEST
[codex:432789] 00001a64: PUSH1 0x00
[codex:432789] 00001a66: DUP1
[codex:432789] 00001a67: SWAP1
[codex:432789] 00001a68: SLOAD
[codex:432789] 00001a69: SWAP1
[codex:432789]
[codex:432789] thinking
[codex:432789] **Analyzing complex EVM call sequence**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "PUSH1 0x0e" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 28ms:
[codex:432789] 3419:00001685: PUSH1 0x0e
[codex:432789] 3904:00001ad9: PUSH1 0x0e
[codex:432789] 3944:00001b0a: PUSH1 0x0e
[codex:432789] 5007:000023c8: PUSH1 0x0e
[codex:432789] 5468:0000285b: PUSH1 0x0e
[codex:432789]
[codex:432789] thinking
[codex:432789] **Reviewing code near offset 0x1685**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '3385,3445p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 0000165d: JUMPDEST
[codex:432789] 0000165e: DUP2
[codex:432789] 0000165f: SLOAD
[codex:432789] 00001660: DUP2
[codex:432789] 00001661: MSTORE
[codex:432789] 00001662: SWAP1
[codex:432789] 00001663: PUSH1 0x01
[codex:432789] 00001665: ADD
[codex:432789] 00001666: SWAP1
[codex:432789] 00001667: PUSH1 0x20
[codex:432789] 00001669: ADD
[codex:432789] 0000166a: DUP1
[codex:432789] 0000166b: DUP4
[codex:432789] 0000166c: GT
[codex:432789] 0000166d: PUSH2 0x165d
[codex:432789] 00001670: JUMPI
[codex:432789] 00001671: DUP3
[codex:432789] 00001672: SWAP1
[codex:432789] 00001673: SUB
[codex:432789] 00001674: PUSH1 0x1f
[codex:432789]
[codex:432789] thinking
[codex:432789] **Analyzing function returning storage slot**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '4970,5045p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 5ms:
[codex:432789] 00002399: JUMP
[codex:432789] 0000239a: JUMPDEST
[codex:432789] 0000239b: PUSH1 0x00
[codex:432789] 0000239d: PUSH1 0x08
[codex:432789] 0000239f: SLOAD
[codex:432789] 000023a0: CALLVALUE
[codex:432789] 000023a1: MUL
[codex:432789] 000023a2: SWAP1
[codex:432789] 000023a3: POP
[codex:432789] 000023a4: PUSH1 0x16
[codex:432789] 000023a6: SLOAD
[codex:432789] 000023a7: DUP2
[codex:432789] 000023a8: PUSH1 0x07
[codex:432789] 000023aa: SLOAD
[codex:432789] 000023ab: ADD
[codex:432789] 000023ac: GT
[codex:432789] 000023ad: ISZERO
[codex:432789] 000023ae: PUSH2 0x23b6
[codex:432789] 000023b1: JUMPI
[codex:432789] 000023b2: PUSH2 0x23ea
[codex:432789]
[codex:432789] thinking
[codex:432789] **Analyzing ETH deposit and withdrawal functions**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "1a63" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 1354:000008bb: PUSH2 0x1a63
[codex:432789] 3874:00001a63: JUMPDEST
[codex:432789] 7642:0x608060405260043610610293576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063010791b014610298578063049bf0711461040557806306fdde0314610430578063087d01df146104c0578063095ea7b3146104eb5780630ac3887c14610550578063153548e21461057b57806318160ddd146105a657806323392c7a146105d157806323b872dd1461063e57806328547ead146106c3578063313ce567146106ee578063330c91cc1461071f578063361531c31461076257806339fae0c11461078d57806342966c68146107b8578063488f38db146107fd5780636322c95014610828578063679aefce146108535780636a953e091461087e57806370a08231146108c1578063749ba8b41461091857806375418b9d1461092f57806377b318031461097357806379c650681461099e57806379cc6790146109eb578063828df79b14610a505780638383554314610a7b5780638b2b3d8b14610ad65780638da5cb5b14610b0157806390b08a5214610b58578063923cce5e14610b8357806394ede56314610bb057806395d89b4114610bdb5780639980ec8614610c6b578063a6f2ae3a14610cac578063a7ed901c14610cb6578063a9059cbb14610ce3578063ab2d97d714610d30578063b2f2d21b14610d5b578063ba93b0ec14610e31578063c98166c014610e5c578063cae9ca5114610e87578063d5bbc3bb14610f32578063db20cb3e14610f75578063dd62ed3e14610fe2578063e132db4114611059578063e296796e14611070578063eda456ba14611087578063ee5c4567146110ce578063f2801fe7146110f9578063f2fde38b146111ef578063f722783114611232578063f843d7fd1461125d578063fdef933b14611288575b600080fd5b3480156102a457600080fd5b50610403600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112b3565b005b34801561041157600080fd5b5061041a6115de565b6040518082815260200191505060405180910390f35b34801561043c57600080fd5b506104456115e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561048557808201518184015260208101905061046a565b50505050905090810190601f1680156104b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104cc57600080fd5b506104d5611682565b6040518082815260200191505060405180910390f35b3480156104f757600080fd5b50610536600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061168c565b604051808215151515815260200191505060405180910390f35b34801561055c57600080fd5b50610565611719565b6040518082815260200191505060405180910390f35b34801561058757600080fd5b5061059061171f565b6040518082815260200191505060405180910390f35b3480156105b257600080fd5b506105bb611725565b6040518082815260200191505060405180910390f35b3480156105dd57600080fd5b506105fc6004803603810190808035906020019092919050505061172b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064a57600080fd5b506106a9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611769565b604051808215151515815260200191505060405180910390f35b3480156106cf57600080fd5b506106d8611899565b6040518082815260200191505060405180910390f35b3480156106fa57600080fd5b5061070361189f565b604051808260ff1660ff16815260200191505060405180910390f35b34801561072b57600080fd5b50610760600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118b2565b005b34801561076e57600080fd5b5061077761192d565b6040518082815260200191505060405180910390f35b34801561079957600080fd5b506107a2611937565b6040518082815260200191505060405180910390f35b3480156107c457600080fd5b506107e360048036038101908080359060200190929190505050611941565b604051808215151515815260200191505060405180910390f35b34801561080957600080fd5b50610812611a45565b6040518082815260200191505060405180910390f35b34801561083457600080fd5b5061083d611a4f565b6040518082815260200191505060405180910390f35b34801561085f57600080fd5b50610868611a59565b6040518082815260200191505060405180910390f35b34801561088a57600080fd5b506108bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a63565b005b3480156108cd57600080fd5b50610902600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b12565b6040518082815260200191505060405180910390f35b34801561092457600080fd5b5061092d611b2a565b005b34801561093b57600080fd5b50610944611dbe565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b34801561097f57600080fd5b50610988611e33565b6040518082815260200191505060405180910390f35b3480156109aa57600080fd5b506109e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e39565b005b3480156109f757600080fd5b50610a36600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611fc0565b604051808215151515815260200191505060405180910390f35b348015610a5c57600080fd5b50610a6561214e565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610abc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612154565b604051808215151515815260200191505060405180910390f35b348015610ae257600080fd5b50610aeb6121ad565b6040518082815260200191505060405180910390f35b348015610b0d57600080fd5b50610b166121b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b6457600080fd5b50610b6d6121d8565b6040518082815260200191505060405180910390f35b348015610b8f57600080fd5b50610bae600480360381019080803590602001909291905050506121e2565b005b348015610bbc57600080fd5b50610bc56122e4565b6040518082815260200191505060405180910390f35b348015610be757600080fd5b50610bf06122ee565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c30578082015181840152602081019050610c15565b50505050905090810190601f168015610c5d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c7757600080fd5b50610c966004803603810190808035906020019092919050505061238c565b6040518082815260200191505060405180910390f35b610cb461239a565b005b348015610cc257600080fd5b50610ce1600480360381019080803590602001909291905050506123ed565b005b348015610cef57600080fd5b50610d2e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612642565b005b348015610d3c57600080fd5b50610d45612651565b6040518082815260200191505060405180910390f35b348015610d6757600080fd5b50610d9c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612657565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184815260200183815260200182151515158152602001965050505050505060405180910390f35b348015610e3d57600080fd5b50610e46612854565b6040518082815260200191505060405180910390f35b348015610e6857600080fd5b50610e7161285a565b6040518082815260200191505060405180910390f35b348015610e9357600080fd5b50610f18600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612860565b604051808215151515815260200191505060405180910390f35b348015610f3e57600080fd5b50610f73600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129e3565b005b348015610f8157600080fd5b50610fa060048036038101908080359060200190929190505050612b39565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fee57600080fd5b50611043600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b77565b6040518082815260200191505060405180910390f35b34801561106557600080fd5b5061106e612b9c565b005b34801561107c57600080fd5b50611085612cfa565b005b34801561109357600080fd5b5061109c612e7c565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b3480156110da57600080fd5b506110e3612ea4565b6040518082815260200191505060405180910390f35b34801561110557600080fd5b5061115a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612eaa565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184815260200183815260200182151515158152602001965050505050505060405180910390f35b3480156111fb57600080fd5b50611230600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613652565b005b34801561123e57600080fd5b506112476136f0565b6040518082815260200191505060405180910390f35b34801561126957600080fd5b506112726136fa565b6040518082815260200191505060405180910390f35b34801561129457600080fd5b5061129d613704565b6040518082815260200191505060405180910390f35b6000806000806017541180156112c95750600084115b156115cd576017549250600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915082821015611322576115ce565b838381151561132d57fe5b049050600073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614151561137257611371308f8361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff161415156113b4576113b3308e8361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff161415156113f6576113f5308d8361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1614151561143857611437308c8361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614151561147a57611479308b8361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161415156114bc576114bb308a8361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415156114fe576114fd30898361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415156115405761153f30888361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415156115825761158130878361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415156115c4576115c330868361370e565b5b60006017819055505b5b5050505050505050505050505050565b60155481565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561167a5780601f1061164f5761010080835404028352916020019161167a565b820191906000526020600020905b81548152906001019060200180831161165d57829003601f168201915b505050505081565b6000600e54905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b60165481565b60185481565b60045481565b600c8181548110151561173a57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156117f85760009050611892565b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555061188d84848461370e565b600190505b9392505050565b600a5481565b600360009054906101000a900460ff1681565b601860008154809291906001019190505550600d8190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000601754905090565b6000600954905090565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561199157600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816004600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a260019050919050565b6000601554905090565b6000601954905090565b6000600854905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611abe57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc600e549081150290604051600060405180830381858888f19350505050158015611b06573d6000803e3d6000fd5b506000600e8190555050565b60056020528060005260406000206000915090505481565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b8d57600080fd5b6000945060009350600954925060006019541115611c9e57601954600284811515611bb457fe5b04811515611bbe57fe5b0491505b601954851015611c9d5781600960008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff16600c86815481101515611c0357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c9057611c8f30600c87815481101515611c5e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461370e565b5b8480600101955050611bc2565b5b60006018541115611da257601854600484811515611cb857fe5b04811515611cc257fe5b0490505b601854841015611da15780600960008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff16600d85815481101515611d0757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d9457611d9330600d86815481101515611d6257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361370e565b5b8380600101945050611cc6565b5b611dae30600954611fc0565b5060006009819055505050505050565b600080600080670de0b6b3a7640000600754811515611dd957fe5b0460136000600181526020019081526020016000205460016015540160136000600160155401815260200190815260200160002054670de0b6b3a7640000600754811515611e2357fe5b0411935093509350935090919293565b60195481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9457600080fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806004600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561200e57612148565b81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816004600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a2600190505b92915050565b60175481565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff169050919050565b60075481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600754905090565b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6000600b54905090565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123845780601f1061235957610100808354040283529160200191612384565b820191906000526020600020905b81548152906001019060200180831161236757829003601f168201915b505050505081565b600060085482029050919050565b600060085434029050601654816007540111156123b6576123ea565b8060076000828254019250508190555034600e600082825401925050819055506123de612b9c565b6123e930338361370e565b5b50565b6000806000309250339150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124325761263c565b83600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561247e5761263c565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561250b5761263c565b6064605f850281151561251a57fe5b04905060646005850281151561252c57fe5b0460176000828254019250508190555080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50505050565b61264d33838361370e565b5050565b60095481565b600080600080600080601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600f60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050601060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff1695509550955095509550955091939550919395565b60085481565b600e5481565b600080849050612870858561168c565b156129da578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561296a57808201518184015260208101905061294f565b50505050905090810190601f1680156129975780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156129b957600080fd5b505af11580156129cd573d6000803e3d6000fd5b50505050600191506129db565b5b509392505050565b60008090505b601854811015612abd578173ffffffffffffffffffffffffffffffffffffffff16600d82815481101515612a1957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612ab05760186000815480929190600190039190505550600d81815481101515612a8257fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b80806001019150506129e9565b601960008154809291906001019190505550600c8290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600d81815481101515612b4857fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6006602052816000526040600020602052806000526040600020600091509150505481565b60136000601554815260200190815260200160002054670de0b6b3a7640000600754811515612bc757fe5b0410158015612bd85750600d601554105b15612c0e576014600060016015540181526020019081526020016000205460088190555060016015600082825401925050819055505b60136000600160155401815260200190815260200160002054670de0b6b3a7640000600754811515612c3c57fe5b0410158015612c4d5750600c601554105b15612c83576014600060026015540181526020019081526020016000205460088190555060026015600082825401925050819055505b60136000600260155401815260200190815260200160002054670de0b6b3a7640000600754811515612cb157fe5b0410158015612cc25750600b601554105b15612cf8576014600060036015540181526020019081526020016000205460088190555060036015600082825401925050819055505b565b6000806000806000600b54118015612d1457506000601954115b15612e7557600360009054906101000a900460ff1660ff16600a0a614e20029350600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925083831015612d8457612e76565b6000915060195484811515612d9557fe5b0490505b601954821015612e6457600073ffffffffffffffffffffffffffffffffffffffff16600c83815481101515612dca57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612e5757612e5630600c84815481101515612e2557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361370e565b5b8180600101925050612d99565b83600b600082825403925050819055505b5b50505050565b6000806000806000600954601754601954601854600b54945094509450945094509091929394565b600b5481565b600080600080600080612ebb613a1b565b60011515612ec88a612154565b151514156130c057601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600f60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050601060008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050601160008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff16965096509650965096509650613647565b6080604051908101604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160011515815250905080601160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff021916908315150217905550905050600f60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff021916908315150217905550505050601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff021916908315150217905550505050601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600f60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050601060008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050601160008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff169650965096509650965096505b509295509295509295565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156136ad57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000601854905090565b6000601654905090565b6000600854905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561374957613a15565b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561379557613a15565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561382257613a15565b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061388757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15613894578190506138c6565b6064606283028115156138a357fe5b0490506064600283028115156138b557fe5b046009600082825401925050819055505b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550808203600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50505050565b608060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160001515815250905600a165627a7a7230582099d721cb929aa04e0681ce28ecc9d162f3dd9445fdb855298556d599f0fd0b360029
[codex:432789]
[codex:432789]
[codex:432789] thinking
[codex:432789] **Analyzing EVM stack with parameters and return address**
[codex:432789] thinking
[codex:432789] **Verifying stack effects with return address included**
[codex:432789]
[codex:432789] I’m re-evaluating the stack with the return address below the argument to see how it impacts the CALL parameters and gas calculations. The deeper stack position shifts don’t alter the CALL recipient or value, but the gas computation looks suspicious—possibly designed to conditionally fail the call. I’m curious about further calls around 0x29bc that might clarify the real withdrawal logic!
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '5610,5695p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 0000298f: AND
[codex:432789] 00002990: DUP2
[codex:432789] 00002991: MSTORE
[codex:432789] 00002992: PUSH1 0x20
[codex:432789] 00002994: ADD
[codex:432789] 00002995: SWAP2
[codex:432789] 00002996: POP
[codex:432789] 00002997: JUMPDEST
[codex:432789] 00002998: POP
[codex:432789] 00002999: SWAP6
[codex:432789] 0000299a: POP
[codex:432789] 0000299b: POP
[codex:432789] 0000299c: POP
[codex:432789] 0000299d: POP
[codex:432789] 0000299e: POP
[codex:432789] 0000299f: POP
[codex:432789] 000029a0: PUSH1 0x00
[codex:432789] 000029a2: PUSH1 0x40
[codex:432789] 000029a4: MLOAD
[codex:432789] 000029a5: DUP1
[codex:432789]
[codex:432789] thinking
[codex:432789] **Analyzing suspicious external call**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "00002860" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 17ms:
[codex:432789] 5472:00002860: JUMPDEST
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '5430,5525p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 8ms:
[codex:432789] 0000282f: PUSH1 0x03
[codex:432789] 00002831: ADD
[codex:432789] 00002832: PUSH1 0x00
[codex:432789] 00002834: SWAP1
[codex:432789] 00002835: SLOAD
[codex:432789] 00002836: SWAP1
[codex:432789] 00002837: PUSH2 0x0100
[codex:432789] 0000283a: EXP
[codex:432789] 0000283b: SWAP1
[codex:432789] 0000283c: DIV
[codex:432789] 0000283d: PUSH1 0xff
[codex:432789] 0000283f: AND
[codex:432789] 00002840: SWAP6
[codex:432789] 00002841: POP
[codex:432789] 00002842: SWAP6
[codex:432789] 00002843: POP
[codex:432789] 00002844: SWAP6
[codex:432789] 00002845: POP
[codex:432789] 00002846: SWAP6
[codex:432789] 00002847: POP
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '5525,5615p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 8ms:
[codex:432789] 00002929: AND
[codex:432789] 0000292a: DUP2
[codex:432789] 0000292b: MSTORE
[codex:432789] 0000292c: PUSH1 0x20
[codex:432789] 0000292e: ADD
[codex:432789] 0000292f: DUP1
[codex:432789] 00002930: PUSH1 0x20
[codex:432789] 00002932: ADD
[codex:432789] 00002933: DUP3
[codex:432789] 00002934: DUP2
[codex:432789] 00002935: SUB
[codex:432789] 00002936: DUP3
[codex:432789] 00002937: MSTORE
[codex:432789] 00002938: DUP4
[codex:432789] 00002939: DUP2
[codex:432789] 0000293a: DUP2
[codex:432789] 0000293b: MLOAD
[codex:432789] 0000293c: DUP2
[codex:432789] 0000293d: MSTORE
[codex:432789] 0000293e: PUSH1 0x20
[codex:432789]
[codex:432789] thinking
[codex:432789] **Analyzing EVM bytecode for exploits**
[codex:432789]
[codex:432789] I’m carefully examining contract bytecode to identify any unauthorized ETH or token withdrawals, focusing on function selectors, storage slots, and access controls, especially mint and transfer functions, potential arithmetic bugs, and owner-only restrictions to find a concrete exploit path.
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '5235,5315p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 000025ee: DUP4
[codex:432789] 000025ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 00002604: AND
[codex:432789] 00002605: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
[codex:432789] 00002626: DUP4
[codex:432789] 00002627: PUSH1 0x40
[codex:432789] 00002629: MLOAD
[codex:432789] 0000262a: DUP1
[codex:432789] 0000262b: DUP3
[codex:432789] 0000262c: DUP2
[codex:432789] 0000262d: MSTORE
[codex:432789] 0000262e: PUSH1 0x20
[codex:432789] 00002630: ADD
[codex:432789] 00002631: SWAP2
[codex:432789] 00002632: POP
[codex:432789] 00002633: POP
[codex:432789] 00002634: PUSH1 0x40
[codex:432789] 00002636: MLOAD
[codex:432789] 00002637: DUP1
[codex:432789] 00002638: SWAP2
[codex:432789]
[codex:432789] thinking
[codex:432789] **Inspecting internal transfer function**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "0000370e" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 30ms:
[codex:432789] 7282:0000370e: JUMPDEST
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '7245,7335p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 000036cf: NOT
[codex:432789] 000036d0: AND
[codex:432789] 000036d1: SWAP1
[codex:432789] 000036d2: DUP4
[codex:432789] 000036d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 000036e8: AND
[codex:432789] 000036e9: MUL
[codex:432789] 000036ea: OR
[codex:432789] 000036eb: SWAP1
[codex:432789] 000036ec: SSTORE
[codex:432789] 000036ed: POP
[codex:432789] 000036ee: POP
[codex:432789] 000036ef: JUMP
[codex:432789] 000036f0: JUMPDEST
[codex:432789] 000036f1: PUSH1 0x00
[codex:432789] 000036f3: PUSH1 0x18
[codex:432789] 000036f5: SLOAD
[codex:432789] 000036f6: SWAP1
[codex:432789] 000036f7: POP
[codex:432789] 000036f8: SWAP1
[codex:432789]
[codex:432789] thinking
[codex:432789] **Continuing processing**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '7335,7425p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 11ms:
[codex:432789] 000037cc: SWAP1
[codex:432789] 000037cd: DUP2
[codex:432789] 000037ce: MSTORE
[codex:432789] 000037cf: PUSH1 0x20
[codex:432789] 000037d1: ADD
[codex:432789] 000037d2: PUSH1 0x00
[codex:432789] 000037d4: KECCAK256
[codex:432789] 000037d5: SLOAD
[codex:432789] 000037d6: DUP3
[codex:432789] 000037d7: PUSH1 0x05
[codex:432789] 000037d9: PUSH1 0x00
[codex:432789] 000037db: DUP7
[codex:432789] 000037dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 000037f1: AND
[codex:432789] 000037f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 00003807: AND
[codex:432789] 00003808: DUP2
[codex:432789] 00003809: MSTORE
[codex:432789] 0000380a: PUSH1 0x20
[codex:432789] 0000380c: ADD
[codex:432789]
[codex:432789] thinking
[codex:432789] **Continuing analysis**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '7425,7515p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 000038b7: PUSH1 0x09
[codex:432789] 000038b9: PUSH1 0x00
[codex:432789] 000038bb: DUP3
[codex:432789] 000038bc: DUP3
[codex:432789] 000038bd: SLOAD
[codex:432789] 000038be: ADD
[codex:432789] 000038bf: SWAP3
[codex:432789] 000038c0: POP
[codex:432789] 000038c1: POP
[codex:432789] 000038c2: DUP2
[codex:432789] 000038c3: SWAP1
[codex:432789] 000038c4: SSTORE
[codex:432789] 000038c5: POP
[codex:432789] 000038c6: JUMPDEST
[codex:432789] 000038c7: DUP2
[codex:432789] 000038c8: PUSH1 0x05
[codex:432789] 000038ca: PUSH1 0x00
[codex:432789] 000038cc: DUP7
[codex:432789] 000038cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 000038e2: AND
[codex:432789]
[codex:432789] thinking
[codex:432789] **Continuing exploration**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '7515,7605p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 28ms:
[codex:432789] 0000399a: SWAP1
[codex:432789] 0000399b: DUP2
[codex:432789] 0000399c: MSTORE
[codex:432789] 0000399d: PUSH1 0x20
[codex:432789] 0000399f: ADD
[codex:432789] 000039a0: PUSH1 0x00
[codex:432789] 000039a2: KECCAK256
[codex:432789] 000039a3: PUSH1 0x00
[codex:432789] 000039a5: DUP3
[codex:432789] 000039a6: DUP3
[codex:432789] 000039a7: SLOAD
[codex:432789] 000039a8: ADD
[codex:432789] 000039a9: SWAP3
[codex:432789] 000039aa: POP
[codex:432789] 000039ab: POP
[codex:432789] 000039ac: DUP2
[codex:432789] 000039ad: SWAP1
[codex:432789] 000039ae: SSTORE
[codex:432789] 000039af: POP
[codex:432789] 000039b0: DUP3
[codex:432789]
[codex:432789] thinking
[codex:432789] **Analyzing internal transfer and custom functions**
[codex:432789]
[codex:432789] I'm examining the transfer function's logic for safe math and fee calculation, noting it seems secure and standard. Now I'm shifting focus to other functions, especially one handling multiple addresses for transfers, to check if any lack access controls that could open exploit paths. I'm mapping function selectors to jump targets to investigate potential vulnerabilities like unauthorized airdrops or ownership changes.
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "000012b3" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 15ms:
[codex:432789] 3010:000012b3: JUMPDEST
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '2990,3075p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 0000129c: JUMP
[codex:432789] 0000129d: JUMPDEST
[codex:432789] 0000129e: PUSH1 0x40
[codex:432789] 000012a0: MLOAD
[codex:432789] 000012a1: DUP1
[codex:432789] 000012a2: DUP3
[codex:432789] 000012a3: DUP2
[codex:432789] 000012a4: MSTORE
[codex:432789] 000012a5: PUSH1 0x20
[codex:432789] 000012a7: ADD
[codex:432789] 000012a8: SWAP2
[codex:432789] 000012a9: POP
[codex:432789] 000012aa: POP
[codex:432789] 000012ab: PUSH1 0x40
[codex:432789] 000012ad: MLOAD
[codex:432789] 000012ae: DUP1
[codex:432789] 000012af: SWAP2
[codex:432789] 000012b0: SUB
[codex:432789] 000012b1: SWAP1
[codex:432789] 000012b2: RETURN
[codex:432789]
[codex:432789] thinking
[codex:432789] **Analyzing multi-address token distribution function**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "000015cd" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 25ms:
[codex:432789] 3272:000015cd: JUMPDEST
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '3245,3295p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 17ms:
[codex:432789] 00001581: JUMPDEST
[codex:432789] 00001582: JUMPDEST
[codex:432789] 00001583: PUSH1 0x00
[codex:432789] 00001585: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 0000159a: AND
[codex:432789] 0000159b: DUP6
[codex:432789] 0000159c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 000015b1: AND
[codex:432789] 000015b2: EQ
[codex:432789] 000015b3: ISZERO
[codex:432789] 000015b4: ISZERO
[codex:432789] 000015b5: PUSH2 0x15c4
[codex:432789] 000015b8: JUMPI
[codex:432789] 000015b9: PUSH2 0x15c3
[codex:432789] 000015bc: ADDRESS
[codex:432789] 000015bd: DUP7
[codex:432789] 000015be: DUP4
[codex:432789] 000015bf: PUSH2 0x370e
[codex:432789] 000015c2: JUMP
[codex:432789] 000015c3: JUMPDEST
[codex:432789]
[codex:432789]
[codex:432789] thinking
[codex:432789] **Analyzing token airdrop logic and access control risks**
[codex:432789]
[codex:432789] I'm unpacking a complex function that distributes tokens from the contract to multiple addresses, likely an `airdrop(address[10], uint256)` without any caller checks. It seems anyone can trigger token transfers from the contract's balance if a particular storage slot (possibly controlling distribution amount) is set, exposing a potential vulnerability where tokens might be drained by arbitrary callers. I’m carefully interpreting EVM bytecode control flow, stack operations, and address checks to confirm if there’s any effective access control or safeguards preventing misuse.
[codex:432789] thinking
[codex:432789] **Confirming transfer conditions and storage usage**
[codex:432789]
[codex:432789] I'm verifying that as long as recipient addresses are non-zero, transfers proceed without further restrictions. The function uses storage slot 0x17 to load some value—likely related to token amounts—and an amount argument from the call; I'll continue analyzing subsequent instructions to understand how exactly these values control the transfer amounts.
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '3075,3165p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 7ms:
[codex:432789] 00001330: POP
[codex:432789] 00001331: PUSH1 0x00
[codex:432789] 00001333: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 00001348: AND
[codex:432789] 00001349: DUP15
[codex:432789] 0000134a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 0000135f: AND
[codex:432789] 00001360: EQ
[codex:432789] 00001361: ISZERO
[codex:432789] 00001362: ISZERO
[codex:432789] 00001363: PUSH2 0x1372
[codex:432789] 00001366: JUMPI
[codex:432789] 00001367: PUSH2 0x1371
[codex:432789] 0000136a: ADDRESS
[codex:432789] 0000136b: DUP16
[codex:432789] 0000136c: DUP4
[codex:432789] 0000136d: PUSH2 0x370e
[codex:432789] 00001370: JUMP
[codex:432789] 00001371: JUMPDEST
[codex:432789] 00001372: JUMPDEST
[codex:432789]
[codex:432789] thinking
[codex:432789] **Analyzing batch transfer vulnerability**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "PUSH1 0x17" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 9ms:
[codex:432789] 3015:000012ba: PUSH1 0x17
[codex:432789] 3030:000012cf: PUSH1 0x17
[codex:432789] 3267:000015c7: PUSH1 0x17
[codex:432789] 3729:00001930: PUSH1 0x17
[codex:432789] 4668:0000214f: PUSH1 0x17
[codex:432789] 5157:0000252e: PUSH1 0x17
[codex:432789] 6375:00002e88: PUSH1 0x17
[codex:432789]
[codex:432789] thinking
[codex:432789] **Investigating writes to slot17**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '3705,3765p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 000018ed: SWAP2
[codex:432789] 000018ee: PUSH2 0x0100
[codex:432789] 000018f1: EXP
[codex:432789] 000018f2: DUP2
[codex:432789] 000018f3: SLOAD
[codex:432789] 000018f4: DUP2
[codex:432789] 000018f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 0000190a: MUL
[codex:432789] 0000190b: NOT
[codex:432789] 0000190c: AND
[codex:432789] 0000190d: SWAP1
[codex:432789] 0000190e: DUP4
[codex:432789] 0000190f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 00001924: AND
[codex:432789] 00001925: MUL
[codex:432789] 00001926: OR
[codex:432789] 00001927: SWAP1
[codex:432789] 00001928: SSTORE
[codex:432789] 00001929: POP
[codex:432789] 0000192a: POP
[codex:432789]
[codex:432789] thinking
[codex:432789] **Analyzing jump destination for storage access**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '4610,4695p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 7ms:
[codex:432789] 000020db: DUP3
[codex:432789] 000020dc: DUP3
[codex:432789] 000020dd: SLOAD
[codex:432789] 000020de: SUB
[codex:432789] 000020df: SWAP3
[codex:432789] 000020e0: POP
[codex:432789] 000020e1: POP
[codex:432789] 000020e2: DUP2
[codex:432789] 000020e3: SWAP1
[codex:432789] 000020e4: SSTORE
[codex:432789] 000020e5: POP
[codex:432789] 000020e6: DUP2
[codex:432789] 000020e7: PUSH1 0x04
[codex:432789] 000020e9: PUSH1 0x00
[codex:432789] 000020eb: DUP3
[codex:432789] 000020ec: DUP3
[codex:432789] 000020ed: SLOAD
[codex:432789] 000020ee: SUB
[codex:432789] 000020ef: SWAP3
[codex:432789] 000020f0: POP
[codex:432789]
[codex:432789] thinking
[codex:432789] **Inspecting jump destinations and storage usage**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '5125,5195p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 18ms:
[codex:432789] 00002502: ISZERO
[codex:432789] 00002503: PUSH2 0x250b
[codex:432789] 00002506: JUMPI
[codex:432789] 00002507: PUSH2 0x263c
[codex:432789] 0000250a: JUMP
[codex:432789] 0000250b: JUMPDEST
[codex:432789] 0000250c: PUSH1 0x64
[codex:432789] 0000250e: PUSH1 0x5f
[codex:432789] 00002510: DUP6
[codex:432789] 00002511: MUL
[codex:432789] 00002512: DUP2
[codex:432789] 00002513: ISZERO
[codex:432789] 00002514: ISZERO
[codex:432789] 00002515: PUSH2 0x251a
[codex:432789] 00002518: JUMPI
[codex:432789] 00002519: INVALID
[codex:432789] 0000251a: JUMPDEST
[codex:432789] 0000251b: DIV
[codex:432789] 0000251c: SWAP1
[codex:432789] 0000251d: POP
[codex:432789]
[codex:432789]
[codex:432789] thinking
[codex:432789] **Analyzing batch token drain vulnerability**
[codex:432789]
[codex:432789] I’m piecing together how the contract accumulates fees in slot17 and exposes a public batch transfer function (selector 0x010791b0) that lets anyone sweep those fee tokens from the contract to arbitrary addresses without access control. The function checks slot17 > 0 and contract balance but doesn't restrict callers, enabling token draining when fees exist. I'll reference key opcode offsets to explain the exploit steps and contract state changes.
[codex:432789] thinking
[codex:432789] **Verifying parameter handling and transfer logic**
[codex:432789]
[codex:432789] I’m confirming that the batch transfer function passes the contract address as sender and user-supplied addresses as recipients, with the amount argument checked only to ensure it’s nonzero and no greater than the contract balance. Multiple recipients can be zero-address (skipped), allowing a single recipient drain. Internal transfers revert if funds insufficient for each transfer, so total drain per call is capped by contract balance, enabling full withdrawal by a caller without restrictions.
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "00001367|0000136a|0000136d|00001370" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 7ms:
[codex:432789] 3087:00001367: PUSH2 0x1371
[codex:432789] 3088:0000136a: ADDRESS
[codex:432789] 3091:0000136d: PUSH2 0x370e
[codex:432789] 3092:00001370: JUMP
[codex:432789]
[codex:432789] thinking
[codex:432789] **Tracking relevant code lines**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "000015c7" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 7ms:
[codex:432789] 3267:000015c7: PUSH1 0x17
[codex:432789]
[codex:432789] thinking
[codex:432789] **Summarizing exploit scenario and evidence**
[codex:432789]
[codex:432789] I’m putting together a detailed exploit scenario showing how a public batch-transfer function in the contract allows draining tokens without caller authorization, supported by opcode offsets and behavior around slot17 and internal transfers. I’m carefully crafting the JSON output to include summary, severity, evidence with opcode references, and exploit steps to comply with reporting guidelines.
[codex:432789] codex
[codex:432789] {"no_findings":false,"summary":"Found a public batch-transfer entrypoint that moves tokens from the contract’s own balance to caller-specified recipients without any caller authorization, enabling a direct drain of contract-held tokens once fees/accumulations exist.","findings":[{"severity":"high","category":"access_control","title":"Unrestricted batch transfer drains contract-held tokens","exploit_scenario":"1) Wait until the contract holds a token balance (e.g., fees accumulate; slot 0x17 becomes non-zero from normal transfers). 2) Call selector 0x010791b0 with 10 address parameters where only one is the attacker address (others zero to skip) and set the final uint256 amount to <= balanceOf(address(this)) and >0. 3) The function executes internal transfers from ADDRESS (the contract) to the provided recipients (offsets 0x1367–0x1370), so the attacker receives tokens directly from the contract’s own balance.","recommendation":"Add strict access control (e.g., onlyOwner) to selector 0x010791b0 or hardcode/validate recipients; if intended for internal distribution only, remove the external selector or require a trusted caller and fixed recipient list.","evidence":"Selector 0x010791b0 dispatches to 0x12b3 (arg parsing at 0x0298 → JUMP 0x12b3). At 0x12b3–0x12ce the only gates are slot0x17 > 0 and amount > 0; there is no CALLER/ORIGIN check. Transfers are executed from the contract itself via `ADDRESS` and a user-supplied recipient and amount (`0000136a: ADDRESS`, `0000136d: PUSH2 0x370e`, `00001370: JUMP`), repeatedly for each provided address. Internal transfer logic at 0x370e updates balances. slot0x17 is incremented during normal transfers at 0x252e, making the gate reachable.","locations":["`BYTECODE_BUNDLE.txt:3010`","`BYTECODE_BUNDLE.txt:3087`","`BYTECODE_BUNDLE.txt:3092`","`BYTECODE_BUNDLE.txt:5157`","`BYTECODE_BUNDLE.txt:7282`"]}]}
[codex:432789] tokens used
[codex:432789] 85,989
[codex:432789] {"no_findings":false,"summary":"Found a public batch-transfer entrypoint that moves tokens from the contract’s own balance to caller-specified recipients without any caller authorization, enabling a direct drain of contract-held tokens once fees/accumulations exist.","findings":[{"severity":"high","category":"access_control","title":"Unrestricted batch transfer drains contract-held tokens","exploit_scenario":"1) Wait until the contract holds a token balance (e.g., fees accumulate; slot 0x17 becomes non-zero from normal transfers). 2) Call selector 0x010791b0 with 10 address parameters where only one is the attacker address (others zero to skip) and set the final uint256 amount to <= balanceOf(address(this)) and >0. 3) The function executes internal transfers from ADDRESS (the contract) to the provided recipients (offsets 0x1367–0x1370), so the attacker receives tokens directly from the contract’s own balance.","recommendation":"Add strict access control (e.g., onlyOwner) to selector 0x010791b0 or hardcode/validate recipients; if intended for internal distribution only, remove the external selector or require a trusted caller and fixed recipient list.","evidence":"Selector 0x010791b0 dispatches to 0x12b3 (arg parsing at 0x0298 → JUMP 0x12b3). At 0x12b3–0x12ce the only gates are slot0x17 > 0 and amount > 0; there is no CALLER/ORIGIN check. Transfers are executed from the contract itself via `ADDRESS` and a user-supplied recipient and amount (`0000136a: ADDRESS`, `0000136d: PUSH2 0x370e`, `00001370: JUMP`), repeatedly for each provided address. Internal transfer logic at 0x370e updates balances. slot0x17 is incremented during normal transfers at 0x252e, making the gate reachable.","locations":["`BYTECODE_BUNDLE.txt:3010`","`BYTECODE_BUNDLE.txt:3087`","`BYTECODE_BUNDLE.txt:3092`","`BYTECODE_BUNDLE.txt:5157`","`BYTECODE_BUNDLE.txt:7282`"]}]}
{
"codex": {
"ran_at": "2026-01-09T20:16:00.687936+00:00",
"timed_out": false,
"returncode": 0
},
"summary": "Found a public batch-transfer entrypoint that moves tokens from the contract\u2019s own balance to caller-specified recipients without any caller authorization, enabling a direct drain of contract-held tokens once fees/accumulations exist.",
"raw_final": {
"summary": "Found a public batch-transfer entrypoint that moves tokens from the contract\u2019s own balance to caller-specified recipients without any caller authorization, enabling a direct drain of contract-held tokens once fees/accumulations exist.",
"findings": [
{
"title": "Unrestricted batch transfer drains contract-held tokens",
"category": "access_control",
"evidence": "Selector 0x010791b0 dispatches to 0x12b3 (arg parsing at 0x0298 \u2192 JUMP 0x12b3). At 0x12b3\u20130x12ce the only gates are slot0x17 > 0 and amount > 0; there is no CALLER/ORIGIN check. Transfers are executed from the contract itself via `ADDRESS` and a user-supplied recipient and amount (`0000136a: ADDRESS`, `0000136d: PUSH2 0x370e`, `00001370: JUMP`), repeatedly for each provided address. Internal transfer logic at 0x370e updates balances. slot0x17 is incremented during normal transfers at 0x252e, making the gate reachable.",
"severity": "high",
"locations": [
"`BYTECODE_BUNDLE.txt:3010`",
"`BYTECODE_BUNDLE.txt:3087`",
"`BYTECODE_BUNDLE.txt:3092`",
"`BYTECODE_BUNDLE.txt:5157`",
"`BYTECODE_BUNDLE.txt:7282`"
],
"recommendation": "Add strict access control (e.g., onlyOwner) to selector 0x010791b0 or hardcode/validate recipients; if intended for internal distribution only, remove the external selector or require a trusted caller and fixed recipient list.",
"exploit_scenario": "1) Wait until the contract holds a token balance (e.g., fees accumulate; slot 0x17 becomes non-zero from normal transfers). 2) Call selector 0x010791b0 with 10 address parameters where only one is the attacker address (others zero to skip) and set the final uint256 amount to <= balanceOf(address(this)) and >0. 3) The function executes internal transfers from ADDRESS (the contract) to the provided recipients (offsets 0x1367\u20130x1370), so the attacker receives tokens directly from the contract\u2019s own balance."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1,
"timeout_fallback": false
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0293 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002e: SWAP1 0000002f: DIV 00000030: PUSH4 0xffffffff 00000035: AND 00000036: DUP1 00000037: PUSH4 0x010791b0 0000003c: EQ 0000003d: PUSH2 0x0298 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0x049bf071 00000047: EQ 00000048: PUSH2 0x0405 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0x06fdde03 00000052: EQ 00000053: PUSH2 0x0430 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0x087d01df 0000005d: EQ 0000005e: PUSH2 0x04c0 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0x095ea7b3 00000068: EQ 00000069: PUSH2 0x04eb 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0x0ac3887c 00000073: EQ 00000074: PUSH2 0x0550 00000077: JUMPI 00000078: DUP1 00000079: PUSH4 0x153548e2 0000007e: EQ 0000007f: PUSH2 0x057b 00000082: JUMPI 00000083: DUP1 00000084: PUSH4 0x18160ddd 00000089: EQ 0000008a: PUSH2 0x05a6 0000008d: JUMPI 0000008e: DUP1 0000008f: PUSH4 0x23392c7a 00000094: EQ 00000095: PUSH2 0x05d1 00000098: JUMPI 00000099: DUP1 0000009a: PUSH4 0x23b872dd 0000009f: EQ 000000a0: PUSH2 0x063e 000000a3: JUMPI 000000a4: DUP1 000000a5: PUSH4 0x28547ead 000000aa: EQ 000000ab: PUSH2 0x06c3 000000ae: JUMPI 000000af: DUP1 000000b0: PUSH4 0x313ce567 000000b5: EQ 000000b6: PUSH2 0x06ee 000000b9: JUMPI 000000ba: DUP1 000000bb: PUSH4 0x330c91cc 000000c0: EQ 000000c1: PUSH2 0x071f 000000c4: JUMPI 000000c5: DUP1 000000c6: PUSH4 0x361531c3 000000cb: EQ 000000cc: PUSH2 0x0762 000000cf: JUMPI 000000d0: DUP1 000000d1: PUSH4 0x39fae0c1 000000d6: EQ 000000d7: PUSH2 0x078d 000000da: JUMPI 000000db: DUP1 000000dc: PUSH4 0x42966c68 000000e1: EQ 000000e2: PUSH2 0x07b8 000000e5: JUMPI 000000e6: DUP1 000000e7: PUSH4 0x488f38db 000000ec: EQ 000000ed: PUSH2 0x07fd 000000f0: JUMPI 000000f1: DUP1 000000f2: PUSH4 0x6322c950 000000f7: EQ 000000f8: PUSH2 0x0828 000000fb: JUMPI 000000fc: DUP1 000000fd: PUSH4 0x679aefce 00000102: EQ 00000103: PUSH2 0x0853 00000106: JUMPI 00000107: DUP1 00000108: PUSH4 0x6a953e09 0000010d: EQ 0000010e: PUSH2 0x087e 00000111: JUMPI 00000112: DUP1 00000113: PUSH4 0x70a08231 00000118: EQ 00000119: PUSH2 0x08c1 0000011c: JUMPI 0000011d: DUP1 0000011e: PUSH4 0x749ba8b4 00000123: EQ 00000124: PUSH2 0x0918 00000127: JUMPI 00000128: DUP1 00000129: PUSH4 0x75418b9d 0000012e: EQ 0000012f: PUSH2 0x092f 00000132: JUMPI 00000133: DUP1 00000134: PUSH4 0x77b31803 00000139: EQ 0000013a: PUSH2 0x0973 0000013d: JUMPI 0000013e: DUP1 0000013f: PUSH4 0x79c65068 00000144: EQ 00000145: PUSH2 0x099e 00000148: JUMPI 00000149: DUP1 0000014a: PUSH4 0x79cc6790 0000014f: EQ 00000150: PUSH2 0x09eb 00000153: JUMPI 00000154: DUP1 00000155: PUSH4 0x828df79b 0000015a: EQ 0000015b: PUSH2 0x0a50 0000015e: JUMPI 0000015f: DUP1 00000160: PUSH4 0x83835543 00000165: EQ 00000166: PUSH2 0x0a7b 00000169: JUMPI 0000016a: DUP1 0000016b: PUSH4 0x8b2b3d8b 00000170: EQ 00000171: PUSH2 0x0ad6 00000174: JUMPI 00000175: DUP1 00000176: PUSH4 0x8da5cb5b 0000017b: EQ 0000017c: PUSH2 0x0b01 0000017f: JUMPI 00000180: DUP1 00000181: PUSH4 0x90b08a52 00000186: EQ 00000187: PUSH2 0x0b58 0000018a: JUMPI 0000018b: DUP1 0000018c: PUSH4 0x923cce5e 00000191: EQ 00000192: PUSH2 0x0b83 00000195: JUMPI 00000196: DUP1 00000197: PUSH4 0x94ede563 0000019c: EQ 0000019d: PUSH2 0x0bb0 000001a0: JUMPI 000001a1: DUP1 000001a2: PUSH4 0x95d89b41 000001a7: EQ 000001a8: PUSH2 0x0bdb 000001ab: JUMPI 000001ac: DUP1 000001ad: PUSH4 0x9980ec86 000001b2: EQ 000001b3: PUSH2 0x0c6b 000001b6: JUMPI 000001b7: DUP1 000001b8: PUSH4 0xa6f2ae3a 000001bd: EQ 000001be: PUSH2 0x0cac 000001c1: JUMPI 000001c2: DUP1 000001c3: PUSH4 0xa7ed901c 000001c8: EQ 000001c9: PUSH2 0x0cb6 000001cc: JUMPI 000001cd: DUP1 000001ce: PUSH4 0xa9059cbb 000001d3: EQ 000001d4: PUSH2 0x0ce3 000001d7: JUMPI 000001d8: DUP1 000001d9: PUSH4 0xab2d97d7 000001de: EQ 000001df: PUSH2 0x0d30 000001e2: JUMPI 000001e3: DUP1 000001e4: PUSH4 0xb2f2d21b 000001e9: EQ 000001ea: PUSH2 0x0d5b 000001ed: JUMPI 000001ee: DUP1 000001ef: PUSH4 0xba93b0ec 000001f4: EQ 000001f5: PUSH2 0x0e31 000001f8: JUMPI 000001f9: DUP1 000001fa: PUSH4 0xc98166c0 000001ff: EQ 00000200: PUSH2 0x0e5c 00000203: JUMPI 00000204: DUP1 00000205: PUSH4 0xcae9ca51 0000020a: EQ 0000020b: PUSH2 0x0e87 0000020e: JUMPI 0000020f: DUP1 00000210: PUSH4 0xd5bbc3bb 00000215: EQ 00000216: PUSH2 0x0f32 00000219: JUMPI 0000021a: DUP1 0000021b: PUSH4 0xdb20cb3e 00000220: EQ 00000221: PUSH2 0x0f75 00000224: JUMPI 00000225: DUP1 00000226: PUSH4 0xdd62ed3e 0000022b: EQ 0000022c: PUSH2 0x0fe2 0000022f: JUMPI 00000230: DUP1 00000231: PUSH4 0xe132db41 00000236: EQ 00000237: PUSH2 0x1059 0000023a: JUMPI 0000023b: DUP1 0000023c: PUSH4 0xe296796e 00000241: EQ 00000242: PUSH2 0x1070 00000245: JUMPI 00000246: DUP1 00000247: PUSH4 0xeda456ba 0000024c: EQ 0000024d: PUSH2 0x1087 00000250: JUMPI 00000251: DUP1 00000252: PUSH4 0xee5c4567 00000257: EQ 00000258: PUSH2 0x10ce 0000025b: JUMPI 0000025c: DUP1 0000025d: PUSH4 0xf2801fe7 00000262: EQ 00000263: PUSH2 0x10f9 00000266: JUMPI 00000267: DUP1 00000268: PUSH4 0xf2fde38b 0000026d: EQ 0000026e: PUSH2 0x11ef 00000271: JUMPI 00000272: DUP1 00000273: PUSH4 0xf7227831 00000278: EQ 00000279: PUSH2 0x1232 0000027c: JUMPI 0000027d: DUP1 0000027e: PUSH4 0xf843d7fd 00000283: EQ 00000284: PUSH2 0x125d 00000287: JUMPI 00000288: DUP1 00000289: PUSH4 0xfdef933b 0000028e: EQ 0000028f: PUSH2 0x1288 00000292: JUMPI 00000293: JUMPDEST 00000294: PUSH1 0x00 00000296: DUP1 00000297: REVERT 00000298: JUMPDEST 00000299: CALLVALUE 0000029a: DUP1 0000029b: ISZERO 0000029c: PUSH2 0x02a4 0000029f: JUMPI 000002a0: PUSH1 0x00 000002a2: DUP1 000002a3: REVERT 000002a4: JUMPDEST 000002a5: POP 000002a6: PUSH2 0x0403 000002a9: PUSH1 0x04 000002ab: DUP1 000002ac: CALLDATASIZE 000002ad: SUB 000002ae: DUP2 000002af: ADD 000002b0: SWAP1 000002b1: DUP1 000002b2: DUP1 000002b3: CALLDATALOAD 000002b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002c9: AND 000002ca: SWAP1 000002cb: PUSH1 0x20 000002cd: ADD 000002ce: SWAP1 000002cf: SWAP3 000002d0: SWAP2 000002d1: SWAP1 000002d2: DUP1 000002d3: CALLDATALOAD 000002d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002e9: AND 000002ea: SWAP1 000002eb: PUSH1 0x20 000002ed: ADD 000002ee: SWAP1 000002ef: SWAP3 000002f0: SWAP2 000002f1: SWAP1 000002f2: DUP1 000002f3: CALLDATALOAD 000002f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000309: AND 0000030a: SWAP1 0000030b: PUSH1 0x20 0000030d: ADD 0000030e: SWAP1 0000030f: SWAP3 00000310: SWAP2 00000311: SWAP1 00000312: DUP1 00000313: CALLDATALOAD 00000314: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000329: AND 0000032a: SWAP1 0000032b: PUSH1 0x20 0000032d: ADD 0000032e: SWAP1 0000032f: SWAP3 00000330: SWAP2 00000331: SWAP1 00000332: DUP1 00000333: CALLDATALOAD 00000334: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000349: AND 0000034a: SWAP1 0000034b: PUSH1 0x20 0000034d: ADD 0000034e: SWAP1 0000034f: SWAP3 00000350: SWAP2 00000351: SWAP1 00000352: DUP1 00000353: CALLDATALOAD 00000354: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000369: AND 0000036a: SWAP1 0000036b: PUSH1 0x20 0000036d: ADD 0000036e: SWAP1 0000036f: SWAP3 00000370: SWAP2 00000371: SWAP1 00000372: DUP1 00000373: CALLDATALOAD 00000374: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000389: AND 0000038a: SWAP1 0000038b: PUSH1 0x20 0000038d: ADD 0000038e: SWAP1 0000038f: SWAP3 00000390: SWAP2 00000391: SWAP1 00000392: DUP1 00000393: CALLDATALOAD 00000394: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003a9: AND 000003aa: SWAP1 000003ab: PUSH1 0x20 000003ad: ADD 000003ae: SWAP1 000003af: SWAP3 000003b0: SWAP2 000003b1: SWAP1 000003b2: DUP1 000003b3: CALLDATALOAD 000003b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003c9: AND 000003ca: SWAP1 000003cb: PUSH1 0x20 000003cd: ADD 000003ce: SWAP1 000003cf: SWAP3 000003d0: SWAP2 000003d1: SWAP1 000003d2: DUP1 000003d3: CALLDATALOAD 000003d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003e9: AND 000003ea: SWAP1 000003eb: PUSH1 0x20 000003ed: ADD 000003ee: SWAP1 000003ef: SWAP3 000003f0: SWAP2 000003f1: SWAP1 000003f2: DUP1 000003f3: CALLDATALOAD 000003f4: SWAP1 000003f5: PUSH1 0x20 000003f7: ADD 000003f8: SWAP1 000003f9: SWAP3 000003fa: SWAP2 000003fb: SWAP1 000003fc: POP 000003fd: POP 000003fe: POP 000003ff: PUSH2 0x12b3 00000402: JUMP 00000403: JUMPDEST 00000404: STOP 00000405: JUMPDEST 00000406: CALLVALUE 00000407: DUP1 00000408: ISZERO 00000409: PUSH2 0x0411 0000040c: JUMPI 0000040d: PUSH1 0x00 0000040f: DUP1 00000410: REVERT 00000411: JUMPDEST 00000412: POP 00000413: PUSH2 0x041a 00000416: PUSH2 0x15de 00000419: JUMP 0000041a: JUMPDEST 0000041b: PUSH1 0x40 0000041d: MLOAD 0000041e: DUP1 0000041f: DUP3 00000420: DUP2 00000421: MSTORE 00000422: PUSH1 0x20 00000424: ADD 00000425: SWAP2 00000426: POP 00000427: POP 00000428: PUSH1 0x40 0000042a: MLOAD 0000042b: DUP1 0000042c: SWAP2 0000042d: SUB 0000042e: SWAP1 0000042f: RETURN 00000430: JUMPDEST 00000431: CALLVALUE 00000432: DUP1 00000433: ISZERO 00000434: PUSH2 0x043c 00000437: JUMPI 00000438: PUSH1 0x00 0000043a: DUP1 0000043b: REVERT 0000043c: JUMPDEST 0000043d: POP 0000043e: PUSH2 0x0445 00000441: PUSH2 0x15e4 00000444: JUMP 00000445: JUMPDEST 00000446: PUSH1 0x40 00000448: MLOAD 00000449: DUP1 0000044a: DUP1 0000044b: PUSH1 0x20 0000044d: ADD 0000044e: DUP3 0000044f: DUP2 00000450: SUB 00000451: DUP3 00000452: MSTORE 00000453: DUP4 00000454: DUP2 00000455: DUP2 00000456: MLOAD 00000457: DUP2 00000458: MSTORE 00000459: PUSH1 0x20 0000045b: ADD 0000045c: SWAP2 0000045d: POP 0000045e: DUP1 0000045f: MLOAD 00000460: SWAP1 00000461: PUSH1 0x20 00000463: ADD 00000464: SWAP1 00000465: DUP1 00000466: DUP4 00000467: DUP4 00000468: PUSH1 0x00 0000046a: JUMPDEST 0000046b: DUP4 0000046c: DUP2 0000046d: LT 0000046e: ISZERO 0000046f: PUSH2 0x0485 00000472: JUMPI 00000473: DUP1 00000474: DUP3 00000475: ADD 00000476: MLOAD 00000477: DUP2 00000478: DUP5 00000479: ADD 0000047a: MSTORE 0000047b: PUSH1 0x20 0000047d: DUP2 0000047e: ADD 0000047f: SWAP1 00000480: POP 00000481: PUSH2 0x046a 00000484: JUMP 00000485: JUMPDEST 00000486: POP 00000487: POP 00000488: POP 00000489: POP 0000048a: SWAP1 0000048b: POP 0000048c: SWAP1 0000048d: DUP2 0000048e: ADD 0000048f: SWAP1 00000490: PUSH1 0x1f 00000492: AND 00000493: DUP1 00000494: ISZERO 00000495: PUSH2 0x04b2 00000498: JUMPI 00000499: DUP1 0000049a: DUP3 0000049b: SUB 0000049c: DUP1 0000049d: MLOAD 0000049e: PUSH1 0x01 000004a0: DUP4 000004a1: PUSH1 0x20 000004a3: SUB 000004a4: PUSH2 0x0100 000004a7: EXP 000004a8: SUB 000004a9: NOT 000004aa: AND 000004ab: DUP2 000004ac: MSTORE 000004ad: PUSH1 0x20 000004af: ADD 000004b0: SWAP2 000004b1: POP 000004b2: JUMPDEST 000004b3: POP 000004b4: SWAP3 000004b5: POP 000004b6: POP 000004b7: POP 000004b8: PUSH1 0x40 000004ba: MLOAD 000004bb: DUP1 000004bc: SWAP2 000004bd: SUB 000004be: SWAP1 000004bf: RETURN 000004c0: JUMPDEST 000004c1: CALLVALUE 000004c2: DUP1 000004c3: ISZERO 000004c4: PUSH2 0x04cc 000004c7: JUMPI 000004c8: PUSH1 0x00 000004ca: DUP1 000004cb: REVERT 000004cc: JUMPDEST 000004cd: POP 000004ce: PUSH2 0x04d5 000004d1: PUSH2 0x1682 000004d4: JUMP 000004d5: JUMPDEST 000004d6: PUSH1 0x40 000004d8: MLOAD 000004d9: DUP1 000004da: DUP3 000004db: DUP2 000004dc: MSTORE 000004dd: PUSH1 0x20 000004df: ADD 000004e0: SWAP2 000004e1: POP 000004e2: POP 000004e3: PUSH1 0x40 000004e5: MLOAD 000004e6: DUP1 000004e7: SWAP2 000004e8: SUB 000004e9: SWAP1 000004ea: RETURN 000004eb: JUMPDEST 000004ec: CALLVALUE 000004ed: DUP1 000004ee: ISZERO 000004ef: PUSH2 0x04f7 000004f2: JUMPI 000004f3: PUSH1 0x00 000004f5: DUP1 000004f6: REVERT 000004f7: JUMPDEST 000004f8: POP 000004f9: PUSH2 0x0536 000004fc: PUSH1 0x04 000004fe: DUP1 000004ff: CALLDATASIZE 00000500: SUB 00000501: DUP2 00000502: ADD 00000503: SWAP1 00000504: DUP1 00000505: DUP1 00000506: CALLDATALOAD 00000507: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000051c: AND 0000051d: SWAP1 0000051e: PUSH1 0x20 00000520: ADD 00000521: SWAP1 00000522: SWAP3 00000523: SWAP2 00000524: SWAP1 00000525: DUP1 00000526: CALLDATALOAD 00000527: SWAP1 00000528: PUSH1 0x20 0000052a: ADD 0000052b: SWAP1 0000052c: SWAP3 0000052d: SWAP2 0000052e: SWAP1 0000052f: POP 00000530: POP 00000531: POP 00000532: PUSH2 0x168c 00000535: JUMP 00000536: JUMPDEST 00000537: PUSH1 0x40 00000539: MLOAD 0000053a: DUP1 0000053b: DUP3 0000053c: ISZERO 0000053d: ISZERO 0000053e: ISZERO 0000053f: ISZERO 00000540: DUP2 00000541: MSTORE 00000542: PUSH1 0x20 00000544: ADD 00000545: SWAP2 00000546: POP 00000547: POP 00000548: PUSH1 0x40 0000054a: MLOAD 0000054b: DUP1 0000054c: SWAP2 0000054d: SUB 0000054e: SWAP1 0000054f: RETURN 00000550: JUMPDEST 00000551: CALLVALUE 00000552: DUP1 00000553: ISZERO 00000554: PUSH2 0x055c 00000557: JUMPI 00000558: PUSH1 0x00 0000055a: DUP1 0000055b: REVERT 0000055c: JUMPDEST 0000055d: POP 0000055e: PUSH2 0x0565 00000561: PUSH2 0x1719 00000564: JUMP 00000565: JUMPDEST 00000566: PUSH1 0x40 00000568: MLOAD 00000569: DUP1 0000056a: DUP3 0000056b: DUP2 0000056c: MSTORE 0000056d: PUSH1 0x20 0000056f: ADD 00000570: SWAP2 00000571: POP 00000572: POP 00000573: PUSH1 0x40 00000575: MLOAD 00000576: DUP1 00000577: SWAP2 00000578: SUB 00000579: SWAP1 0000057a: RETURN 0000057b: JUMPDEST 0000057c: CALLVALUE 0000057d: DUP1 0000057e: ISZERO 0000057f: PUSH2 0x0587 00000582: JUMPI 00000583: PUSH1 0x00 00000585: DUP1 00000586: REVERT 00000587: JUMPDEST 00000588: POP 00000589: PUSH2 0x0590 0000058c: PUSH2 0x171f 0000058f: JUMP 00000590: JUMPDEST 00000591: PUSH1 0x40 00000593: MLOAD 00000594: DUP1 00000595: DUP3 00000596: DUP2 00000597: MSTORE 00000598: PUSH1 0x20 0000059a: ADD 0000059b: SWAP2 0000059c: POP 0000059d: POP 0000059e: PUSH1 0x40 000005a0: MLOAD 000005a1: DUP1 000005a2: SWAP2 000005a3: SUB 000005a4: SWAP1 000005a5: RETURN 000005a6: JUMPDEST 000005a7: CALLVALUE 000005a8: DUP1 000005a9: ISZERO 000005aa: PUSH2 0x05b2 000005ad: JUMPI 000005ae: PUSH1 0x00 000005b0: DUP1 000005b1: REVERT 000005b2: JUMPDEST 000005b3: POP 000005b4: PUSH2 0x05bb 000005b7: PUSH2 0x1725 000005ba: JUMP 000005bb: JUMPDEST 000005bc: PUSH1 0x40 000005be: MLOAD 000005bf: DUP1 000005c0: DUP3 000005c1: DUP2 000005c2: MSTORE 000005c3: PUSH1 0x20 000005c5: ADD 000005c6: SWAP2 000005c7: POP 000005c8: POP 000005c9: PUSH1 0x40 000005cb: MLOAD 000005cc: DUP1 000005cd: SWAP2 000005ce: SUB 000005cf: SWAP1 000005d0: RETURN 000005d1: JUMPDEST 000005d2: CALLVALUE 000005d3: DUP1 000005d4: ISZERO 000005d5: PUSH2 0x05dd 000005d8: JUMPI 000005d9: PUSH1 0x00 000005db: DUP1 000005dc: REVERT 000005dd: JUMPDEST 000005de: POP 000005df: PUSH2 0x05fc 000005e2: PUSH1 0x04 000005e4: DUP1 000005e5: CALLDATASIZE 000005e6: SUB 000005e7: DUP2 000005e8: ADD 000005e9: SWAP1 000005ea: DUP1 000005eb: DUP1 000005ec: CALLDATALOAD 000005ed: SWAP1 000005ee: PUSH1 0x20 000005f0: ADD 000005f1: SWAP1 000005f2: SWAP3 000005f3: SWAP2 000005f4: SWAP1 000005f5: POP 000005f6: POP 000005f7: POP 000005f8: PUSH2 0x172b 000005fb: JUMP 000005fc: JUMPDEST 000005fd: PUSH1 0x40 000005ff: MLOAD 00000600: DUP1 00000601: DUP3 00000602: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000617: AND 00000618: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000062d: AND 0000062e: DUP2 0000062f: MSTORE 00000630: PUSH1 0x20 00000632: ADD 00000633: SWAP2 00000634: POP 00000635: POP 00000636: PUSH1 0x40 00000638: MLOAD 00000639: DUP1 0000063a: SWAP2 0000063b: SUB 0000063c: SWAP1 0000063d: RETURN 0000063e: JUMPDEST 0000063f: CALLVALUE 00000640: DUP1 00000641: ISZERO 00000642: PUSH2 0x064a 00000645: JUMPI 00000646: PUSH1 0x00 00000648: DUP1 00000649: REVERT 0000064a: JUMPDEST 0000064b: POP 0000064c: PUSH2 0x06a9 0000064f: PUSH1 0x04 00000651: DUP1 00000652: CALLDATASIZE 00000653: SUB 00000654: DUP2 00000655: ADD 00000656: SWAP1 00000657: DUP1 00000658: DUP1 00000659: CALLDATALOAD 0000065a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000066f: AND 00000670: SWAP1 00000671: PUSH1 0x20 00000673: ADD 00000674: SWAP1 00000675: SWAP3 00000676: SWAP2 00000677: SWAP1 00000678: DUP1 00000679: CALLDATALOAD 0000067a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000068f: AND 00000690: SWAP1 00000691: PUSH1 0x20 00000693: ADD 00000694: SWAP1 00000695: SWAP3 00000696: SWAP2 00000697: SWAP1 00000698: DUP1 00000699: CALLDATALOAD 0000069a: SWAP1 0000069b: PUSH1 0x20 0000069d: ADD 0000069e: SWAP1 0000069f: SWAP3 000006a0: SWAP2 000006a1: SWAP1 000006a2: POP 000006a3: POP 000006a4: POP 000006a5: PUSH2 0x1769 000006a8: JUMP 000006a9: JUMPDEST 000006aa: PUSH1 0x40 000006ac: MLOAD 000006ad: DUP1 000006ae: DUP3 000006af: ISZERO 000006b0: ISZERO 000006b1: ISZERO 000006b2: ISZERO 000006b3: DUP2 000006b4: MSTORE 000006b5: PUSH1 0x20 000006b7: ADD 000006b8: SWAP2 000006b9: POP 000006ba: POP 000006bb: PUSH1 0x40 000006bd: MLOAD 000006be: DUP1 000006bf: SWAP2 000006c0: SUB 000006c1: SWAP1 000006c2: RETURN 000006c3: JUMPDEST 000006c4: CALLVALUE 000006c5: DUP1 000006c6: ISZERO 000006c7: PUSH2 0x06cf 000006ca: JUMPI 000006cb: PUSH1 0x00 000006cd: DUP1 000006ce: REVERT 000006cf: JUMPDEST 000006d0: POP 000006d1: PUSH2 0x06d8 000006d4: PUSH2 0x1899 000006d7: JUMP 000006d8: JUMPDEST 000006d9: PUSH1 0x40 000006db: MLOAD 000006dc: DUP1 000006dd: DUP3 000006de: DUP2 000006df: MSTORE 000006e0: PUSH1 0x20 000006e2: ADD 000006e3: SWAP2 000006e4: POP 000006e5: POP 000006e6: PUSH1 0x40 000006e8: MLOAD 000006e9: DUP1 000006ea: SWAP2 000006eb: SUB 000006ec: SWAP1 000006ed: RETURN 000006ee: JUMPDEST 000006ef: CALLVALUE 000006f0: DUP1 000006f1: ISZERO 000006f2: PUSH2 0x06fa 000006f5: JUMPI 000006f6: PUSH1 0x00 000006f8: DUP1 000006f9: REVERT 000006fa: JUMPDEST 000006fb: POP 000006fc: PUSH2 0x0703 000006ff: PUSH2 0x189f 00000702: JUMP 00000703: JUMPDEST 00000704: PUSH1 0x40 00000706: MLOAD 00000707: DUP1 00000708: DUP3 00000709: PUSH1 0xff 0000070b: AND 0000070c: PUSH1 0xff 0000070e: AND 0000070f: DUP2 00000710: MSTORE 00000711: PUSH1 0x20 00000713: ADD 00000714: SWAP2 00000715: POP 00000716: POP 00000717: PUSH1 0x40 00000719: MLOAD 0000071a: DUP1 0000071b: SWAP2 0000071c: SUB 0000071d: SWAP1 0000071e: RETURN 0000071f: JUMPDEST 00000720: CALLVALUE 00000721: DUP1 00000722: ISZERO 00000723: PUSH2 0x072b 00000726: JUMPI 00000727: PUSH1 0x00 00000729: DUP1 0000072a: REVERT 0000072b: JUMPDEST 0000072c: POP 0000072d: PUSH2 0x0760 00000730: PUSH1 0x04 00000732: DUP1 00000733: CALLDATASIZE 00000734: SUB 00000735: DUP2 00000736: ADD 00000737: SWAP1 00000738: DUP1 00000739: DUP1 0000073a: CALLDATALOAD 0000073b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000750: AND 00000751: SWAP1 00000752: PUSH1 0x20 00000754: ADD 00000755: SWAP1 00000756: SWAP3 00000757: SWAP2 00000758: SWAP1 00000759: POP 0000075a: POP 0000075b: POP 0000075c: PUSH2 0x18b2 0000075f: JUMP 00000760: JUMPDEST 00000761: STOP 00000762: JUMPDEST 00000763: CALLVALUE 00000764: DUP1 00000765: ISZERO 00000766: PUSH2 0x076e 00000769: JUMPI 0000076a: PUSH1 0x00 0000076c: DUP1 0000076d: REVERT 0000076e: JUMPDEST 0000076f: POP 00000770: PUSH2 0x0777 00000773: PUSH2 0x192d 00000776: JUMP 00000777: JUMPDEST 00000778: PUSH1 0x40 0000077a: MLOAD 0000077b: DUP1 0000077c: DUP3 0000077d: DUP2 0000077e: MSTORE 0000077f: PUSH1 0x20 00000781: ADD 00000782: SWAP2 00000783: POP 00000784: POP 00000785: PUSH1 0x40 00000787: MLOAD 00000788: DUP1 00000789: SWAP2 0000078a: SUB 0000078b: SWAP1 0000078c: RETURN 0000078d: JUMPDEST 0000078e: CALLVALUE 0000078f: DUP1 00000790: ISZERO 00000791: PUSH2 0x0799 00000794: JUMPI 00000795: PUSH1 0x00 00000797: DUP1 00000798: REVERT 00000799: JUMPDEST 0000079a: POP 0000079b: PUSH2 0x07a2 0000079e: PUSH2 0x1937 000007a1: JUMP 000007a2: JUMPDEST 000007a3: PUSH1 0x40 000007a5: MLOAD 000007a6: DUP1 000007a7: DUP3 000007a8: DUP2 000007a9: MSTORE 000007aa: PUSH1 0x20 000007ac: ADD 000007ad: SWAP2 000007ae: POP 000007af: POP 000007b0: PUSH1 0x40 000007b2: MLOAD 000007b3: DUP1 000007b4: SWAP2 000007b5: SUB 000007b6: SWAP1 000007b7: RETURN 000007b8: JUMPDEST 000007b9: CALLVALUE 000007ba: DUP1 000007bb: ISZERO 000007bc: PUSH2 0x07c4 000007bf: JUMPI 000007c0: PUSH1 0x00 000007c2: DUP1 000007c3: REVERT 000007c4: JUMPDEST 000007c5: POP 000007c6: PUSH2 0x07e3 000007c9: PUSH1 0x04 000007cb: DUP1 000007cc: CALLDATASIZE 000007cd: SUB 000007ce: DUP2 000007cf: ADD 000007d0: SWAP1 000007d1: DUP1 000007d2: DUP1 000007d3: CALLDATALOAD 000007d4: SWAP1 000007d5: PUSH1 0x20 000007d7: ADD 000007d8: SWAP1 000007d9: SWAP3 000007da: SWAP2 000007db: SWAP1 000007dc: POP 000007dd: POP 000007de: POP 000007df: PUSH2 0x1941 000007e2: JUMP 000007e3: JUMPDEST 000007e4: PUSH1 0x40 000007e6: MLOAD 000007e7: DUP1 000007e8: DUP3 000007e9: ISZERO 000007ea: ISZERO 000007eb: ISZERO 000007ec: ISZERO 000007ed: DUP2 000007ee: MSTORE 000007ef: PUSH1 0x20 000007f1: ADD 000007f2: SWAP2 000007f3: POP 000007f4: POP 000007f5: PUSH1 0x40 000007f7: MLOAD 000007f8: DUP1 000007f9: SWAP2 000007fa: SUB 000007fb: SWAP1 000007fc: RETURN 000007fd: JUMPDEST 000007fe: CALLVALUE 000007ff: DUP1 00000800: ISZERO 00000801: PUSH2 0x0809 00000804: JUMPI 00000805: PUSH1 0x00 00000807: DUP1 00000808: REVERT 00000809: JUMPDEST 0000080a: POP 0000080b: PUSH2 0x0812 0000080e: PUSH2 0x1a45 00000811: JUMP 00000812: JUMPDEST 00000813: PUSH1 0x40 00000815: MLOAD 00000816: DUP1 00000817: DUP3 00000818: DUP2 00000819: MSTORE 0000081a: PUSH1 0x20 0000081c: ADD 0000081d: SWAP2 0000081e: POP 0000081f: POP 00000820: PUSH1 0x40 00000822: MLOAD 00000823: DUP1 00000824: SWAP2 00000825: SUB 00000826: SWAP1 00000827: RETURN 00000828: JUMPDEST 00000829: CALLVALUE 0000082a: DUP1 0000082b: ISZERO 0000082c: PUSH2 0x0834 0000082f: JUMPI 00000830: PUSH1 0x00 00000832: DUP1 00000833: REVERT 00000834: JUMPDEST 00000835: POP 00000836: PUSH2 0x083d 00000839: PUSH2 0x1a4f 0000083c: JUMP 0000083d: JUMPDEST 0000083e: PUSH1 0x40 00000840: MLOAD 00000841: DUP1 00000842: DUP3 00000843: DUP2 00000844: MSTORE 00000845: PUSH1 0x20 00000847: ADD 00000848: SWAP2 00000849: POP 0000084a: POP 0000084b: PUSH1 0x40 0000084d: MLOAD 0000084e: DUP1 0000084f: SWAP2 00000850: SUB 00000851: SWAP1 00000852: RETURN 00000853: JUMPDEST 00000854: CALLVALUE 00000855: DUP1 00000856: ISZERO 00000857: PUSH2 0x085f 0000085a: JUMPI 0000085b: PUSH1 0x00 0000085d: DUP1 0000085e: REVERT 0000085f: JUMPDEST 00000860: POP 00000861: PUSH2 0x0868 00000864: PUSH2 0x1a59 00000867: JUMP 00000868: JUMPDEST 00000869: PUSH1 0x40 0000086b: MLOAD 0000086c: DUP1 0000086d: DUP3 0000086e: DUP2 0000086f: MSTORE 00000870: PUSH1 0x20 00000872: ADD 00000873: SWAP2 00000874: POP 00000875: POP 00000876: PUSH1 0x40 00000878: MLOAD 00000879: DUP1 0000087a: SWAP2 0000087b: SUB 0000087c: SWAP1 0000087d: RETURN 0000087e: JUMPDEST 0000087f: CALLVALUE 00000880: DUP1 00000881: ISZERO 00000882: PUSH2 0x088a 00000885: JUMPI 00000886: PUSH1 0x00 00000888: DUP1 00000889: REVERT 0000088a: JUMPDEST 0000088b: POP 0000088c: PUSH2 0x08bf 0000088f: PUSH1 0x04 00000891: DUP1 00000892: CALLDATASIZE 00000893: SUB 00000894: DUP2 00000895: ADD 00000896: SWAP1 00000897: DUP1 00000898: DUP1 00000899: CALLDATALOAD 0000089a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008af: AND 000008b0: SWAP1 000008b1: PUSH1 0x20 000008b3: ADD 000008b4: SWAP1 000008b5: SWAP3 000008b6: SWAP2 000008b7: SWAP1 000008b8: POP 000008b9: POP 000008ba: POP 000008bb: PUSH2 0x1a63 000008be: JUMP 000008bf: JUMPDEST 000008c0: STOP 000008c1: JUMPDEST 000008c2: CALLVALUE 000008c3: DUP1 000008c4: ISZERO 000008c5: PUSH2 0x08cd 000008c8: JUMPI 000008c9: PUSH1 0x00 000008cb: DUP1 000008cc: REVERT 000008cd: JUMPDEST 000008ce: POP 000008cf: PUSH2 0x0902 000008d2: PUSH1 0x04 000008d4: DUP1 000008d5: CALLDATASIZE 000008d6: SUB 000008d7: DUP2 000008d8: ADD 000008d9: SWAP1 000008da: DUP1 000008db: DUP1 000008dc: CALLDATALOAD 000008dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008f2: AND 000008f3: SWAP1 000008f4: PUSH1 0x20 000008f6: ADD 000008f7: SWAP1 000008f8: SWAP3 000008f9: SWAP2 000008fa: SWAP1 000008fb: POP 000008fc: POP 000008fd: POP 000008fe: PUSH2 0x1b12 00000901: JUMP 00000902: JUMPDEST 00000903: PUSH1 0x40 00000905: MLOAD 00000906: DUP1 00000907: DUP3 00000908: DUP2 00000909: MSTORE 0000090a: PUSH1 0x20 0000090c: ADD 0000090d: SWAP2 0000090e: POP 0000090f: POP 00000910: PUSH1 0x40 00000912: MLOAD 00000913: DUP1 00000914: SWAP2 00000915: SUB 00000916: SWAP1 00000917: RETURN 00000918: JUMPDEST 00000919: CALLVALUE 0000091a: DUP1 0000091b: ISZERO 0000091c: PUSH2 0x0924 0000091f: JUMPI 00000920: PUSH1 0x00 00000922: DUP1 00000923: REVERT 00000924: JUMPDEST 00000925: POP 00000926: PUSH2 0x092d 00000929: PUSH2 0x1b2a 0000092c: JUMP 0000092d: JUMPDEST 0000092e: STOP 0000092f: JUMPDEST 00000930: CALLVALUE 00000931: DUP1 00000932: ISZERO 00000933: PUSH2 0x093b 00000936: JUMPI 00000937: PUSH1 0x00 00000939: DUP1 0000093a: REVERT 0000093b: JUMPDEST 0000093c: POP 0000093d: PUSH2 0x0944 00000940: PUSH2 0x1dbe 00000943: JUMP 00000944: JUMPDEST 00000945: PUSH1 0x40 00000947: MLOAD 00000948: DUP1 00000949: DUP6 0000094a: DUP2 0000094b: MSTORE 0000094c: PUSH1 0x20 0000094e: ADD 0000094f: DUP5 00000950: DUP2 00000951: MSTORE 00000952: PUSH1 0x20 00000954: ADD 00000955: DUP4 00000956: DUP2 00000957: MSTORE 00000958: PUSH1 0x20 0000095a: ADD 0000095b: DUP3 0000095c: ISZERO 0000095d: ISZERO 0000095e: ISZERO 0000095f: ISZERO 00000960: DUP2 00000961: MSTORE 00000962: PUSH1 0x20 00000964: ADD 00000965: SWAP5 00000966: POP 00000967: POP 00000968: POP 00000969: POP 0000096a: POP 0000096b: PUSH1 0x40 0000096d: MLOAD 0000096e: DUP1 0000096f: SWAP2 00000970: SUB 00000971: SWAP1 00000972: RETURN 00000973: JUMPDEST 00000974: CALLVALUE 00000975: DUP1 00000976: ISZERO 00000977: PUSH2 0x097f 0000097a: JUMPI 0000097b: PUSH1 0x00 0000097d: DUP1 0000097e: REVERT 0000097f: JUMPDEST 00000980: POP 00000981: PUSH2 0x0988 00000984: PUSH2 0x1e33 00000987: JUMP 00000988: JUMPDEST 00000989: PUSH1 0x40 0000098b: MLOAD 0000098c: DUP1 0000098d: DUP3 0000098e: DUP2 0000098f: MSTORE 00000990: PUSH1 0x20 00000992: ADD 00000993: SWAP2 00000994: POP 00000995: POP 00000996: PUSH1 0x40 00000998: MLOAD 00000999: DUP1 0000099a: SWAP2 0000099b: SUB 0000099c: SWAP1 0000099d: RETURN 0000099e: JUMPDEST 0000099f: CALLVALUE 000009a0: DUP1 000009a1: ISZERO 000009a2: PUSH2 0x09aa 000009a5: JUMPI 000009a6: PUSH1 0x00 000009a8: DUP1 000009a9: REVERT 000009aa: JUMPDEST 000009ab: POP 000009ac: PUSH2 0x09e9 000009af: PUSH1 0x04 000009b1: DUP1 000009b2: CALLDATASIZE 000009b3: SUB 000009b4: DUP2 000009b5: ADD 000009b6: SWAP1 000009b7: DUP1 000009b8: DUP1 000009b9: CALLDATALOAD 000009ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009cf: AND 000009d0: SWAP1 000009d1: PUSH1 0x20 000009d3: ADD 000009d4: SWAP1 000009d5: SWAP3 000009d6: SWAP2 000009d7: SWAP1 000009d8: DUP1 000009d9: CALLDATALOAD 000009da: SWAP1 000009db: PUSH1 0x20 000009dd: ADD 000009de: SWAP1 000009df: SWAP3 000009e0: SWAP2 000009e1: SWAP1 000009e2: POP 000009e3: POP 000009e4: POP 000009e5: PUSH2 0x1e39 000009e8: JUMP 000009e9: JUMPDEST 000009ea: STOP 000009eb: JUMPDEST 000009ec: CALLVALUE 000009ed: DUP1 000009ee: ISZERO 000009ef: PUSH2 0x09f7 000009f2: JUMPI 000009f3: PUSH1 0x00 000009f5: DUP1 000009f6: REVERT 000009f7: JUMPDEST 000009f8: POP 000009f9: PUSH2 0x0a36 000009fc: PUSH1 0x04 000009fe: DUP1 000009ff: CALLDATASIZE 00000a00: SUB 00000a01: DUP2 00000a02: ADD 00000a03: SWAP1 00000a04: DUP1 00000a05: DUP1 00000a06: CALLDATALOAD 00000a07: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a1c: AND 00000a1d: SWAP1 00000a1e: PUSH1 0x20 00000a20: ADD 00000a21: SWAP1 00000a22: SWAP3 00000a23: SWAP2 00000a24: SWAP1 00000a25: DUP1 00000a26: CALLDATALOAD 00000a27: SWAP1 00000a28: PUSH1 0x20 00000a2a: ADD 00000a2b: SWAP1 00000a2c: SWAP3 00000a2d: SWAP2 00000a2e: SWAP1 00000a2f: POP 00000a30: POP 00000a31: POP 00000a32: PUSH2 0x1fc0 00000a35: JUMP 00000a36: JUMPDEST 00000a37: PUSH1 0x40 00000a39: MLOAD 00000a3a: DUP1 00000a3b: DUP3 00000a3c: ISZERO 00000a3d: ISZERO 00000a3e: ISZERO 00000a3f: ISZERO 00000a40: DUP2 00000a41: MSTORE 00000a42: PUSH1 0x20 00000a44: ADD 00000a45: SWAP2 00000a46: POP 00000a47: POP 00000a48: PUSH1 0x40 00000a4a: MLOAD 00000a4b: DUP1 00000a4c: SWAP2 00000a4d: SUB 00000a4e: SWAP1 00000a4f: RETURN 00000a50: JUMPDEST 00000a51: CALLVALUE 00000a52: DUP1 00000a53: ISZERO 00000a54: PUSH2 0x0a5c 00000a57: JUMPI 00000a58: PUSH1 0x00 00000a5a: DUP1 00000a5b: REVERT 00000a5c: JUMPDEST 00000a5d: POP 00000a5e: PUSH2 0x0a65 00000a61: PUSH2 0x214e 00000a64: JUMP 00000a65: JUMPDEST 00000a66: PUSH1 0x40 00000a68: MLOAD 00000a69: DUP1 00000a6a: DUP3 00000a6b: DUP2 00000a6c: MSTORE 00000a6d: PUSH1 0x20 00000a6f: ADD 00000a70: SWAP2 00000a71: POP 00000a72: POP 00000a73: PUSH1 0x40 00000a75: MLOAD 00000a76: DUP1 00000a77: SWAP2 00000a78: SUB 00000a79: SWAP1 00000a7a: RETURN 00000a7b: JUMPDEST 00000a7c: CALLVALUE 00000a7d: DUP1 00000a7e: ISZERO 00000a7f: PUSH2 0x0a87 00000a82: JUMPI 00000a83: PUSH1 0x00 00000a85: DUP1 00000a86: REVERT 00000a87: JUMPDEST 00000a88: POP 00000a89: PUSH2 0x0abc 00000a8c: PUSH1 0x04 00000a8e: DUP1 00000a8f: CALLDATASIZE 00000a90: SUB 00000a91: DUP2 00000a92: ADD 00000a93: SWAP1 00000a94: DUP1 00000a95: DUP1 00000a96: CALLDATALOAD 00000a97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000aac: AND 00000aad: SWAP1 00000aae: PUSH1 0x20 00000ab0: ADD 00000ab1: SWAP1 00000ab2: SWAP3 00000ab3: SWAP2 00000ab4: SWAP1 00000ab5: POP 00000ab6: POP 00000ab7: POP 00000ab8: PUSH2 0x2154 00000abb: JUMP 00000abc: JUMPDEST 00000abd: PUSH1 0x40 00000abf: MLOAD 00000ac0: DUP1 00000ac1: DUP3 00000ac2: ISZERO 00000ac3: ISZERO 00000ac4: ISZERO 00000ac5: ISZERO 00000ac6: DUP2 00000ac7: MSTORE 00000ac8: PUSH1 0x20 00000aca: ADD 00000acb: SWAP2 00000acc: POP 00000acd: POP 00000ace: PUSH1 0x40 00000ad0: MLOAD 00000ad1: DUP1 00000ad2: SWAP2 00000ad3: SUB 00000ad4: SWAP1 00000ad5: RETURN 00000ad6: JUMPDEST 00000ad7: CALLVALUE 00000ad8: DUP1 00000ad9: ISZERO 00000ada: PUSH2 0x0ae2 00000add: JUMPI 00000ade: PUSH1 0x00 00000ae0: DUP1 00000ae1: REVERT 00000ae2: JUMPDEST 00000ae3: POP 00000ae4: PUSH2 0x0aeb 00000ae7: PUSH2 0x21ad 00000aea: JUMP 00000aeb: JUMPDEST 00000aec: PUSH1 0x40 00000aee: MLOAD 00000aef: DUP1 00000af0: DUP3 00000af1: DUP2 00000af2: MSTORE 00000af3: PUSH1 0x20 00000af5: ADD 00000af6: SWAP2 00000af7: POP 00000af8: POP 00000af9: PUSH1 0x40 00000afb: MLOAD 00000afc: DUP1 00000afd: SWAP2 00000afe: SUB 00000aff: SWAP1 00000b00: RETURN 00000b01: JUMPDEST 00000b02: CALLVALUE 00000b03: DUP1 00000b04: ISZERO 00000b05: PUSH2 0x0b0d 00000b08: JUMPI 00000b09: PUSH1 0x00 00000b0b: DUP1 00000b0c: REVERT 00000b0d: JUMPDEST 00000b0e: POP 00000b0f: PUSH2 0x0b16 00000b12: PUSH2 0x21b3 00000b15: JUMP 00000b16: JUMPDEST 00000b17: PUSH1 0x40 00000b19: MLOAD 00000b1a: DUP1 00000b1b: DUP3 00000b1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b31: AND 00000b32: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b47: AND 00000b48: DUP2 00000b49: MSTORE 00000b4a: PUSH1 0x20 00000b4c: ADD 00000b4d: SWAP2 00000b4e: POP 00000b4f: POP 00000b50: PUSH1 0x40 00000b52: MLOAD 00000b53: DUP1 00000b54: SWAP2 00000b55: SUB 00000b56: SWAP1 00000b57: RETURN 00000b58: JUMPDEST 00000b59: CALLVALUE 00000b5a: DUP1 00000b5b: ISZERO 00000b5c: PUSH2 0x0b64 00000b5f: JUMPI 00000b60: PUSH1 0x00 00000b62: DUP1 00000b63: REVERT 00000b64: JUMPDEST 00000b65: POP 00000b66: PUSH2 0x0b6d 00000b69: PUSH2 0x21d8 00000b6c: JUMP 00000b6d: JUMPDEST 00000b6e: PUSH1 0x40 00000b70: MLOAD 00000b71: DUP1 00000b72: DUP3 00000b73: DUP2 00000b74: MSTORE 00000b75: PUSH1 0x20 00000b77: ADD 00000b78: SWAP2 00000b79: POP 00000b7a: POP 00000b7b: PUSH1 0x40 00000b7d: MLOAD 00000b7e: DUP1 00000b7f: SWAP2 00000b80: SUB 00000b81: SWAP1 00000b82: RETURN 00000b83: JUMPDEST 00000b84: CALLVALUE 00000b85: DUP1 00000b86: ISZERO 00000b87: PUSH2 0x0b8f 00000b8a: JUMPI 00000b8b: PUSH1 0x00 00000b8d: DUP1 00000b8e: REVERT 00000b8f: JUMPDEST 00000b90: POP 00000b91: PUSH2 0x0bae 00000b94: PUSH1 0x04 00000b96: DUP1 00000b97: CALLDATASIZE 00000b98: SUB 00000b99: DUP2 00000b9a: ADD 00000b9b: SWAP1 00000b9c: DUP1 00000b9d: DUP1 00000b9e: CALLDATALOAD 00000b9f: SWAP1 00000ba0: PUSH1 0x20 00000ba2: ADD 00000ba3: SWAP1 00000ba4: SWAP3 00000ba5: SWAP2 00000ba6: SWAP1 00000ba7: POP 00000ba8: POP 00000ba9: POP 00000baa: PUSH2 0x21e2 00000bad: JUMP 00000bae: JUMPDEST 00000baf: STOP 00000bb0: JUMPDEST 00000bb1: CALLVALUE 00000bb2: DUP1 00000bb3: ISZERO 00000bb4: PUSH2 0x0bbc 00000bb7: JUMPI 00000bb8: PUSH1 0x00 00000bba: DUP1 00000bbb: REVERT 00000bbc: JUMPDEST 00000bbd: POP 00000bbe: PUSH2 0x0bc5 00000bc1: PUSH2 0x22e4 00000bc4: JUMP 00000bc5: JUMPDEST 00000bc6: PUSH1 0x40 00000bc8: MLOAD 00000bc9: DUP1 00000bca: DUP3 00000bcb: DUP2 00000bcc: MSTORE 00000bcd: PUSH1 0x20 00000bcf: ADD 00000bd0: SWAP2 00000bd1: POP 00000bd2: POP 00000bd3: PUSH1 0x40 00000bd5: MLOAD 00000bd6: DUP1 00000bd7: SWAP2 00000bd8: SUB 00000bd9: SWAP1 00000bda: RETURN 00000bdb: JUMPDEST 00000bdc: CALLVALUE 00000bdd: DUP1 00000bde: ISZERO 00000bdf: PUSH2 0x0be7 00000be2: JUMPI 00000be3: PUSH1 0x00 00000be5: DUP1 00000be6: REVERT 00000be7: JUMPDEST 00000be8: POP 00000be9: PUSH2 0x0bf0 00000bec: PUSH2 0x22ee 00000bef: JUMP 00000bf0: JUMPDEST 00000bf1: PUSH1 0x40 00000bf3: MLOAD 00000bf4: DUP1 00000bf5: DUP1 00000bf6: PUSH1 0x20 00000bf8: ADD 00000bf9: DUP3 00000bfa: DUP2 00000bfb: SUB 00000bfc: DUP3 00000bfd: MSTORE 00000bfe: DUP4 00000bff: DUP2 00000c00: DUP2 00000c01: MLOAD 00000c02: DUP2 00000c03: MSTORE 00000c04: PUSH1 0x20 00000c06: ADD 00000c07: SWAP2 00000c08: POP 00000c09: DUP1 00000c0a: MLOAD 00000c0b: SWAP1 00000c0c: PUSH1 0x20 00000c0e: ADD 00000c0f: SWAP1 00000c10: DUP1 00000c11: DUP4 00000c12: DUP4 00000c13: PUSH1 0x00 00000c15: JUMPDEST 00000c16: DUP4 00000c17: DUP2 00000c18: LT 00000c19: ISZERO 00000c1a: PUSH2 0x0c30 00000c1d: JUMPI 00000c1e: DUP1 00000c1f: DUP3 00000c20: ADD 00000c21: MLOAD 00000c22: DUP2 00000c23: DUP5 00000c24: ADD 00000c25: MSTORE 00000c26: PUSH1 0x20 00000c28: DUP2 00000c29: ADD 00000c2a: SWAP1 00000c2b: POP 00000c2c: PUSH2 0x0c15 00000c2f: JUMP 00000c30: JUMPDEST 00000c31: POP 00000c32: POP 00000c33: POP 00000c34: POP 00000c35: SWAP1 00000c36: POP 00000c37: SWAP1 00000c38: DUP2 00000c39: ADD 00000c3a: SWAP1 00000c3b: PUSH1 0x1f 00000c3d: AND 00000c3e: DUP1 00000c3f: ISZERO 00000c40: PUSH2 0x0c5d 00000c43: JUMPI 00000c44: DUP1 00000c45: DUP3 00000c46: SUB 00000c47: DUP1 00000c48: MLOAD 00000c49: PUSH1 0x01 00000c4b: DUP4 00000c4c: PUSH1 0x20 00000c4e: SUB 00000c4f: PUSH2 0x0100 00000c52: EXP 00000c53: SUB 00000c54: NOT 00000c55: AND 00000c56: DUP2 00000c57: MSTORE 00000c58: PUSH1 0x20 00000c5a: ADD 00000c5b: SWAP2 00000c5c: POP 00000c5d: JUMPDEST 00000c5e: POP 00000c5f: SWAP3 00000c60: POP 00000c61: POP 00000c62: POP 00000c63: PUSH1 0x40 00000c65: MLOAD 00000c66: DUP1 00000c67: SWAP2 00000c68: SUB 00000c69: SWAP1 00000c6a: RETURN 00000c6b: JUMPDEST 00000c6c: CALLVALUE 00000c6d: DUP1 00000c6e: ISZERO 00000c6f: PUSH2 0x0c77 00000c72: JUMPI 00000c73: PUSH1 0x00 00000c75: DUP1 00000c76: REVERT 00000c77: JUMPDEST 00000c78: POP 00000c79: PUSH2 0x0c96 00000c7c: PUSH1 0x04 00000c7e: DUP1 00000c7f: CALLDATASIZE 00000c80: SUB 00000c81: DUP2 00000c82: ADD 00000c83: SWAP1 00000c84: DUP1 00000c85: DUP1 00000c86: CALLDATALOAD 00000c87: SWAP1 00000c88: PUSH1 0x20 00000c8a: ADD 00000c8b: SWAP1 00000c8c: SWAP3 00000c8d: SWAP2 00000c8e: SWAP1 00000c8f: POP 00000c90: POP 00000c91: POP 00000c92: PUSH2 0x238c 00000c95: JUMP 00000c96: JUMPDEST 00000c97: PUSH1 0x40 00000c99: MLOAD 00000c9a: DUP1 00000c9b: DUP3 00000c9c: DUP2 00000c9d: MSTORE 00000c9e: PUSH1 0x20 00000ca0: ADD 00000ca1: SWAP2 00000ca2: POP 00000ca3: POP 00000ca4: PUSH1 0x40 00000ca6: MLOAD 00000ca7: DUP1 00000ca8: SWAP2 00000ca9: SUB 00000caa: SWAP1 00000cab: RETURN 00000cac: JUMPDEST 00000cad: PUSH2 0x0cb4 00000cb0: PUSH2 0x239a 00000cb3: JUMP 00000cb4: JUMPDEST 00000cb5: STOP 00000cb6: JUMPDEST 00000cb7: CALLVALUE 00000cb8: DUP1 00000cb9: ISZERO 00000cba: PUSH2 0x0cc2 00000cbd: JUMPI 00000cbe: PUSH1 0x00 00000cc0: DUP1 00000cc1: REVERT 00000cc2: JUMPDEST 00000cc3: POP 00000cc4: PUSH2 0x0ce1 00000cc7: PUSH1 0x04 00000cc9: DUP1 00000cca: CALLDATASIZE 00000ccb: SUB 00000ccc: DUP2 00000ccd: ADD 00000cce: SWAP1 00000ccf: DUP1 00000cd0: DUP1 00000cd1: CALLDATALOAD 00000cd2: SWAP1 00000cd3: PUSH1 0x20 00000cd5: ADD 00000cd6: SWAP1 00000cd7: SWAP3 00000cd8: SWAP2 00000cd9: SWAP1 00000cda: POP 00000cdb: POP 00000cdc: POP 00000cdd: PUSH2 0x23ed 00000ce0: JUMP 00000ce1: JUMPDEST 00000ce2: STOP 00000ce3: JUMPDEST 00000ce4: CALLVALUE 00000ce5: DUP1 00000ce6: ISZERO 00000ce7: PUSH2 0x0cef 00000cea: JUMPI 00000ceb: PUSH1 0x00 00000ced: DUP1 00000cee: REVERT 00000cef: JUMPDEST 00000cf0: POP 00000cf1: PUSH2 0x0d2e 00000cf4: PUSH1 0x04 00000cf6: DUP1 00000cf7: CALLDATASIZE 00000cf8: SUB 00000cf9: DUP2 00000cfa: ADD 00000cfb: SWAP1 00000cfc: DUP1 00000cfd: DUP1 00000cfe: CALLDATALOAD 00000cff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d14: AND 00000d15: SWAP1 00000d16: PUSH1 0x20 00000d18: ADD 00000d19: SWAP1 00000d1a: SWAP3 00000d1b: SWAP2 00000d1c: SWAP1 00000d1d: DUP1 00000d1e: CALLDATALOAD 00000d1f: SWAP1 00000d20: PUSH1 0x20 00000d22: ADD 00000d23: SWAP1 00000d24: SWAP3 00000d25: SWAP2 00000d26: SWAP1 00000d27: POP 00000d28: POP 00000d29: POP 00000d2a: PUSH2 0x2642 00000d2d: JUMP 00000d2e: JUMPDEST 00000d2f: STOP 00000d30: JUMPDEST 00000d31: CALLVALUE 00000d32: DUP1 00000d33: ISZERO 00000d34: PUSH2 0x0d3c 00000d37: JUMPI 00000d38: PUSH1 0x00 00000d3a: DUP1 00000d3b: REVERT 00000d3c: JUMPDEST 00000d3d: POP 00000d3e: PUSH2 0x0d45 00000d41: PUSH2 0x2651 00000d44: JUMP 00000d45: JUMPDEST 00000d46: PUSH1 0x40 00000d48: MLOAD 00000d49: DUP1 00000d4a: DUP3 00000d4b: DUP2 00000d4c: MSTORE 00000d4d: PUSH1 0x20 00000d4f: ADD 00000d50: SWAP2 00000d51: POP 00000d52: POP 00000d53: PUSH1 0x40 00000d55: MLOAD 00000d56: DUP1 00000d57: SWAP2 00000d58: SUB 00000d59: SWAP1 00000d5a: RETURN 00000d5b: JUMPDEST 00000d5c: CALLVALUE 00000d5d: DUP1 00000d5e: ISZERO 00000d5f: PUSH2 0x0d67 00000d62: JUMPI 00000d63: PUSH1 0x00 00000d65: DUP1 00000d66: REVERT 00000d67: JUMPDEST 00000d68: POP 00000d69: PUSH2 0x0d9c 00000d6c: PUSH1 0x04 00000d6e: DUP1 00000d6f: CALLDATASIZE 00000d70: SUB 00000d71: DUP2 00000d72: ADD 00000d73: SWAP1 00000d74: DUP1 00000d75: DUP1 00000d76: CALLDATALOAD 00000d77: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d8c: AND 00000d8d: SWAP1 00000d8e: PUSH1 0x20 00000d90: ADD 00000d91: SWAP1 00000d92: SWAP3 00000d93: SWAP2 00000d94: SWAP1 00000d95: POP 00000d96: POP 00000d97: POP 00000d98: PUSH2 0x2657 00000d9b: JUMP 00000d9c: JUMPDEST 00000d9d: PUSH1 0x40 00000d9f: MLOAD 00000da0: DUP1 00000da1: DUP8 00000da2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000db7: AND 00000db8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dcd: AND 00000dce: DUP2 00000dcf: MSTORE 00000dd0: PUSH1 0x20 00000dd2: ADD 00000dd3: DUP7 00000dd4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000de9: AND 00000dea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dff: AND 00000e00: DUP2 00000e01: MSTORE 00000e02: PUSH1 0x20 00000e04: ADD 00000e05: DUP6 00000e06: DUP2 00000e07: MSTORE 00000e08: PUSH1 0x20 00000e0a: ADD 00000e0b: DUP5 00000e0c: DUP2 00000e0d: MSTORE 00000e0e: PUSH1 0x20 00000e10: ADD 00000e11: DUP4 00000e12: DUP2 00000e13: MSTORE 00000e14: PUSH1 0x20 00000e16: ADD 00000e17: DUP3 00000e18: ISZERO 00000e19: ISZERO 00000e1a: ISZERO 00000e1b: ISZERO 00000e1c: DUP2 00000e1d: MSTORE 00000e1e: PUSH1 0x20 00000e20: ADD 00000e21: SWAP7 00000e22: POP 00000e23: POP 00000e24: POP 00000e25: POP 00000e26: POP 00000e27: POP 00000e28: POP 00000e29: PUSH1 0x40 00000e2b: MLOAD 00000e2c: DUP1 00000e2d: SWAP2 00000e2e: SUB 00000e2f: SWAP1 00000e30: RETURN 00000e31: JUMPDEST 00000e32: CALLVALUE 00000e33: DUP1 00000e34: ISZERO 00000e35: PUSH2 0x0e3d 00000e38: JUMPI 00000e39: PUSH1 0x00 00000e3b: DUP1 00000e3c: REVERT 00000e3d: JUMPDEST 00000e3e: POP 00000e3f: PUSH2 0x0e46 00000e42: PUSH2 0x2854 00000e45: JUMP 00000e46: JUMPDEST 00000e47: PUSH1 0x40 00000e49: MLOAD 00000e4a: DUP1 00000e4b: DUP3 00000e4c: DUP2 00000e4d: MSTORE 00000e4e: PUSH1 0x20 00000e50: ADD 00000e51: SWAP2 00000e52: POP 00000e53: POP 00000e54: PUSH1 0x40 00000e56: MLOAD 00000e57: DUP1 00000e58: SWAP2 00000e59: SUB 00000e5a: SWAP1 00000e5b: RETURN 00000e5c: JUMPDEST 00000e5d: CALLVALUE 00000e5e: DUP1 00000e5f: ISZERO 00000e60: PUSH2 0x0e68 00000e63: JUMPI 00000e64: PUSH1 0x00 00000e66: DUP1 00000e67: REVERT 00000e68: JUMPDEST 00000e69: POP 00000e6a: PUSH2 0x0e71 00000e6d: PUSH2 0x285a 00000e70: JUMP 00000e71: JUMPDEST 00000e72: PUSH1 0x40 00000e74: MLOAD 00000e75: DUP1 00000e76: DUP3 00000e77: DUP2 00000e78: MSTORE 00000e79: PUSH1 0x20 00000e7b: ADD 00000e7c: SWAP2 00000e7d: POP 00000e7e: POP 00000e7f: PUSH1 0x40 00000e81: MLOAD 00000e82: DUP1 00000e83: SWAP2 00000e84: SUB 00000e85: SWAP1 00000e86: RETURN 00000e87: JUMPDEST 00000e88: CALLVALUE 00000e89: DUP1 00000e8a: ISZERO 00000e8b: PUSH2 0x0e93 00000e8e: JUMPI 00000e8f: PUSH1 0x00 00000e91: DUP1 00000e92: REVERT 00000e93: JUMPDEST 00000e94: POP 00000e95: PUSH2 0x0f18 00000e98: PUSH1 0x04 00000e9a: DUP1 00000e9b: CALLDATASIZE 00000e9c: SUB 00000e9d: DUP2 00000e9e: ADD 00000e9f: SWAP1 00000ea0: DUP1 00000ea1: DUP1 00000ea2: CALLDATALOAD 00000ea3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000eb8: AND 00000eb9: SWAP1 00000eba: PUSH1 0x20 00000ebc: ADD 00000ebd: SWAP1 00000ebe: SWAP3 00000ebf: SWAP2 00000ec0: SWAP1 00000ec1: DUP1 00000ec2: CALLDATALOAD 00000ec3: SWAP1 00000ec4: PUSH1 0x20 00000ec6: ADD 00000ec7: SWAP1 00000ec8: SWAP3 00000ec9: SWAP2 00000eca: SWAP1 00000ecb: DUP1 00000ecc: CALLDATALOAD 00000ecd: SWAP1 00000ece: PUSH1 0x20 00000ed0: ADD 00000ed1: SWAP1 00000ed2: DUP3 00000ed3: ADD 00000ed4: DUP1 00000ed5: CALLDATALOAD 00000ed6: SWAP1 00000ed7: PUSH1 0x20 00000ed9: ADD 00000eda: SWAP1 00000edb: DUP1 00000edc: DUP1 00000edd: PUSH1 0x1f 00000edf: ADD 00000ee0: PUSH1 0x20 00000ee2: DUP1 00000ee3: SWAP2 00000ee4: DIV 00000ee5: MUL 00000ee6: PUSH1 0x20 00000ee8: ADD 00000ee9: PUSH1 0x40 00000eeb: MLOAD 00000eec: SWAP1 00000eed: DUP2 00000eee: ADD 00000eef: PUSH1 0x40 00000ef1: MSTORE 00000ef2: DUP1 00000ef3: SWAP4 00000ef4: SWAP3 00000ef5: SWAP2 00000ef6: SWAP1 00000ef7: DUP2 00000ef8: DUP2 00000ef9: MSTORE 00000efa: PUSH1 0x20 00000efc: ADD 00000efd: DUP4 00000efe: DUP4 00000eff: DUP1 00000f00: DUP3 00000f01: DUP5 00000f02: CALLDATACOPY 00000f03: DUP3 00000f04: ADD 00000f05: SWAP2 00000f06: POP 00000f07: POP 00000f08: POP 00000f09: POP 00000f0a: POP 00000f0b: POP 00000f0c: SWAP2 00000f0d: SWAP3 00000f0e: SWAP2 00000f0f: SWAP3 00000f10: SWAP1 00000f11: POP 00000f12: POP 00000f13: POP 00000f14: PUSH2 0x2860 00000f17: JUMP 00000f18: JUMPDEST 00000f19: PUSH1 0x40 00000f1b: MLOAD 00000f1c: DUP1 00000f1d: DUP3 00000f1e: ISZERO 00000f1f: ISZERO 00000f20: ISZERO 00000f21: ISZERO 00000f22: DUP2 00000f23: MSTORE 00000f24: PUSH1 0x20 00000f26: ADD 00000f27: SWAP2 00000f28: POP 00000f29: POP 00000f2a: PUSH1 0x40 00000f2c: MLOAD 00000f2d: DUP1 00000f2e: SWAP2 00000f2f: SUB 00000f30: SWAP1 00000f31: RETURN 00000f32: JUMPDEST 00000f33: CALLVALUE 00000f34: DUP1 00000f35: ISZERO 00000f36: PUSH2 0x0f3e 00000f39: JUMPI 00000f3a: PUSH1 0x00 00000f3c: DUP1 00000f3d: REVERT 00000f3e: JUMPDEST 00000f3f: POP 00000f40: PUSH2 0x0f73 00000f43: PUSH1 0x04 00000f45: DUP1 00000f46: CALLDATASIZE 00000f47: SUB 00000f48: DUP2 00000f49: ADD 00000f4a: SWAP1 00000f4b: DUP1 00000f4c: DUP1 00000f4d: CALLDATALOAD 00000f4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f63: AND 00000f64: SWAP1 00000f65: PUSH1 0x20 00000f67: ADD 00000f68: SWAP1 00000f69: SWAP3 00000f6a: SWAP2 00000f6b: SWAP1 00000f6c: POP 00000f6d: POP 00000f6e: POP 00000f6f: PUSH2 0x29e3 00000f72: JUMP 00000f73: JUMPDEST 00000f74: STOP 00000f75: JUMPDEST 00000f76: CALLVALUE 00000f77: DUP1 00000f78: ISZERO 00000f79: PUSH2 0x0f81 00000f7c: JUMPI 00000f7d: PUSH1 0x00 00000f7f: DUP1 00000f80: REVERT 00000f81: JUMPDEST 00000f82: POP 00000f83: PUSH2 0x0fa0 00000f86: PUSH1 0x04 00000f88: DUP1 00000f89: CALLDATASIZE 00000f8a: SUB 00000f8b: DUP2 00000f8c: ADD 00000f8d: SWAP1 00000f8e: DUP1 00000f8f: DUP1 00000f90: CALLDATALOAD 00000f91: SWAP1 00000f92: PUSH1 0x20 00000f94: ADD 00000f95: SWAP1 00000f96: SWAP3 00000f97: SWAP2 00000f98: SWAP1 00000f99: POP 00000f9a: POP 00000f9b: POP 00000f9c: PUSH2 0x2b39 00000f9f: JUMP 00000fa0: JUMPDEST 00000fa1: PUSH1 0x40 00000fa3: MLOAD 00000fa4: DUP1 00000fa5: DUP3 00000fa6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fbb: AND 00000fbc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fd1: AND 00000fd2: DUP2 00000fd3: MSTORE 00000fd4: PUSH1 0x20 00000fd6: ADD 00000fd7: SWAP2 00000fd8: POP 00000fd9: POP 00000fda: PUSH1 0x40 00000fdc: MLOAD 00000fdd: DUP1 00000fde: SWAP2 00000fdf: SUB 00000fe0: SWAP1 00000fe1: RETURN 00000fe2: JUMPDEST 00000fe3: CALLVALUE 00000fe4: DUP1 00000fe5: ISZERO 00000fe6: PUSH2 0x0fee 00000fe9: JUMPI 00000fea: PUSH1 0x00 00000fec: DUP1 00000fed: REVERT 00000fee: JUMPDEST 00000fef: POP 00000ff0: PUSH2 0x1043 00000ff3: PUSH1 0x04 00000ff5: DUP1 00000ff6: CALLDATASIZE 00000ff7: SUB 00000ff8: DUP2 00000ff9: ADD 00000ffa: SWAP1 00000ffb: DUP1 00000ffc: DUP1 00000ffd: CALLDATALOAD 00000ffe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001013: AND 00001014: SWAP1 00001015: PUSH1 0x20 00001017: ADD 00001018: SWAP1 00001019: SWAP3 0000101a: SWAP2 0000101b: SWAP1 0000101c: DUP1 0000101d: CALLDATALOAD 0000101e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001033: AND 00001034: SWAP1 00001035: PUSH1 0x20 00001037: ADD 00001038: SWAP1 00001039: SWAP3 0000103a: SWAP2 0000103b: SWAP1 0000103c: POP 0000103d: POP 0000103e: POP 0000103f: PUSH2 0x2b77 00001042: JUMP 00001043: JUMPDEST 00001044: PUSH1 0x40 00001046: MLOAD 00001047: DUP1 00001048: DUP3 00001049: DUP2 0000104a: MSTORE 0000104b: PUSH1 0x20 0000104d: ADD 0000104e: SWAP2 0000104f: POP 00001050: POP 00001051: PUSH1 0x40 00001053: MLOAD 00001054: DUP1 00001055: SWAP2 00001056: SUB 00001057: SWAP1 00001058: RETURN 00001059: JUMPDEST 0000105a: CALLVALUE 0000105b: DUP1 0000105c: ISZERO 0000105d: PUSH2 0x1065 00001060: JUMPI 00001061: PUSH1 0x00 00001063: DUP1 00001064: REVERT 00001065: JUMPDEST 00001066: POP 00001067: PUSH2 0x106e 0000106a: PUSH2 0x2b9c 0000106d: JUMP 0000106e: JUMPDEST 0000106f: STOP 00001070: JUMPDEST 00001071: CALLVALUE 00001072: DUP1 00001073: ISZERO 00001074: PUSH2 0x107c 00001077: JUMPI 00001078: PUSH1 0x00 0000107a: DUP1 0000107b: REVERT 0000107c: JUMPDEST 0000107d: POP 0000107e: PUSH2 0x1085 00001081: PUSH2 0x2cfa 00001084: JUMP 00001085: JUMPDEST 00001086: STOP 00001087: JUMPDEST 00001088: CALLVALUE 00001089: DUP1 0000108a: ISZERO 0000108b: PUSH2 0x1093 0000108e: JUMPI 0000108f: PUSH1 0x00 00001091: DUP1 00001092: REVERT 00001093: JUMPDEST 00001094: POP 00001095: PUSH2 0x109c 00001098: PUSH2 0x2e7c 0000109b: JUMP 0000109c: JUMPDEST 0000109d: PUSH1 0x40 0000109f: MLOAD 000010a0: DUP1 000010a1: DUP7 000010a2: DUP2 000010a3: MSTORE 000010a4: PUSH1 0x20 000010a6: ADD 000010a7: DUP6 000010a8: DUP2 000010a9: MSTORE 000010aa: PUSH1 0x20 000010ac: ADD 000010ad: DUP5 000010ae: DUP2 000010af: MSTORE 000010b0: PUSH1 0x20 000010b2: ADD 000010b3: DUP4 000010b4: DUP2 000010b5: MSTORE 000010b6: PUSH1 0x20 000010b8: ADD 000010b9: DUP3 000010ba: DUP2 000010bb: MSTORE 000010bc: PUSH1 0x20 000010be: ADD 000010bf: SWAP6 000010c0: POP 000010c1: POP 000010c2: POP 000010c3: POP 000010c4: POP 000010c5: POP 000010c6: PUSH1 0x40 000010c8: MLOAD 000010c9: DUP1 000010ca: SWAP2 000010cb: SUB 000010cc: SWAP1 000010cd: RETURN 000010ce: JUMPDEST 000010cf: CALLVALUE 000010d0: DUP1 000010d1: ISZERO 000010d2: PUSH2 0x10da 000010d5: JUMPI 000010d6: PUSH1 0x00 000010d8: DUP1 000010d9: REVERT 000010da: JUMPDEST 000010db: POP 000010dc: PUSH2 0x10e3 000010df: PUSH2 0x2ea4 000010e2: JUMP 000010e3: JUMPDEST 000010e4: PUSH1 0x40 000010e6: MLOAD 000010e7: DUP1 000010e8: DUP3 000010e9: DUP2 000010ea: MSTORE 000010eb: PUSH1 0x20 000010ed: ADD 000010ee: SWAP2 000010ef: POP 000010f0: POP 000010f1: PUSH1 0x40 000010f3: MLOAD 000010f4: DUP1 000010f5: SWAP2 000010f6: SUB 000010f7: SWAP1 000010f8: RETURN 000010f9: JUMPDEST 000010fa: CALLVALUE 000010fb: DUP1 000010fc: ISZERO 000010fd: PUSH2 0x1105 00001100: JUMPI 00001101: PUSH1 0x00 00001103: DUP1 00001104: REVERT 00001105: JUMPDEST 00001106: POP 00001107: PUSH2 0x115a 0000110a: PUSH1 0x04 0000110c: DUP1 0000110d: CALLDATASIZE 0000110e: SUB 0000110f: DUP2 00001110: ADD 00001111: SWAP1 00001112: DUP1 00001113: DUP1 00001114: CALLDATALOAD 00001115: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000112a: AND 0000112b: SWAP1 0000112c: PUSH1 0x20 0000112e: ADD 0000112f: SWAP1 00001130: SWAP3 00001131: SWAP2 00001132: SWAP1 00001133: DUP1 00001134: CALLDATALOAD 00001135: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000114a: AND 0000114b: SWAP1 0000114c: PUSH1 0x20 0000114e: ADD 0000114f: SWAP1 00001150: SWAP3 00001151: SWAP2 00001152: SWAP1 00001153: POP 00001154: POP 00001155: POP 00001156: PUSH2 0x2eaa 00001159: JUMP 0000115a: JUMPDEST 0000115b: PUSH1 0x40 0000115d: MLOAD 0000115e: DUP1 0000115f: DUP8 00001160: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001175: AND 00001176: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000118b: AND 0000118c: DUP2 0000118d: MSTORE 0000118e: PUSH1 0x20 00001190: ADD 00001191: DUP7 00001192: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011a7: AND 000011a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011bd: AND 000011be: DUP2 000011bf: MSTORE 000011c0: PUSH1 0x20 000011c2: ADD 000011c3: DUP6 000011c4: DUP2 000011c5: MSTORE 000011c6: PUSH1 0x20 000011c8: ADD 000011c9: DUP5 000011ca: DUP2 000011cb: MSTORE 000011cc: PUSH1 0x20 000011ce: ADD 000011cf: DUP4 000011d0: DUP2 000011d1: MSTORE 000011d2: PUSH1 0x20 000011d4: ADD 000011d5: DUP3 000011d6: ISZERO 000011d7: ISZERO 000011d8: ISZERO 000011d9: ISZERO 000011da: DUP2 000011db: MSTORE 000011dc: PUSH1 0x20 000011de: ADD 000011df: SWAP7 000011e0: POP 000011e1: POP 000011e2: POP 000011e3: POP 000011e4: POP 000011e5: POP 000011e6: POP 000011e7: PUSH1 0x40 000011e9: MLOAD 000011ea: DUP1 000011eb: SWAP2 000011ec: SUB 000011ed: SWAP1 000011ee: RETURN 000011ef: JUMPDEST 000011f0: CALLVALUE 000011f1: DUP1 000011f2: ISZERO 000011f3: PUSH2 0x11fb 000011f6: JUMPI 000011f7: PUSH1 0x00 000011f9: DUP1 000011fa: REVERT 000011fb: JUMPDEST 000011fc: POP 000011fd: PUSH2 0x1230 00001200: PUSH1 0x04 00001202: DUP1 00001203: CALLDATASIZE 00001204: SUB 00001205: DUP2 00001206: ADD 00001207: SWAP1 00001208: DUP1 00001209: DUP1 0000120a: CALLDATALOAD 0000120b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001220: AND 00001221: SWAP1 00001222: PUSH1 0x20 00001224: ADD 00001225: SWAP1 00001226: SWAP3 00001227: SWAP2 00001228: SWAP1 00001229: POP 0000122a: POP 0000122b: POP 0000122c: PUSH2 0x3652 0000122f: JUMP 00001230: JUMPDEST 00001231: STOP 00001232: JUMPDEST 00001233: CALLVALUE 00001234: DUP1 00001235: ISZERO 00001236: PUSH2 0x123e 00001239: JUMPI 0000123a: PUSH1 0x00 0000123c: DUP1 0000123d: REVERT 0000123e: JUMPDEST 0000123f: POP 00001240: PUSH2 0x1247 00001243: PUSH2 0x36f0 00001246: JUMP 00001247: JUMPDEST 00001248: PUSH1 0x40 0000124a: MLOAD 0000124b: DUP1 0000124c: DUP3 0000124d: DUP2 0000124e: MSTORE 0000124f: PUSH1 0x20 00001251: ADD 00001252: SWAP2 00001253: POP 00001254: POP 00001255: PUSH1 0x40 00001257: MLOAD 00001258: DUP1 00001259: SWAP2 0000125a: SUB 0000125b: SWAP1 0000125c: RETURN 0000125d: JUMPDEST 0000125e: CALLVALUE 0000125f: DUP1 00001260: ISZERO 00001261: PUSH2 0x1269 00001264: JUMPI 00001265: PUSH1 0x00 00001267: DUP1 00001268: REVERT 00001269: JUMPDEST 0000126a: POP 0000126b: PUSH2 0x1272 0000126e: PUSH2 0x36fa 00001271: JUMP 00001272: JUMPDEST 00001273: PUSH1 0x40 00001275: MLOAD 00001276: DUP1 00001277: DUP3 00001278: DUP2 00001279: MSTORE 0000127a: PUSH1 0x20 0000127c: ADD 0000127d: SWAP2 0000127e: POP 0000127f: POP 00001280: PUSH1 0x40 00001282: MLOAD 00001283: DUP1 00001284: SWAP2 00001285: SUB 00001286: SWAP1 00001287: RETURN 00001288: JUMPDEST 00001289: CALLVALUE 0000128a: DUP1 0000128b: ISZERO 0000128c: PUSH2 0x1294 0000128f: JUMPI 00001290: PUSH1 0x00 00001292: DUP1 00001293: REVERT 00001294: JUMPDEST 00001295: POP 00001296: PUSH2 0x129d 00001299: PUSH2 0x3704 0000129c: JUMP 0000129d: JUMPDEST 0000129e: PUSH1 0x40 000012a0: MLOAD 000012a1: DUP1 000012a2: DUP3 000012a3: DUP2 000012a4: MSTORE 000012a5: PUSH1 0x20 000012a7: ADD 000012a8: SWAP2 000012a9: POP 000012aa: POP 000012ab: PUSH1 0x40 000012ad: MLOAD 000012ae: DUP1 000012af: SWAP2 000012b0: SUB 000012b1: SWAP1 000012b2: RETURN 000012b3: JUMPDEST 000012b4: PUSH1 0x00 000012b6: DUP1 000012b7: PUSH1 0x00 000012b9: DUP1 000012ba: PUSH1 0x17 000012bc: SLOAD 000012bd: GT 000012be: DUP1 000012bf: ISZERO 000012c0: PUSH2 0x12c9 000012c3: JUMPI 000012c4: POP 000012c5: PUSH1 0x00 000012c7: DUP5 000012c8: GT 000012c9: JUMPDEST 000012ca: ISZERO 000012cb: PUSH2 0x15cd 000012ce: JUMPI 000012cf: PUSH1 0x17 000012d1: SLOAD 000012d2: SWAP3 000012d3: POP 000012d4: PUSH1 0x05 000012d6: PUSH1 0x00 000012d8: ADDRESS 000012d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012ee: AND 000012ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001304: AND 00001305: DUP2 00001306: MSTORE 00001307: PUSH1 0x20 00001309: ADD 0000130a: SWAP1 0000130b: DUP2 0000130c: MSTORE 0000130d: PUSH1 0x20 0000130f: ADD 00001310: PUSH1 0x00 00001312: KECCAK256 00001313: SLOAD 00001314: SWAP2 00001315: POP 00001316: DUP3 00001317: DUP3 00001318: LT 00001319: ISZERO 0000131a: PUSH2 0x1322 0000131d: JUMPI 0000131e: PUSH2 0x15ce 00001321: JUMP 00001322: JUMPDEST 00001323: DUP4 00001324: DUP4 00001325: DUP2 00001326: ISZERO 00001327: ISZERO 00001328: PUSH2 0x132d 0000132b: JUMPI 0000132c: INVALID 0000132d: JUMPDEST 0000132e: DIV 0000132f: SWAP1 00001330: POP 00001331: PUSH1 0x00 00001333: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001348: AND 00001349: DUP15 0000134a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000135f: AND 00001360: EQ 00001361: ISZERO 00001362: ISZERO 00001363: PUSH2 0x1372 00001366: JUMPI 00001367: PUSH2 0x1371 0000136a: ADDRESS 0000136b: DUP16 0000136c: DUP4 0000136d: PUSH2 0x370e 00001370: JUMP 00001371: JUMPDEST 00001372: JUMPDEST 00001373: PUSH1 0x00 00001375: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000138a: AND 0000138b: DUP14 0000138c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013a1: AND 000013a2: EQ 000013a3: ISZERO 000013a4: ISZERO 000013a5: PUSH2 0x13b4 000013a8: JUMPI 000013a9: PUSH2 0x13b3 000013ac: ADDRESS 000013ad: DUP15 000013ae: DUP4 000013af: PUSH2 0x370e 000013b2: JUMP 000013b3: JUMPDEST 000013b4: JUMPDEST 000013b5: PUSH1 0x00 000013b7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013cc: AND 000013cd: DUP13 000013ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013e3: AND 000013e4: EQ 000013e5: ISZERO 000013e6: ISZERO 000013e7: PUSH2 0x13f6 000013ea: JUMPI 000013eb: PUSH2 0x13f5 000013ee: ADDRESS 000013ef: DUP14 000013f0: DUP4 000013f1: PUSH2 0x370e 000013f4: JUMP 000013f5: JUMPDEST 000013f6: JUMPDEST 000013f7: PUSH1 0x00 000013f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000140e: AND 0000140f: DUP12 00001410: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001425: AND 00001426: EQ 00001427: ISZERO 00001428: ISZERO 00001429: PUSH2 0x1438 0000142c: JUMPI 0000142d: PUSH2 0x1437 00001430: ADDRESS 00001431: DUP13 00001432: DUP4 00001433: PUSH2 0x370e 00001436: JUMP 00001437: JUMPDEST 00001438: JUMPDEST 00001439: PUSH1 0x00 0000143b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001450: AND 00001451: DUP11 00001452: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001467: AND 00001468: EQ 00001469: ISZERO 0000146a: ISZERO 0000146b: PUSH2 0x147a 0000146e: JUMPI 0000146f: PUSH2 0x1479 00001472: ADDRESS 00001473: DUP12 00001474: DUP4 00001475: PUSH2 0x370e 00001478: JUMP 00001479: JUMPDEST 0000147a: JUMPDEST 0000147b: PUSH1 0x00 0000147d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001492: AND 00001493: DUP10 00001494: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014a9: AND 000014aa: EQ 000014ab: ISZERO 000014ac: ISZERO 000014ad: PUSH2 0x14bc 000014b0: JUMPI 000014b1: PUSH2 0x14bb 000014b4: ADDRESS 000014b5: DUP11 000014b6: DUP4 000014b7: PUSH2 0x370e 000014ba: JUMP 000014bb: JUMPDEST 000014bc: JUMPDEST 000014bd: PUSH1 0x00 000014bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014d4: AND 000014d5: DUP9 000014d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014eb: AND 000014ec: EQ 000014ed: ISZERO 000014ee: ISZERO 000014ef: PUSH2 0x14fe 000014f2: JUMPI 000014f3: PUSH2 0x14fd 000014f6: ADDRESS 000014f7: DUP10 000014f8: DUP4 000014f9: PUSH2 0x370e 000014fc: JUMP 000014fd: JUMPDEST 000014fe: JUMPDEST 000014ff: PUSH1 0x00 00001501: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001516: AND 00001517: DUP8 00001518: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000152d: AND 0000152e: EQ 0000152f: ISZERO 00001530: ISZERO 00001531: PUSH2 0x1540 00001534: JUMPI 00001535: PUSH2 0x153f 00001538: ADDRESS 00001539: DUP9 0000153a: DUP4 0000153b: PUSH2 0x370e 0000153e: JUMP 0000153f: JUMPDEST 00001540: JUMPDEST 00001541: PUSH1 0x00 00001543: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001558: AND 00001559: DUP7 0000155a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000156f: AND 00001570: EQ 00001571: ISZERO 00001572: ISZERO 00001573: PUSH2 0x1582 00001576: JUMPI 00001577: PUSH2 0x1581 0000157a: ADDRESS 0000157b: DUP8 0000157c: DUP4 0000157d: PUSH2 0x370e 00001580: JUMP 00001581: JUMPDEST 00001582: JUMPDEST 00001583: PUSH1 0x00 00001585: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000159a: AND 0000159b: DUP6 0000159c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015b1: AND 000015b2: EQ 000015b3: ISZERO 000015b4: ISZERO 000015b5: PUSH2 0x15c4 000015b8: JUMPI 000015b9: PUSH2 0x15c3 000015bc: ADDRESS 000015bd: DUP7 000015be: DUP4 000015bf: PUSH2 0x370e 000015c2: JUMP 000015c3: JUMPDEST 000015c4: JUMPDEST 000015c5: PUSH1 0x00 000015c7: PUSH1 0x17 000015c9: DUP2 000015ca: SWAP1 000015cb: SSTORE 000015cc: POP 000015cd: JUMPDEST 000015ce: JUMPDEST 000015cf: POP 000015d0: POP 000015d1: POP 000015d2: POP 000015d3: POP 000015d4: POP 000015d5: POP 000015d6: POP 000015d7: POP 000015d8: POP 000015d9: POP 000015da: POP 000015db: POP 000015dc: POP 000015dd: JUMP 000015de: JUMPDEST 000015df: PUSH1 0x15 000015e1: SLOAD 000015e2: DUP2 000015e3: JUMP 000015e4: JUMPDEST 000015e5: PUSH1 0x01 000015e7: DUP1 000015e8: SLOAD 000015e9: PUSH1 0x01 000015eb: DUP2 000015ec: PUSH1 0x01 000015ee: AND 000015ef: ISZERO 000015f0: PUSH2 0x0100 000015f3: MUL 000015f4: SUB 000015f5: AND 000015f6: PUSH1 0x02 000015f8: SWAP1 000015f9: DIV 000015fa: DUP1 000015fb: PUSH1 0x1f 000015fd: ADD 000015fe: PUSH1 0x20 00001600: DUP1 00001601: SWAP2 00001602: DIV 00001603: MUL 00001604: PUSH1 0x20 00001606: ADD 00001607: PUSH1 0x40 00001609: MLOAD 0000160a: SWAP1 0000160b: DUP2 0000160c: ADD 0000160d: PUSH1 0x40 0000160f: MSTORE 00001610: DUP1 00001611: SWAP3 00001612: SWAP2 00001613: SWAP1 00001614: DUP2 00001615: DUP2 00001616: MSTORE 00001617: PUSH1 0x20 00001619: ADD 0000161a: DUP3 0000161b: DUP1 0000161c: SLOAD 0000161d: PUSH1 0x01 0000161f: DUP2 00001620: PUSH1 0x01 00001622: AND 00001623: ISZERO 00001624: PUSH2 0x0100 00001627: MUL 00001628: SUB 00001629: AND 0000162a: PUSH1 0x02 0000162c: SWAP1 0000162d: DIV 0000162e: DUP1 0000162f: ISZERO 00001630: PUSH2 0x167a 00001633: JUMPI 00001634: DUP1 00001635: PUSH1 0x1f 00001637: LT 00001638: PUSH2 0x164f 0000163b: JUMPI 0000163c: PUSH2 0x0100 0000163f: DUP1 00001640: DUP4 00001641: SLOAD 00001642: DIV 00001643: MUL 00001644: DUP4 00001645: MSTORE 00001646: SWAP2 00001647: PUSH1 0x20 00001649: ADD 0000164a: SWAP2 0000164b: PUSH2 0x167a 0000164e: JUMP 0000164f: JUMPDEST 00001650: DUP3 00001651: ADD 00001652: SWAP2 00001653: SWAP1 00001654: PUSH1 0x00 00001656: MSTORE 00001657: PUSH1 0x20 00001659: PUSH1 0x00 0000165b: KECCAK256 0000165c: SWAP1 0000165d: JUMPDEST 0000165e: DUP2 0000165f: SLOAD 00001660: DUP2 00001661: MSTORE 00001662: SWAP1 00001663: PUSH1 0x01 00001665: ADD 00001666: SWAP1 00001667: PUSH1 0x20 00001669: ADD 0000166a: DUP1 0000166b: DUP4 0000166c: GT 0000166d: PUSH2 0x165d 00001670: JUMPI 00001671: DUP3 00001672: SWAP1 00001673: SUB 00001674: PUSH1 0x1f 00001676: AND 00001677: DUP3 00001678: ADD 00001679: SWAP2 0000167a: JUMPDEST 0000167b: POP 0000167c: POP 0000167d: POP 0000167e: POP 0000167f: POP 00001680: DUP2 00001681: JUMP 00001682: JUMPDEST 00001683: PUSH1 0x00 00001685: PUSH1 0x0e 00001687: SLOAD 00001688: SWAP1 00001689: POP 0000168a: SWAP1 0000168b: JUMP 0000168c: JUMPDEST 0000168d: PUSH1 0x00 0000168f: DUP2 00001690: PUSH1 0x06 00001692: PUSH1 0x00 00001694: CALLER 00001695: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016aa: AND 000016ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016c0: AND 000016c1: DUP2 000016c2: MSTORE 000016c3: PUSH1 0x20 000016c5: ADD 000016c6: SWAP1 000016c7: DUP2 000016c8: MSTORE 000016c9: PUSH1 0x20 000016cb: ADD 000016cc: PUSH1 0x00 000016ce: KECCAK256 000016cf: PUSH1 0x00 000016d1: DUP6 000016d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016e7: AND 000016e8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016fd: AND 000016fe: DUP2 000016ff: MSTORE 00001700: PUSH1 0x20 00001702: ADD 00001703: SWAP1 00001704: DUP2 00001705: MSTORE 00001706: PUSH1 0x20 00001708: ADD 00001709: PUSH1 0x00 0000170b: KECCAK256 0000170c: DUP2 0000170d: SWAP1 0000170e: SSTORE 0000170f: POP 00001710: PUSH1 0x01 00001712: SWAP1 00001713: POP 00001714: SWAP3 00001715: SWAP2 00001716: POP 00001717: POP 00001718: JUMP 00001719: JUMPDEST 0000171a: PUSH1 0x16 0000171c: SLOAD 0000171d: DUP2 0000171e: JUMP 0000171f: JUMPDEST 00001720: PUSH1 0x18 00001722: SLOAD 00001723: DUP2 00001724: JUMP 00001725: JUMPDEST 00001726: PUSH1 0x04 00001728: SLOAD 00001729: DUP2 0000172a: JUMP 0000172b: JUMPDEST 0000172c: PUSH1 0x0c 0000172e: DUP2 0000172f: DUP2 00001730: SLOAD 00001731: DUP2 00001732: LT 00001733: ISZERO 00001734: ISZERO 00001735: PUSH2 0x173a 00001738: JUMPI 00001739: INVALID 0000173a: JUMPDEST 0000173b: SWAP1 0000173c: PUSH1 0x00 0000173e: MSTORE 0000173f: PUSH1 0x20 00001741: PUSH1 0x00 00001743: KECCAK256 00001744: ADD 00001745: PUSH1 0x00 00001747: SWAP2 00001748: POP 00001749: SLOAD 0000174a: SWAP1 0000174b: PUSH2 0x0100 0000174e: EXP 0000174f: SWAP1 00001750: DIV 00001751: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001766: AND 00001767: DUP2 00001768: JUMP 00001769: JUMPDEST 0000176a: PUSH1 0x00 0000176c: PUSH1 0x06 0000176e: PUSH1 0x00 00001770: DUP6 00001771: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001786: AND 00001787: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000179c: AND 0000179d: DUP2 0000179e: MSTORE 0000179f: PUSH1 0x20 000017a1: ADD 000017a2: SWAP1 000017a3: DUP2 000017a4: MSTORE 000017a5: PUSH1 0x20 000017a7: ADD 000017a8: PUSH1 0x00 000017aa: KECCAK256 000017ab: PUSH1 0x00 000017ad: CALLER 000017ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017c3: AND 000017c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017d9: AND 000017da: DUP2 000017db: MSTORE 000017dc: PUSH1 0x20 000017de: ADD 000017df: SWAP1 000017e0: DUP2 000017e1: MSTORE 000017e2: PUSH1 0x20 000017e4: ADD 000017e5: PUSH1 0x00 000017e7: KECCAK256 000017e8: SLOAD 000017e9: DUP3 000017ea: GT 000017eb: ISZERO 000017ec: PUSH2 0x17f8 000017ef: JUMPI 000017f0: PUSH1 0x00 000017f2: SWAP1 000017f3: POP 000017f4: PUSH2 0x1892 000017f7: JUMP 000017f8: JUMPDEST 000017f9: DUP2 000017fa: PUSH1 0x06 000017fc: PUSH1 0x00 000017fe: DUP7 000017ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001814: AND 00001815: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000182a: AND 0000182b: DUP2 0000182c: MSTORE 0000182d: PUSH1 0x20 0000182f: ADD 00001830: SWAP1 00001831: DUP2 00001832: MSTORE 00001833: PUSH1 0x20 00001835: ADD 00001836: PUSH1 0x00 00001838: KECCAK256 00001839: PUSH1 0x00 0000183b: CALLER 0000183c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001851: AND 00001852: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001867: AND 00001868: DUP2 00001869: MSTORE 0000186a: PUSH1 0x20 0000186c: ADD 0000186d: SWAP1 0000186e: DUP2 0000186f: MSTORE 00001870: PUSH1 0x20 00001872: ADD 00001873: PUSH1 0x00 00001875: KECCAK256 00001876: PUSH1 0x00 00001878: DUP3 00001879: DUP3 0000187a: SLOAD 0000187b: SUB 0000187c: SWAP3 0000187d: POP 0000187e: POP 0000187f: DUP2 00001880: SWAP1 00001881: SSTORE 00001882: POP 00001883: PUSH2 0x188d 00001886: DUP5 00001887: DUP5 00001888: DUP5 00001889: PUSH2 0x370e 0000188c: JUMP 0000188d: JUMPDEST 0000188e: PUSH1 0x01 00001890: SWAP1 00001891: POP 00001892: JUMPDEST 00001893: SWAP4 00001894: SWAP3 00001895: POP 00001896: POP 00001897: POP 00001898: JUMP 00001899: JUMPDEST 0000189a: PUSH1 0x0a 0000189c: SLOAD 0000189d: DUP2 0000189e: JUMP 0000189f: JUMPDEST 000018a0: PUSH1 0x03 000018a2: PUSH1 0x00 000018a4: SWAP1 000018a5: SLOAD 000018a6: SWAP1 000018a7: PUSH2 0x0100 000018aa: EXP 000018ab: SWAP1 000018ac: DIV 000018ad: PUSH1 0xff 000018af: AND 000018b0: DUP2 000018b1: JUMP 000018b2: JUMPDEST 000018b3: PUSH1 0x18 000018b5: PUSH1 0x00 000018b7: DUP2 000018b8: SLOAD 000018b9: DUP1 000018ba: SWAP3 000018bb: SWAP2 000018bc: SWAP1 000018bd: PUSH1 0x01 000018bf: ADD 000018c0: SWAP2 000018c1: SWAP1 000018c2: POP 000018c3: SSTORE 000018c4: POP 000018c5: PUSH1 0x0d 000018c7: DUP2 000018c8: SWAP1 000018c9: DUP1 000018ca: PUSH1 0x01 000018cc: DUP2 000018cd: SLOAD 000018ce: ADD 000018cf: DUP1 000018d0: DUP3 000018d1: SSTORE 000018d2: DUP1 000018d3: SWAP2 000018d4: POP 000018d5: POP 000018d6: SWAP1 000018d7: PUSH1 0x01 000018d9: DUP3 000018da: SUB 000018db: SWAP1 000018dc: PUSH1 0x00 000018de: MSTORE 000018df: PUSH1 0x20 000018e1: PUSH1 0x00 000018e3: KECCAK256 000018e4: ADD 000018e5: PUSH1 0x00 000018e7: SWAP1 000018e8: SWAP2 000018e9: SWAP3 000018ea: SWAP1 000018eb: SWAP2 000018ec: SWAP1 000018ed: SWAP2 000018ee: PUSH2 0x0100 000018f1: EXP 000018f2: DUP2 000018f3: SLOAD 000018f4: DUP2 000018f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000190a: MUL 0000190b: NOT 0000190c: AND 0000190d: SWAP1 0000190e: DUP4 0000190f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001924: AND 00001925: MUL 00001926: OR 00001927: SWAP1 00001928: SSTORE 00001929: POP 0000192a: POP 0000192b: POP 0000192c: JUMP 0000192d: JUMPDEST 0000192e: PUSH1 0x00 00001930: PUSH1 0x17 00001932: SLOAD 00001933: SWAP1 00001934: POP 00001935: SWAP1 00001936: JUMP 00001937: JUMPDEST 00001938: PUSH1 0x00 0000193a: PUSH1 0x09 0000193c: SLOAD 0000193d: SWAP1 0000193e: POP 0000193f: SWAP1 00001940: JUMP 00001941: JUMPDEST 00001942: PUSH1 0x00 00001944: DUP2 00001945: PUSH1 0x05 00001947: PUSH1 0x00 00001949: CALLER 0000194a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000195f: AND 00001960: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001975: AND 00001976: DUP2 00001977: MSTORE 00001978: PUSH1 0x20 0000197a: ADD 0000197b: SWAP1 0000197c: DUP2 0000197d: MSTORE 0000197e: PUSH1 0x20 00001980: ADD 00001981: PUSH1 0x00 00001983: KECCAK256 00001984: SLOAD 00001985: LT 00001986: ISZERO 00001987: ISZERO 00001988: ISZERO 00001989: PUSH2 0x1991 0000198c: JUMPI 0000198d: PUSH1 0x00 0000198f: DUP1 00001990: REVERT 00001991: JUMPDEST 00001992: DUP2 00001993: PUSH1 0x05 00001995: PUSH1 0x00 00001997: CALLER 00001998: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019ad: AND 000019ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019c3: AND 000019c4: DUP2 000019c5: MSTORE 000019c6: PUSH1 0x20 000019c8: ADD 000019c9: SWAP1 000019ca: DUP2 000019cb: MSTORE 000019cc: PUSH1 0x20 000019ce: ADD 000019cf: PUSH1 0x00 000019d1: KECCAK256 000019d2: PUSH1 0x00 000019d4: DUP3 000019d5: DUP3 000019d6: SLOAD 000019d7: SUB 000019d8: SWAP3 000019d9: POP 000019da: POP 000019db: DUP2 000019dc: SWAP1 000019dd: SSTORE 000019de: POP 000019df: DUP2 000019e0: PUSH1 0x04 000019e2: PUSH1 0x00 000019e4: DUP3 000019e5: DUP3 000019e6: SLOAD 000019e7: SUB 000019e8: SWAP3 000019e9: POP 000019ea: POP 000019eb: DUP2 000019ec: SWAP1 000019ed: SSTORE 000019ee: POP 000019ef: CALLER 000019f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a05: AND 00001a06: PUSH32 0xcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5 00001a27: DUP4 00001a28: PUSH1 0x40 00001a2a: MLOAD 00001a2b: DUP1 00001a2c: DUP3 00001a2d: DUP2 00001a2e: MSTORE 00001a2f: PUSH1 0x20 00001a31: ADD 00001a32: SWAP2 00001a33: POP 00001a34: POP 00001a35: PUSH1 0x40 00001a37: MLOAD 00001a38: DUP1 00001a39: SWAP2 00001a3a: SUB 00001a3b: SWAP1 00001a3c: LOG2 00001a3d: PUSH1 0x01 00001a3f: SWAP1 00001a40: POP 00001a41: SWAP2 00001a42: SWAP1 00001a43: POP 00001a44: JUMP 00001a45: JUMPDEST 00001a46: PUSH1 0x00 00001a48: PUSH1 0x15 00001a4a: SLOAD 00001a4b: SWAP1 00001a4c: POP 00001a4d: SWAP1 00001a4e: JUMP 00001a4f: JUMPDEST 00001a50: PUSH1 0x00 00001a52: PUSH1 0x19 00001a54: SLOAD 00001a55: SWAP1 00001a56: POP 00001a57: SWAP1 00001a58: JUMP 00001a59: JUMPDEST 00001a5a: PUSH1 0x00 00001a5c: PUSH1 0x08 00001a5e: SLOAD 00001a5f: SWAP1 00001a60: POP 00001a61: SWAP1 00001a62: JUMP 00001a63: JUMPDEST 00001a64: PUSH1 0x00 00001a66: DUP1 00001a67: SWAP1 00001a68: SLOAD 00001a69: SWAP1 00001a6a: PUSH2 0x0100 00001a6d: EXP 00001a6e: SWAP1 00001a6f: DIV 00001a70: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a85: AND 00001a86: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a9b: AND 00001a9c: CALLER 00001a9d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ab2: AND 00001ab3: EQ 00001ab4: ISZERO 00001ab5: ISZERO 00001ab6: PUSH2 0x1abe 00001ab9: JUMPI 00001aba: PUSH1 0x00 00001abc: DUP1 00001abd: REVERT 00001abe: JUMPDEST 00001abf: CALLER 00001ac0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ad5: AND 00001ad6: PUSH2 0x08fc 00001ad9: PUSH1 0x0e 00001adb: SLOAD 00001adc: SWAP1 00001add: DUP2 00001ade: ISZERO 00001adf: MUL 00001ae0: SWAP1 00001ae1: PUSH1 0x40 00001ae3: MLOAD 00001ae4: PUSH1 0x00 00001ae6: PUSH1 0x40 00001ae8: MLOAD 00001ae9: DUP1 00001aea: DUP4 00001aeb: SUB 00001aec: DUP2 00001aed: DUP6 00001aee: DUP9 00001aef: DUP9 00001af0: CALL 00001af1: SWAP4 00001af2: POP 00001af3: POP 00001af4: POP 00001af5: POP 00001af6: ISZERO 00001af7: DUP1 00001af8: ISZERO 00001af9: PUSH2 0x1b06 00001afc: JUMPI 00001afd: RETURNDATASIZE 00001afe: PUSH1 0x00 00001b00: DUP1 00001b01: RETURNDATACOPY 00001b02: RETURNDATASIZE 00001b03: PUSH1 0x00 00001b05: REVERT 00001b06: JUMPDEST 00001b07: POP 00001b08: PUSH1 0x00 00001b0a: PUSH1 0x0e 00001b0c: DUP2 00001b0d: SWAP1 00001b0e: SSTORE 00001b0f: POP 00001b10: POP 00001b11: JUMP 00001b12: JUMPDEST 00001b13: PUSH1 0x05 00001b15: PUSH1 0x20 00001b17: MSTORE 00001b18: DUP1 00001b19: PUSH1 0x00 00001b1b: MSTORE 00001b1c: PUSH1 0x40 00001b1e: PUSH1 0x00 00001b20: KECCAK256 00001b21: PUSH1 0x00 00001b23: SWAP2 00001b24: POP 00001b25: SWAP1 00001b26: POP 00001b27: SLOAD 00001b28: DUP2 00001b29: JUMP 00001b2a: JUMPDEST 00001b2b: PUSH1 0x00 00001b2d: DUP1 00001b2e: PUSH1 0x00 00001b30: DUP1 00001b31: PUSH1 0x00 00001b33: DUP1 00001b34: PUSH1 0x00 00001b36: SWAP1 00001b37: SLOAD 00001b38: SWAP1 00001b39: PUSH2 0x0100 00001b3c: EXP 00001b3d: SWAP1 00001b3e: DIV 00001b3f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b54: AND 00001b55: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b6a: AND 00001b6b: CALLER 00001b6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b81: AND 00001b82: EQ 00001b83: ISZERO 00001b84: ISZERO 00001b85: PUSH2 0x1b8d 00001b88: JUMPI 00001b89: PUSH1 0x00 00001b8b: DUP1 00001b8c: REVERT 00001b8d: JUMPDEST 00001b8e: PUSH1 0x00 00001b90: SWAP5 00001b91: POP 00001b92: PUSH1 0x00 00001b94: SWAP4 00001b95: POP 00001b96: PUSH1 0x09 00001b98: SLOAD 00001b99: SWAP3 00001b9a: POP 00001b9b: PUSH1 0x00 00001b9d: PUSH1 0x19 00001b9f: SLOAD 00001ba0: GT 00001ba1: ISZERO 00001ba2: PUSH2 0x1c9e 00001ba5: JUMPI 00001ba6: PUSH1 0x19 00001ba8: SLOAD 00001ba9: PUSH1 0x02 00001bab: DUP5 00001bac: DUP2 00001bad: ISZERO 00001bae: ISZERO 00001baf: PUSH2 0x1bb4 00001bb2: JUMPI 00001bb3: INVALID 00001bb4: JUMPDEST 00001bb5: DIV 00001bb6: DUP2 00001bb7: ISZERO 00001bb8: ISZERO 00001bb9: PUSH2 0x1bbe 00001bbc: JUMPI 00001bbd: INVALID 00001bbe: JUMPDEST 00001bbf: DIV 00001bc0: SWAP2 00001bc1: POP 00001bc2: JUMPDEST 00001bc3: PUSH1 0x19 00001bc5: SLOAD 00001bc6: DUP6 00001bc7: LT 00001bc8: ISZERO 00001bc9: PUSH2 0x1c9d 00001bcc: JUMPI 00001bcd: DUP2 00001bce: PUSH1 0x09 00001bd0: PUSH1 0x00 00001bd2: DUP3 00001bd3: DUP3 00001bd4: SLOAD 00001bd5: SUB 00001bd6: SWAP3 00001bd7: POP 00001bd8: POP 00001bd9: DUP2 00001bda: SWAP1 00001bdb: SSTORE 00001bdc: POP 00001bdd: PUSH1 0x00 00001bdf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bf4: AND 00001bf5: PUSH1 0x0c 00001bf7: DUP7 00001bf8: DUP2 00001bf9: SLOAD 00001bfa: DUP2 00001bfb: LT 00001bfc: ISZERO 00001bfd: ISZERO 00001bfe: PUSH2 0x1c03 00001c01: JUMPI 00001c02: INVALID 00001c03: JUMPDEST 00001c04: SWAP1 00001c05: PUSH1 0x00 00001c07: MSTORE 00001c08: PUSH1 0x20 00001c0a: PUSH1 0x00 00001c0c: KECCAK256 00001c0d: ADD 00001c0e: PUSH1 0x00 00001c10: SWAP1 00001c11: SLOAD 00001c12: SWAP1 00001c13: PUSH2 0x0100 00001c16: EXP 00001c17: SWAP1 00001c18: DIV 00001c19: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c2e: AND 00001c2f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c44: AND 00001c45: EQ 00001c46: ISZERO 00001c47: ISZERO 00001c48: PUSH2 0x1c90 00001c4b: JUMPI 00001c4c: PUSH2 0x1c8f 00001c4f: ADDRESS 00001c50: PUSH1 0x0c 00001c52: DUP8 00001c53: DUP2 00001c54: SLOAD 00001c55: DUP2 00001c56: LT 00001c57: ISZERO 00001c58: ISZERO 00001c59: PUSH2 0x1c5e 00001c5c: JUMPI 00001c5d: INVALID 00001c5e: JUMPDEST 00001c5f: SWAP1 00001c60: PUSH1 0x00 00001c62: MSTORE 00001c63: PUSH1 0x20 00001c65: PUSH1 0x00 00001c67: KECCAK256 00001c68: ADD 00001c69: PUSH1 0x00 00001c6b: SWAP1 00001c6c: SLOAD 00001c6d: SWAP1 00001c6e: PUSH2 0x0100 00001c71: EXP 00001c72: SWAP1 00001c73: DIV 00001c74: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c89: AND 00001c8a: DUP5 00001c8b: PUSH2 0x370e 00001c8e: JUMP 00001c8f: JUMPDEST 00001c90: JUMPDEST 00001c91: DUP5 00001c92: DUP1 00001c93: PUSH1 0x01 00001c95: ADD 00001c96: SWAP6 00001c97: POP 00001c98: POP 00001c99: PUSH2 0x1bc2 00001c9c: JUMP 00001c9d: JUMPDEST 00001c9e: JUMPDEST 00001c9f: PUSH1 0x00 00001ca1: PUSH1 0x18 00001ca3: SLOAD 00001ca4: GT 00001ca5: ISZERO 00001ca6: PUSH2 0x1da2 00001ca9: JUMPI 00001caa: PUSH1 0x18 00001cac: SLOAD 00001cad: PUSH1 0x04 00001caf: DUP5 00001cb0: DUP2 00001cb1: ISZERO 00001cb2: ISZERO 00001cb3: PUSH2 0x1cb8 00001cb6: JUMPI 00001cb7: INVALID 00001cb8: JUMPDEST 00001cb9: DIV 00001cba: DUP2 00001cbb: ISZERO 00001cbc: ISZERO 00001cbd: PUSH2 0x1cc2 00001cc0: JUMPI 00001cc1: INVALID 00001cc2: JUMPDEST 00001cc3: DIV 00001cc4: SWAP1 00001cc5: POP 00001cc6: JUMPDEST 00001cc7: PUSH1 0x18 00001cc9: SLOAD 00001cca: DUP5 00001ccb: LT 00001ccc: ISZERO 00001ccd: PUSH2 0x1da1 00001cd0: JUMPI 00001cd1: DUP1 00001cd2: PUSH1 0x09 00001cd4: PUSH1 0x00 00001cd6: DUP3 00001cd7: DUP3 00001cd8: SLOAD 00001cd9: SUB 00001cda: SWAP3 00001cdb: POP 00001cdc: POP 00001cdd: DUP2 00001cde: SWAP1 00001cdf: SSTORE 00001ce0: POP 00001ce1: PUSH1 0x00 00001ce3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cf8: AND 00001cf9: PUSH1 0x0d 00001cfb: DUP6 00001cfc: DUP2 00001cfd: SLOAD 00001cfe: DUP2 00001cff: LT 00001d00: ISZERO 00001d01: ISZERO 00001d02: PUSH2 0x1d07 00001d05: JUMPI 00001d06: INVALID 00001d07: JUMPDEST 00001d08: SWAP1 00001d09: PUSH1 0x00 00001d0b: MSTORE 00001d0c: PUSH1 0x20 00001d0e: PUSH1 0x00 00001d10: KECCAK256 00001d11: ADD 00001d12: PUSH1 0x00 00001d14: SWAP1 00001d15: SLOAD 00001d16: SWAP1 00001d17: PUSH2 0x0100 00001d1a: EXP 00001d1b: SWAP1 00001d1c: DIV 00001d1d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d32: AND 00001d33: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d48: AND 00001d49: EQ 00001d4a: ISZERO 00001d4b: ISZERO 00001d4c: PUSH2 0x1d94 00001d4f: JUMPI 00001d50: PUSH2 0x1d93 00001d53: ADDRESS 00001d54: PUSH1 0x0d 00001d56: DUP7 00001d57: DUP2 00001d58: SLOAD 00001d59: DUP2 00001d5a: LT 00001d5b: ISZERO 00001d5c: ISZERO 00001d5d: PUSH2 0x1d62 00001d60: JUMPI 00001d61: INVALID 00001d62: JUMPDEST 00001d63: SWAP1 00001d64: PUSH1 0x00 00001d66: MSTORE 00001d67: PUSH1 0x20 00001d69: PUSH1 0x00 00001d6b: KECCAK256 00001d6c: ADD 00001d6d: PUSH1 0x00 00001d6f: SWAP1 00001d70: SLOAD 00001d71: SWAP1 00001d72: PUSH2 0x0100 00001d75: EXP 00001d76: SWAP1 00001d77: DIV 00001d78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d8d: AND 00001d8e: DUP4 00001d8f: PUSH2 0x370e 00001d92: JUMP 00001d93: JUMPDEST 00001d94: JUMPDEST 00001d95: DUP4 00001d96: DUP1 00001d97: PUSH1 0x01 00001d99: ADD 00001d9a: SWAP5 00001d9b: POP 00001d9c: POP 00001d9d: PUSH2 0x1cc6 00001da0: JUMP 00001da1: JUMPDEST 00001da2: JUMPDEST 00001da3: PUSH2 0x1dae 00001da6: ADDRESS 00001da7: PUSH1 0x09 00001da9: SLOAD 00001daa: PUSH2 0x1fc0 00001dad: JUMP 00001dae: JUMPDEST 00001daf: POP 00001db0: PUSH1 0x00 00001db2: PUSH1 0x09 00001db4: DUP2 00001db5: SWAP1 00001db6: SSTORE 00001db7: POP 00001db8: POP 00001db9: POP 00001dba: POP 00001dbb: POP 00001dbc: POP 00001dbd: JUMP 00001dbe: JUMPDEST 00001dbf: PUSH1 0x00 00001dc1: DUP1 00001dc2: PUSH1 0x00 00001dc4: DUP1 00001dc5: PUSH8 0x0de0b6b3a7640000 00001dce: PUSH1 0x07 00001dd0: SLOAD 00001dd1: DUP2 00001dd2: ISZERO 00001dd3: ISZERO 00001dd4: PUSH2 0x1dd9 00001dd7: JUMPI 00001dd8: INVALID 00001dd9: JUMPDEST 00001dda: DIV 00001ddb: PUSH1 0x13 00001ddd: PUSH1 0x00 00001ddf: PUSH1 0x01 00001de1: DUP2 00001de2: MSTORE 00001de3: PUSH1 0x20 00001de5: ADD 00001de6: SWAP1 00001de7: DUP2 00001de8: MSTORE 00001de9: PUSH1 0x20 00001deb: ADD 00001dec: PUSH1 0x00 00001dee: KECCAK256 00001def: SLOAD 00001df0: PUSH1 0x01 00001df2: PUSH1 0x15 00001df4: SLOAD 00001df5: ADD 00001df6: PUSH1 0x13 00001df8: PUSH1 0x00 00001dfa: PUSH1 0x01 00001dfc: PUSH1 0x15 00001dfe: SLOAD 00001dff: ADD 00001e00: DUP2 00001e01: MSTORE 00001e02: PUSH1 0x20 00001e04: ADD 00001e05: SWAP1 00001e06: DUP2 00001e07: MSTORE 00001e08: PUSH1 0x20 00001e0a: ADD 00001e0b: PUSH1 0x00 00001e0d: KECCAK256 00001e0e: SLOAD 00001e0f: PUSH8 0x0de0b6b3a7640000 00001e18: PUSH1 0x07 00001e1a: SLOAD 00001e1b: DUP2 00001e1c: ISZERO 00001e1d: ISZERO 00001e1e: PUSH2 0x1e23 00001e21: JUMPI 00001e22: INVALID 00001e23: JUMPDEST 00001e24: DIV 00001e25: GT 00001e26: SWAP4 00001e27: POP 00001e28: SWAP4 00001e29: POP 00001e2a: SWAP4 00001e2b: POP 00001e2c: SWAP4 00001e2d: POP 00001e2e: SWAP1 00001e2f: SWAP2 00001e30: SWAP3 00001e31: SWAP4 00001e32: JUMP 00001e33: JUMPDEST 00001e34: PUSH1 0x19 00001e36: SLOAD 00001e37: DUP2 00001e38: JUMP 00001e39: JUMPDEST 00001e3a: PUSH1 0x00 00001e3c: DUP1 00001e3d: SWAP1 00001e3e: SLOAD 00001e3f: SWAP1 00001e40: PUSH2 0x0100 00001e43: EXP 00001e44: SWAP1 00001e45: DIV 00001e46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e5b: AND 00001e5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e71: AND 00001e72: CALLER 00001e73: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e88: AND 00001e89: EQ 00001e8a: ISZERO 00001e8b: ISZERO 00001e8c: PUSH2 0x1e94 00001e8f: JUMPI 00001e90: PUSH1 0x00 00001e92: DUP1 00001e93: REVERT 00001e94: JUMPDEST 00001e95: DUP1 00001e96: PUSH1 0x05 00001e98: PUSH1 0x00 00001e9a: DUP5 00001e9b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001eb0: AND 00001eb1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ec6: AND 00001ec7: DUP2 00001ec8: MSTORE 00001ec9: PUSH1 0x20 00001ecb: ADD 00001ecc: SWAP1 00001ecd: DUP2 00001ece: MSTORE 00001ecf: PUSH1 0x20 00001ed1: ADD 00001ed2: PUSH1 0x00 00001ed4: KECCAK256 00001ed5: PUSH1 0x00 00001ed7: DUP3 00001ed8: DUP3 00001ed9: SLOAD 00001eda: ADD 00001edb: SWAP3 00001edc: POP 00001edd: POP 00001ede: DUP2 00001edf: SWAP1 00001ee0: SSTORE 00001ee1: POP 00001ee2: DUP1 00001ee3: PUSH1 0x04 00001ee5: PUSH1 0x00 00001ee7: DUP3 00001ee8: DUP3 00001ee9: SLOAD 00001eea: ADD 00001eeb: SWAP3 00001eec: POP 00001eed: POP 00001eee: DUP2 00001eef: SWAP1 00001ef0: SSTORE 00001ef1: POP 00001ef2: ADDRESS 00001ef3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f08: AND 00001f09: PUSH1 0x00 00001f0b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f20: AND 00001f21: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00001f42: DUP4 00001f43: PUSH1 0x40 00001f45: MLOAD 00001f46: DUP1 00001f47: DUP3 00001f48: DUP2 00001f49: MSTORE 00001f4a: PUSH1 0x20 00001f4c: ADD 00001f4d: SWAP2 00001f4e: POP 00001f4f: POP 00001f50: PUSH1 0x40 00001f52: MLOAD 00001f53: DUP1 00001f54: SWAP2 00001f55: SUB 00001f56: SWAP1 00001f57: LOG3 00001f58: DUP2 00001f59: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f6e: AND 00001f6f: ADDRESS 00001f70: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f85: AND 00001f86: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00001fa7: DUP4 00001fa8: PUSH1 0x40 00001faa: MLOAD 00001fab: DUP1 00001fac: DUP3 00001fad: DUP2 00001fae: MSTORE 00001faf: PUSH1 0x20 00001fb1: ADD 00001fb2: SWAP2 00001fb3: POP 00001fb4: POP 00001fb5: PUSH1 0x40 00001fb7: MLOAD 00001fb8: DUP1 00001fb9: SWAP2 00001fba: SUB 00001fbb: SWAP1 00001fbc: LOG3 00001fbd: POP 00001fbe: POP 00001fbf: JUMP 00001fc0: JUMPDEST 00001fc1: PUSH1 0x00 00001fc3: DUP2 00001fc4: PUSH1 0x05 00001fc6: PUSH1 0x00 00001fc8: DUP6 00001fc9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fde: AND 00001fdf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ff4: AND 00001ff5: DUP2 00001ff6: MSTORE 00001ff7: PUSH1 0x20 00001ff9: ADD 00001ffa: SWAP1 00001ffb: DUP2 00001ffc: MSTORE 00001ffd: PUSH1 0x20 00001fff: ADD 00002000: PUSH1 0x00 00002002: KECCAK256 00002003: SLOAD 00002004: LT 00002005: ISZERO 00002006: PUSH2 0x200e 00002009: JUMPI 0000200a: PUSH2 0x2148 0000200d: JUMP 0000200e: JUMPDEST 0000200f: DUP2 00002010: PUSH1 0x05 00002012: PUSH1 0x00 00002014: DUP6 00002015: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000202a: AND 0000202b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002040: AND 00002041: DUP2 00002042: MSTORE 00002043: PUSH1 0x20 00002045: ADD 00002046: SWAP1 00002047: DUP2 00002048: MSTORE 00002049: PUSH1 0x20 0000204b: ADD 0000204c: PUSH1 0x00 0000204e: KECCAK256 0000204f: PUSH1 0x00 00002051: DUP3 00002052: DUP3 00002053: SLOAD 00002054: SUB 00002055: SWAP3 00002056: POP 00002057: POP 00002058: DUP2 00002059: SWAP1 0000205a: SSTORE 0000205b: POP 0000205c: DUP2 0000205d: PUSH1 0x06 0000205f: PUSH1 0x00 00002061: DUP6 00002062: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002077: AND 00002078: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000208d: AND 0000208e: DUP2 0000208f: MSTORE 00002090: PUSH1 0x20 00002092: ADD 00002093: SWAP1 00002094: DUP2 00002095: MSTORE 00002096: PUSH1 0x20 00002098: ADD 00002099: PUSH1 0x00 0000209b: KECCAK256 0000209c: PUSH1 0x00 0000209e: CALLER 0000209f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020b4: AND 000020b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020ca: AND 000020cb: DUP2 000020cc: MSTORE 000020cd: PUSH1 0x20 000020cf: ADD 000020d0: SWAP1 000020d1: DUP2 000020d2: MSTORE 000020d3: PUSH1 0x20 000020d5: ADD 000020d6: PUSH1 0x00 000020d8: KECCAK256 000020d9: PUSH1 0x00 000020db: DUP3 000020dc: DUP3 000020dd: SLOAD 000020de: SUB 000020df: SWAP3 000020e0: POP 000020e1: POP 000020e2: DUP2 000020e3: SWAP1 000020e4: SSTORE 000020e5: POP 000020e6: DUP2 000020e7: PUSH1 0x04 000020e9: PUSH1 0x00 000020eb: DUP3 000020ec: DUP3 000020ed: SLOAD 000020ee: SUB 000020ef: SWAP3 000020f0: POP 000020f1: POP 000020f2: DUP2 000020f3: SWAP1 000020f4: SSTORE 000020f5: POP 000020f6: DUP3 000020f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000210c: AND 0000210d: PUSH32 0xcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5 0000212e: DUP4 0000212f: PUSH1 0x40 00002131: MLOAD 00002132: DUP1 00002133: DUP3 00002134: DUP2 00002135: MSTORE 00002136: PUSH1 0x20 00002138: ADD 00002139: SWAP2 0000213a: POP 0000213b: POP 0000213c: PUSH1 0x40 0000213e: MLOAD 0000213f: DUP1 00002140: SWAP2 00002141: SUB 00002142: SWAP1 00002143: LOG2 00002144: PUSH1 0x01 00002146: SWAP1 00002147: POP 00002148: JUMPDEST 00002149: SWAP3 0000214a: SWAP2 0000214b: POP 0000214c: POP 0000214d: JUMP 0000214e: JUMPDEST 0000214f: PUSH1 0x17 00002151: SLOAD 00002152: DUP2 00002153: JUMP 00002154: JUMPDEST 00002155: PUSH1 0x00 00002157: PUSH1 0x11 00002159: PUSH1 0x00 0000215b: DUP4 0000215c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002171: AND 00002172: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002187: AND 00002188: DUP2 00002189: MSTORE 0000218a: PUSH1 0x20 0000218c: ADD 0000218d: SWAP1 0000218e: DUP2 0000218f: MSTORE 00002190: PUSH1 0x20 00002192: ADD 00002193: PUSH1 0x00 00002195: KECCAK256 00002196: PUSH1 0x03 00002198: ADD 00002199: PUSH1 0x00 0000219b: SWAP1 0000219c: SLOAD 0000219d: SWAP1 0000219e: PUSH2 0x0100 000021a1: EXP 000021a2: SWAP1 000021a3: DIV 000021a4: PUSH1 0xff 000021a6: AND 000021a7: SWAP1 000021a8: POP 000021a9: SWAP2 000021aa: SWAP1 000021ab: POP 000021ac: JUMP 000021ad: JUMPDEST 000021ae: PUSH1 0x07 000021b0: SLOAD 000021b1: DUP2 000021b2: JUMP 000021b3: JUMPDEST 000021b4: PUSH1 0x00 000021b6: DUP1 000021b7: SWAP1 000021b8: SLOAD 000021b9: SWAP1 000021ba: PUSH2 0x0100 000021bd: EXP 000021be: SWAP1 000021bf: DIV 000021c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021d5: AND 000021d6: DUP2 000021d7: JUMP 000021d8: JUMPDEST 000021d9: PUSH1 0x00 000021db: PUSH1 0x07 000021dd: SLOAD 000021de: SWAP1 000021df: POP 000021e0: SWAP1 000021e1: JUMP 000021e2: JUMPDEST 000021e3: DUP1 000021e4: PUSH1 0x05 000021e6: PUSH1 0x00 000021e8: CALLER 000021e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021fe: AND 000021ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002214: AND 00002215: DUP2 00002216: MSTORE 00002217: PUSH1 0x20 00002219: ADD 0000221a: SWAP1 0000221b: DUP2 0000221c: MSTORE 0000221d: PUSH1 0x20 0000221f: ADD 00002220: PUSH1 0x00 00002222: KECCAK256 00002223: PUSH1 0x00 00002225: DUP3 00002226: DUP3 00002227: SLOAD 00002228: ADD 00002229: SWAP3 0000222a: POP 0000222b: POP 0000222c: DUP2 0000222d: SWAP1 0000222e: SSTORE 0000222f: POP 00002230: DUP1 00002231: PUSH1 0x05 00002233: PUSH1 0x00 00002235: ADDRESS 00002236: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000224b: AND 0000224c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002261: AND 00002262: DUP2 00002263: MSTORE 00002264: PUSH1 0x20 00002266: ADD 00002267: SWAP1 00002268: DUP2 00002269: MSTORE 0000226a: PUSH1 0x20 0000226c: ADD 0000226d: PUSH1 0x00 0000226f: KECCAK256 00002270: PUSH1 0x00 00002272: DUP3 00002273: DUP3 00002274: SLOAD 00002275: SUB 00002276: SWAP3 00002277: POP 00002278: POP 00002279: DUP2 0000227a: SWAP1 0000227b: SSTORE 0000227c: POP 0000227d: CALLER 0000227e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002293: AND 00002294: ADDRESS 00002295: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022aa: AND 000022ab: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000022cc: DUP4 000022cd: PUSH1 0x40 000022cf: MLOAD 000022d0: DUP1 000022d1: DUP3 000022d2: DUP2 000022d3: MSTORE 000022d4: PUSH1 0x20 000022d6: ADD 000022d7: SWAP2 000022d8: POP 000022d9: POP 000022da: PUSH1 0x40 000022dc: MLOAD 000022dd: DUP1 000022de: SWAP2 000022df: SUB 000022e0: SWAP1 000022e1: LOG3 000022e2: POP 000022e3: JUMP 000022e4: JUMPDEST 000022e5: PUSH1 0x00 000022e7: PUSH1 0x0b 000022e9: SLOAD 000022ea: SWAP1 000022eb: POP 000022ec: SWAP1 000022ed: JUMP 000022ee: JUMPDEST 000022ef: PUSH1 0x02 000022f1: DUP1 000022f2: SLOAD 000022f3: PUSH1 0x01 000022f5: DUP2 000022f6: PUSH1 0x01 000022f8: AND 000022f9: ISZERO 000022fa: PUSH2 0x0100 000022fd: MUL 000022fe: SUB 000022ff: AND 00002300: PUSH1 0x02 00002302: SWAP1 00002303: DIV 00002304: DUP1 00002305: PUSH1 0x1f 00002307: ADD 00002308: PUSH1 0x20 0000230a: DUP1 0000230b: SWAP2 0000230c: DIV 0000230d: MUL 0000230e: PUSH1 0x20 00002310: ADD 00002311: PUSH1 0x40 00002313: MLOAD 00002314: SWAP1 00002315: DUP2 00002316: ADD 00002317: PUSH1 0x40 00002319: MSTORE 0000231a: DUP1 0000231b: SWAP3 0000231c: SWAP2 0000231d: SWAP1 0000231e: DUP2 0000231f: DUP2 00002320: MSTORE 00002321: PUSH1 0x20 00002323: ADD 00002324: DUP3 00002325: DUP1 00002326: SLOAD 00002327: PUSH1 0x01 00002329: DUP2 0000232a: PUSH1 0x01 0000232c: AND 0000232d: ISZERO 0000232e: PUSH2 0x0100 00002331: MUL 00002332: SUB 00002333: AND 00002334: PUSH1 0x02 00002336: SWAP1 00002337: DIV 00002338: DUP1 00002339: ISZERO 0000233a: PUSH2 0x2384 0000233d: JUMPI 0000233e: DUP1 0000233f: PUSH1 0x1f 00002341: LT 00002342: PUSH2 0x2359 00002345: JUMPI 00002346: PUSH2 0x0100 00002349: DUP1 0000234a: DUP4 0000234b: SLOAD 0000234c: DIV 0000234d: MUL 0000234e: DUP4 0000234f: MSTORE 00002350: SWAP2 00002351: PUSH1 0x20 00002353: ADD 00002354: SWAP2 00002355: PUSH2 0x2384 00002358: JUMP 00002359: JUMPDEST 0000235a: DUP3 0000235b: ADD 0000235c: SWAP2 0000235d: SWAP1 0000235e: PUSH1 0x00 00002360: MSTORE 00002361: PUSH1 0x20 00002363: PUSH1 0x00 00002365: KECCAK256 00002366: SWAP1 00002367: JUMPDEST 00002368: DUP2 00002369: SLOAD 0000236a: DUP2 0000236b: MSTORE 0000236c: SWAP1 0000236d: PUSH1 0x01 0000236f: ADD 00002370: SWAP1 00002371: PUSH1 0x20 00002373: ADD 00002374: DUP1 00002375: DUP4 00002376: GT 00002377: PUSH2 0x2367 0000237a: JUMPI 0000237b: DUP3 0000237c: SWAP1 0000237d: SUB 0000237e: PUSH1 0x1f 00002380: AND 00002381: DUP3 00002382: ADD 00002383: SWAP2 00002384: JUMPDEST 00002385: POP 00002386: POP 00002387: POP 00002388: POP 00002389: POP 0000238a: DUP2 0000238b: JUMP 0000238c: JUMPDEST 0000238d: PUSH1 0x00 0000238f: PUSH1 0x08 00002391: SLOAD 00002392: DUP3 00002393: MUL 00002394: SWAP1 00002395: POP 00002396: SWAP2 00002397: SWAP1 00002398: POP 00002399: JUMP 0000239a: JUMPDEST 0000239b: PUSH1 0x00 0000239d: PUSH1 0x08 0000239f: SLOAD 000023a0: CALLVALUE 000023a1: MUL 000023a2: SWAP1 000023a3: POP 000023a4: PUSH1 0x16 000023a6: SLOAD 000023a7: DUP2 000023a8: PUSH1 0x07 000023aa: SLOAD 000023ab: ADD 000023ac: GT 000023ad: ISZERO 000023ae: PUSH2 0x23b6 000023b1: JUMPI 000023b2: PUSH2 0x23ea 000023b5: JUMP 000023b6: JUMPDEST 000023b7: DUP1 000023b8: PUSH1 0x07 000023ba: PUSH1 0x00 000023bc: DUP3 000023bd: DUP3 000023be: SLOAD 000023bf: ADD 000023c0: SWAP3 000023c1: POP 000023c2: POP 000023c3: DUP2 000023c4: SWAP1 000023c5: SSTORE 000023c6: POP 000023c7: CALLVALUE 000023c8: PUSH1 0x0e 000023ca: PUSH1 0x00 000023cc: DUP3 000023cd: DUP3 000023ce: SLOAD 000023cf: ADD 000023d0: SWAP3 000023d1: POP 000023d2: POP 000023d3: DUP2 000023d4: SWAP1 000023d5: SSTORE 000023d6: POP 000023d7: PUSH2 0x23de 000023da: PUSH2 0x2b9c 000023dd: JUMP 000023de: JUMPDEST 000023df: PUSH2 0x23e9 000023e2: ADDRESS 000023e3: CALLER 000023e4: DUP4 000023e5: PUSH2 0x370e 000023e8: JUMP 000023e9: JUMPDEST 000023ea: JUMPDEST 000023eb: POP 000023ec: JUMP 000023ed: JUMPDEST 000023ee: PUSH1 0x00 000023f0: DUP1 000023f1: PUSH1 0x00 000023f3: ADDRESS 000023f4: SWAP3 000023f5: POP 000023f6: CALLER 000023f7: SWAP2 000023f8: POP 000023f9: PUSH1 0x00 000023fb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002410: AND 00002411: DUP3 00002412: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002427: AND 00002428: EQ 00002429: ISZERO 0000242a: PUSH2 0x2432 0000242d: JUMPI 0000242e: PUSH2 0x263c 00002431: JUMP 00002432: JUMPDEST 00002433: DUP4 00002434: PUSH1 0x05 00002436: PUSH1 0x00 00002438: DUP6 00002439: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000244e: AND 0000244f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002464: AND 00002465: DUP2 00002466: MSTORE 00002467: PUSH1 0x20 00002469: ADD 0000246a: SWAP1 0000246b: DUP2 0000246c: MSTORE 0000246d: PUSH1 0x20 0000246f: ADD 00002470: PUSH1 0x00 00002472: KECCAK256 00002473: SLOAD 00002474: LT 00002475: ISZERO 00002476: PUSH2 0x247e 00002479: JUMPI 0000247a: PUSH2 0x263c 0000247d: JUMP 0000247e: JUMPDEST 0000247f: PUSH1 0x05 00002481: PUSH1 0x00 00002483: DUP4 00002484: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002499: AND 0000249a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024af: AND 000024b0: DUP2 000024b1: MSTORE 000024b2: PUSH1 0x20 000024b4: ADD 000024b5: SWAP1 000024b6: DUP2 000024b7: MSTORE 000024b8: PUSH1 0x20 000024ba: ADD 000024bb: PUSH1 0x00 000024bd: KECCAK256 000024be: SLOAD 000024bf: DUP5 000024c0: PUSH1 0x05 000024c2: PUSH1 0x00 000024c4: DUP6 000024c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024da: AND 000024db: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024f0: AND 000024f1: DUP2 000024f2: MSTORE 000024f3: PUSH1 0x20 000024f5: ADD 000024f6: SWAP1 000024f7: DUP2 000024f8: MSTORE 000024f9: PUSH1 0x20 000024fb: ADD 000024fc: PUSH1 0x00 000024fe: KECCAK256 000024ff: SLOAD 00002500: ADD 00002501: LT 00002502: ISZERO 00002503: PUSH2 0x250b 00002506: JUMPI 00002507: PUSH2 0x263c 0000250a: JUMP 0000250b: JUMPDEST 0000250c: PUSH1 0x64 0000250e: PUSH1 0x5f 00002510: DUP6 00002511: MUL 00002512: DUP2 00002513: ISZERO 00002514: ISZERO 00002515: PUSH2 0x251a 00002518: JUMPI 00002519: INVALID 0000251a: JUMPDEST 0000251b: DIV 0000251c: SWAP1 0000251d: POP 0000251e: PUSH1 0x64 00002520: PUSH1 0x05 00002522: DUP6 00002523: MUL 00002524: DUP2 00002525: ISZERO 00002526: ISZERO 00002527: PUSH2 0x252c 0000252a: JUMPI 0000252b: INVALID 0000252c: JUMPDEST 0000252d: DIV 0000252e: PUSH1 0x17 00002530: PUSH1 0x00 00002532: DUP3 00002533: DUP3 00002534: SLOAD 00002535: ADD 00002536: SWAP3 00002537: POP 00002538: POP 00002539: DUP2 0000253a: SWAP1 0000253b: SSTORE 0000253c: POP 0000253d: DUP1 0000253e: PUSH1 0x05 00002540: PUSH1 0x00 00002542: DUP6 00002543: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002558: AND 00002559: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000256e: AND 0000256f: DUP2 00002570: MSTORE 00002571: PUSH1 0x20 00002573: ADD 00002574: SWAP1 00002575: DUP2 00002576: MSTORE 00002577: PUSH1 0x20 00002579: ADD 0000257a: PUSH1 0x00 0000257c: KECCAK256 0000257d: PUSH1 0x00 0000257f: DUP3 00002580: DUP3 00002581: SLOAD 00002582: SUB 00002583: SWAP3 00002584: POP 00002585: POP 00002586: DUP2 00002587: SWAP1 00002588: SSTORE 00002589: POP 0000258a: DUP1 0000258b: PUSH1 0x05 0000258d: PUSH1 0x00 0000258f: DUP5 00002590: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025a5: AND 000025a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025bb: AND 000025bc: DUP2 000025bd: MSTORE 000025be: PUSH1 0x20 000025c0: ADD 000025c1: SWAP1 000025c2: DUP2 000025c3: MSTORE 000025c4: PUSH1 0x20 000025c6: ADD 000025c7: PUSH1 0x00 000025c9: KECCAK256 000025ca: PUSH1 0x00 000025cc: DUP3 000025cd: DUP3 000025ce: SLOAD 000025cf: ADD 000025d0: SWAP3 000025d1: POP 000025d2: POP 000025d3: DUP2 000025d4: SWAP1 000025d5: SSTORE 000025d6: POP 000025d7: DUP2 000025d8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025ed: AND 000025ee: DUP4 000025ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002604: AND 00002605: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00002626: DUP4 00002627: PUSH1 0x40 00002629: MLOAD 0000262a: DUP1 0000262b: DUP3 0000262c: DUP2 0000262d: MSTORE 0000262e: PUSH1 0x20 00002630: ADD 00002631: SWAP2 00002632: POP 00002633: POP 00002634: PUSH1 0x40 00002636: MLOAD 00002637: DUP1 00002638: SWAP2 00002639: SUB 0000263a: SWAP1 0000263b: LOG3 0000263c: JUMPDEST 0000263d: POP 0000263e: POP 0000263f: POP 00002640: POP 00002641: JUMP 00002642: JUMPDEST 00002643: PUSH2 0x264d 00002646: CALLER 00002647: DUP4 00002648: DUP4 00002649: PUSH2 0x370e 0000264c: JUMP 0000264d: JUMPDEST 0000264e: POP 0000264f: POP 00002650: JUMP 00002651: JUMPDEST 00002652: PUSH1 0x09 00002654: SLOAD 00002655: DUP2 00002656: JUMP 00002657: JUMPDEST 00002658: PUSH1 0x00 0000265a: DUP1 0000265b: PUSH1 0x00 0000265d: DUP1 0000265e: PUSH1 0x00 00002660: DUP1 00002661: PUSH1 0x11 00002663: PUSH1 0x00 00002665: DUP9 00002666: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000267b: AND 0000267c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002691: AND 00002692: DUP2 00002693: MSTORE 00002694: PUSH1 0x20 00002696: ADD 00002697: SWAP1 00002698: DUP2 00002699: MSTORE 0000269a: PUSH1 0x20 0000269c: ADD 0000269d: PUSH1 0x00 0000269f: KECCAK256 000026a0: PUSH1 0x01 000026a2: ADD 000026a3: PUSH1 0x00 000026a5: SWAP1 000026a6: SLOAD 000026a7: SWAP1 000026a8: PUSH2 0x0100 000026ab: EXP 000026ac: SWAP1 000026ad: DIV 000026ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026c3: AND 000026c4: PUSH1 0x11 000026c6: PUSH1 0x00 000026c8: DUP10 000026c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026de: AND 000026df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026f4: AND 000026f5: DUP2 000026f6: MSTORE 000026f7: PUSH1 0x20 000026f9: ADD 000026fa: SWAP1 000026fb: DUP2 000026fc: MSTORE 000026fd: PUSH1 0x20 000026ff: ADD 00002700: PUSH1 0x00 00002702: KECCAK256 00002703: PUSH1 0x00 00002705: ADD 00002706: PUSH1 0x00 00002708: SWAP1 00002709: SLOAD 0000270a: SWAP1 0000270b: PUSH2 0x0100 0000270e: EXP 0000270f: SWAP1 00002710: DIV 00002711: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002726: AND 00002727: PUSH1 0x11 00002729: PUSH1 0x00 0000272b: DUP11 0000272c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002741: AND 00002742: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002757: AND 00002758: DUP2 00002759: MSTORE 0000275a: PUSH1 0x20 0000275c: ADD 0000275d: SWAP1 0000275e: DUP2 0000275f: MSTORE 00002760: PUSH1 0x20 00002762: ADD 00002763: PUSH1 0x00 00002765: KECCAK256 00002766: PUSH1 0x02 00002768: ADD 00002769: SLOAD 0000276a: PUSH1 0x0f 0000276c: PUSH1 0x00 0000276e: DUP12 0000276f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002784: AND 00002785: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000279a: AND 0000279b: DUP2 0000279c: MSTORE 0000279d: PUSH1 0x20 0000279f: ADD 000027a0: SWAP1 000027a1: DUP2 000027a2: MSTORE 000027a3: PUSH1 0x20 000027a5: ADD 000027a6: PUSH1 0x00 000027a8: KECCAK256 000027a9: DUP1 000027aa: SLOAD 000027ab: SWAP1 000027ac: POP 000027ad: PUSH1 0x10 000027af: PUSH1 0x00 000027b1: DUP13 000027b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027c7: AND 000027c8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027dd: AND 000027de: DUP2 000027df: MSTORE 000027e0: PUSH1 0x20 000027e2: ADD 000027e3: SWAP1 000027e4: DUP2 000027e5: MSTORE 000027e6: PUSH1 0x20 000027e8: ADD 000027e9: PUSH1 0x00 000027eb: KECCAK256 000027ec: DUP1 000027ed: SLOAD 000027ee: SWAP1 000027ef: POP 000027f0: PUSH1 0x11 000027f2: PUSH1 0x00 000027f4: DUP14 000027f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000280a: AND 0000280b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002820: AND 00002821: DUP2 00002822: MSTORE 00002823: PUSH1 0x20 00002825: ADD 00002826: SWAP1 00002827: DUP2 00002828: MSTORE 00002829: PUSH1 0x20 0000282b: ADD 0000282c: PUSH1 0x00 0000282e: KECCAK256 0000282f: PUSH1 0x03 00002831: ADD 00002832: PUSH1 0x00 00002834: SWAP1 00002835: SLOAD 00002836: SWAP1 00002837: PUSH2 0x0100 0000283a: EXP 0000283b: SWAP1 0000283c: DIV 0000283d: PUSH1 0xff 0000283f: AND 00002840: SWAP6 00002841: POP 00002842: SWAP6 00002843: POP 00002844: SWAP6 00002845: POP 00002846: SWAP6 00002847: POP 00002848: SWAP6 00002849: POP 0000284a: SWAP6 0000284b: POP 0000284c: SWAP2 0000284d: SWAP4 0000284e: SWAP6 0000284f: POP 00002850: SWAP2 00002851: SWAP4 00002852: SWAP6 00002853: JUMP 00002854: JUMPDEST 00002855: PUSH1 0x08 00002857: SLOAD 00002858: DUP2 00002859: JUMP 0000285a: JUMPDEST 0000285b: PUSH1 0x0e 0000285d: SLOAD 0000285e: DUP2 0000285f: JUMP 00002860: JUMPDEST 00002861: PUSH1 0x00 00002863: DUP1 00002864: DUP5 00002865: SWAP1 00002866: POP 00002867: PUSH2 0x2870 0000286a: DUP6 0000286b: DUP6 0000286c: PUSH2 0x168c 0000286f: JUMP 00002870: JUMPDEST 00002871: ISZERO 00002872: PUSH2 0x29da 00002875: JUMPI 00002876: DUP1 00002877: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000288c: AND 0000288d: PUSH4 0x8f4ffcb1 00002892: CALLER 00002893: DUP7 00002894: ADDRESS 00002895: DUP8 00002896: PUSH1 0x40 00002898: MLOAD 00002899: DUP6 0000289a: PUSH4 0xffffffff 0000289f: AND 000028a0: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 000028be: MUL 000028bf: DUP2 000028c0: MSTORE 000028c1: PUSH1 0x04 000028c3: ADD 000028c4: DUP1 000028c5: DUP6 000028c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028db: AND 000028dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028f1: AND 000028f2: DUP2 000028f3: MSTORE 000028f4: PUSH1 0x20 000028f6: ADD 000028f7: DUP5 000028f8: DUP2 000028f9: MSTORE 000028fa: PUSH1 0x20 000028fc: ADD 000028fd: DUP4 000028fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002913: AND 00002914: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002929: AND 0000292a: DUP2 0000292b: MSTORE 0000292c: PUSH1 0x20 0000292e: ADD 0000292f: DUP1 00002930: PUSH1 0x20 00002932: ADD 00002933: DUP3 00002934: DUP2 00002935: SUB 00002936: DUP3 00002937: MSTORE 00002938: DUP4 00002939: DUP2 0000293a: DUP2 0000293b: MLOAD 0000293c: DUP2 0000293d: MSTORE 0000293e: PUSH1 0x20 00002940: ADD 00002941: SWAP2 00002942: POP 00002943: DUP1 00002944: MLOAD 00002945: SWAP1 00002946: PUSH1 0x20 00002948: ADD 00002949: SWAP1 0000294a: DUP1 0000294b: DUP4 0000294c: DUP4 0000294d: PUSH1 0x00 0000294f: JUMPDEST 00002950: DUP4 00002951: DUP2 00002952: LT 00002953: ISZERO 00002954: PUSH2 0x296a 00002957: JUMPI 00002958: DUP1 00002959: DUP3 0000295a: ADD 0000295b: MLOAD 0000295c: DUP2 0000295d: DUP5 0000295e: ADD 0000295f: MSTORE 00002960: PUSH1 0x20 00002962: DUP2 00002963: ADD 00002964: SWAP1 00002965: POP 00002966: PUSH2 0x294f 00002969: JUMP 0000296a: JUMPDEST 0000296b: POP 0000296c: POP 0000296d: POP 0000296e: POP 0000296f: SWAP1 00002970: POP 00002971: SWAP1 00002972: DUP2 00002973: ADD 00002974: SWAP1 00002975: PUSH1 0x1f 00002977: AND 00002978: DUP1 00002979: ISZERO 0000297a: PUSH2 0x2997 0000297d: JUMPI 0000297e: DUP1 0000297f: DUP3 00002980: SUB 00002981: DUP1 00002982: MLOAD 00002983: PUSH1 0x01 00002985: DUP4 00002986: PUSH1 0x20 00002988: SUB 00002989: PUSH2 0x0100 0000298c: EXP 0000298d: SUB 0000298e: NOT 0000298f: AND 00002990: DUP2 00002991: MSTORE 00002992: PUSH1 0x20 00002994: ADD 00002995: SWAP2 00002996: POP 00002997: JUMPDEST 00002998: POP 00002999: SWAP6 0000299a: POP 0000299b: POP 0000299c: POP 0000299d: POP 0000299e: POP 0000299f: POP 000029a0: PUSH1 0x00 000029a2: PUSH1 0x40 000029a4: MLOAD 000029a5: DUP1 000029a6: DUP4 000029a7: SUB 000029a8: DUP2 000029a9: PUSH1 0x00 000029ab: DUP8 000029ac: DUP1 000029ad: EXTCODESIZE 000029ae: ISZERO 000029af: DUP1 000029b0: ISZERO 000029b1: PUSH2 0x29b9 000029b4: JUMPI 000029b5: PUSH1 0x00 000029b7: DUP1 000029b8: REVERT 000029b9: JUMPDEST 000029ba: POP 000029bb: GAS 000029bc: CALL 000029bd: ISZERO 000029be: DUP1 000029bf: ISZERO 000029c0: PUSH2 0x29cd 000029c3: JUMPI 000029c4: RETURNDATASIZE 000029c5: PUSH1 0x00 000029c7: DUP1 000029c8: RETURNDATACOPY 000029c9: RETURNDATASIZE 000029ca: PUSH1 0x00 000029cc: REVERT 000029cd: JUMPDEST 000029ce: POP 000029cf: POP 000029d0: POP 000029d1: POP 000029d2: PUSH1 0x01 000029d4: SWAP2 000029d5: POP 000029d6: PUSH2 0x29db 000029d9: JUMP 000029da: JUMPDEST 000029db: JUMPDEST 000029dc: POP 000029dd: SWAP4 000029de: SWAP3 000029df: POP 000029e0: POP 000029e1: POP 000029e2: JUMP 000029e3: JUMPDEST 000029e4: PUSH1 0x00 000029e6: DUP1 000029e7: SWAP1 000029e8: POP 000029e9: JUMPDEST 000029ea: PUSH1 0x18 000029ec: SLOAD 000029ed: DUP2 000029ee: LT 000029ef: ISZERO 000029f0: PUSH2 0x2abd 000029f3: JUMPI 000029f4: DUP2 000029f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a0a: AND 00002a0b: PUSH1 0x0d 00002a0d: DUP3 00002a0e: DUP2 00002a0f: SLOAD 00002a10: DUP2 00002a11: LT 00002a12: ISZERO 00002a13: ISZERO 00002a14: PUSH2 0x2a19 00002a17: JUMPI 00002a18: INVALID 00002a19: JUMPDEST 00002a1a: SWAP1 00002a1b: PUSH1 0x00 00002a1d: MSTORE 00002a1e: PUSH1 0x20 00002a20: PUSH1 0x00 00002a22: KECCAK256 00002a23: ADD 00002a24: PUSH1 0x00 00002a26: SWAP1 00002a27: SLOAD 00002a28: SWAP1 00002a29: PUSH2 0x0100 00002a2c: EXP 00002a2d: SWAP1 00002a2e: DIV 00002a2f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a44: AND 00002a45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a5a: AND 00002a5b: EQ 00002a5c: ISZERO 00002a5d: PUSH2 0x2ab0 00002a60: JUMPI 00002a61: PUSH1 0x18 00002a63: PUSH1 0x00 00002a65: DUP2 00002a66: SLOAD 00002a67: DUP1 00002a68: SWAP3 00002a69: SWAP2 00002a6a: SWAP1 00002a6b: PUSH1 0x01 00002a6d: SWAP1 00002a6e: SUB 00002a6f: SWAP2 00002a70: SWAP1 00002a71: POP 00002a72: SSTORE 00002a73: POP 00002a74: PUSH1 0x0d 00002a76: DUP2 00002a77: DUP2 00002a78: SLOAD 00002a79: DUP2 00002a7a: LT 00002a7b: ISZERO 00002a7c: ISZERO 00002a7d: PUSH2 0x2a82 00002a80: JUMPI 00002a81: INVALID 00002a82: JUMPDEST 00002a83: SWAP1 00002a84: PUSH1 0x00 00002a86: MSTORE 00002a87: PUSH1 0x20 00002a89: PUSH1 0x00 00002a8b: KECCAK256 00002a8c: ADD 00002a8d: PUSH1 0x00 00002a8f: PUSH2 0x0100 00002a92: EXP 00002a93: DUP2 00002a94: SLOAD 00002a95: SWAP1 00002a96: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002aab: MUL 00002aac: NOT 00002aad: AND 00002aae: SWAP1 00002aaf: SSTORE 00002ab0: JUMPDEST 00002ab1: DUP1 00002ab2: DUP1 00002ab3: PUSH1 0x01 00002ab5: ADD 00002ab6: SWAP2 00002ab7: POP 00002ab8: POP 00002ab9: PUSH2 0x29e9 00002abc: JUMP 00002abd: JUMPDEST 00002abe: PUSH1 0x19 00002ac0: PUSH1 0x00 00002ac2: DUP2 00002ac3: SLOAD 00002ac4: DUP1 00002ac5: SWAP3 00002ac6: SWAP2 00002ac7: SWAP1 00002ac8: PUSH1 0x01 00002aca: ADD 00002acb: SWAP2 00002acc: SWAP1 00002acd: POP 00002ace: SSTORE 00002acf: POP 00002ad0: PUSH1 0x0c 00002ad2: DUP3 00002ad3: SWAP1 00002ad4: DUP1 00002ad5: PUSH1 0x01 00002ad7: DUP2 00002ad8: SLOAD 00002ad9: ADD 00002ada: DUP1 00002adb: DUP3 00002adc: SSTORE 00002add: DUP1 00002ade: SWAP2 00002adf: POP 00002ae0: POP 00002ae1: SWAP1 00002ae2: PUSH1 0x01 00002ae4: DUP3 00002ae5: SUB 00002ae6: SWAP1 00002ae7: PUSH1 0x00 00002ae9: MSTORE 00002aea: PUSH1 0x20 00002aec: PUSH1 0x00 00002aee: KECCAK256 00002aef: ADD 00002af0: PUSH1 0x00 00002af2: SWAP1 00002af3: SWAP2 00002af4: SWAP3 00002af5: SWAP1 00002af6: SWAP2 00002af7: SWAP1 00002af8: SWAP2 00002af9: PUSH2 0x0100 00002afc: EXP 00002afd: DUP2 00002afe: SLOAD 00002aff: DUP2 00002b00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b15: MUL 00002b16: NOT 00002b17: AND 00002b18: SWAP1 00002b19: DUP4 00002b1a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b2f: AND 00002b30: MUL 00002b31: OR 00002b32: SWAP1 00002b33: SSTORE 00002b34: POP 00002b35: POP 00002b36: POP 00002b37: POP 00002b38: JUMP 00002b39: JUMPDEST 00002b3a: PUSH1 0x0d 00002b3c: DUP2 00002b3d: DUP2 00002b3e: SLOAD 00002b3f: DUP2 00002b40: LT 00002b41: ISZERO 00002b42: ISZERO 00002b43: PUSH2 0x2b48 00002b46: JUMPI 00002b47: INVALID 00002b48: JUMPDEST 00002b49: SWAP1 00002b4a: PUSH1 0x00 00002b4c: MSTORE 00002b4d: PUSH1 0x20 00002b4f: PUSH1 0x00 00002b51: KECCAK256 00002b52: ADD 00002b53: PUSH1 0x00 00002b55: SWAP2 00002b56: POP 00002b57: SLOAD 00002b58: SWAP1 00002b59: PUSH2 0x0100 00002b5c: EXP 00002b5d: SWAP1 00002b5e: DIV 00002b5f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b74: AND 00002b75: DUP2 00002b76: JUMP 00002b77: JUMPDEST 00002b78: PUSH1 0x06 00002b7a: PUSH1 0x20 00002b7c: MSTORE 00002b7d: DUP2 00002b7e: PUSH1 0x00 00002b80: MSTORE 00002b81: PUSH1 0x40 00002b83: PUSH1 0x00 00002b85: KECCAK256 00002b86: PUSH1 0x20 00002b88: MSTORE 00002b89: DUP1 00002b8a: PUSH1 0x00 00002b8c: MSTORE 00002b8d: PUSH1 0x40 00002b8f: PUSH1 0x00 00002b91: KECCAK256 00002b92: PUSH1 0x00 00002b94: SWAP2 00002b95: POP 00002b96: SWAP2 00002b97: POP 00002b98: POP 00002b99: SLOAD 00002b9a: DUP2 00002b9b: JUMP 00002b9c: JUMPDEST 00002b9d: PUSH1 0x13 00002b9f: PUSH1 0x00 00002ba1: PUSH1 0x15 00002ba3: SLOAD 00002ba4: DUP2 00002ba5: MSTORE 00002ba6: PUSH1 0x20 00002ba8: ADD 00002ba9: SWAP1 00002baa: DUP2 00002bab: MSTORE 00002bac: PUSH1 0x20 00002bae: ADD 00002baf: PUSH1 0x00 00002bb1: KECCAK256 00002bb2: SLOAD 00002bb3: PUSH8 0x0de0b6b3a7640000 00002bbc: PUSH1 0x07 00002bbe: SLOAD 00002bbf: DUP2 00002bc0: ISZERO 00002bc1: ISZERO 00002bc2: PUSH2 0x2bc7 00002bc5: JUMPI 00002bc6: INVALID 00002bc7: JUMPDEST 00002bc8: DIV 00002bc9: LT 00002bca: ISZERO 00002bcb: DUP1 00002bcc: ISZERO 00002bcd: PUSH2 0x2bd8 00002bd0: JUMPI 00002bd1: POP 00002bd2: PUSH1 0x0d 00002bd4: PUSH1 0x15 00002bd6: SLOAD 00002bd7: LT 00002bd8: JUMPDEST 00002bd9: ISZERO 00002bda: PUSH2 0x2c0e 00002bdd: JUMPI 00002bde: PUSH1 0x14 00002be0: PUSH1 0x00 00002be2: PUSH1 0x01 00002be4: PUSH1 0x15 00002be6: SLOAD 00002be7: ADD 00002be8: DUP2 00002be9: MSTORE 00002bea: PUSH1 0x20 00002bec: ADD 00002bed: SWAP1 00002bee: DUP2 00002bef: MSTORE 00002bf0: PUSH1 0x20 00002bf2: ADD 00002bf3: PUSH1 0x00 00002bf5: KECCAK256 00002bf6: SLOAD 00002bf7: PUSH1 0x08 00002bf9: DUP2 00002bfa: SWAP1 00002bfb: SSTORE 00002bfc: POP 00002bfd: PUSH1 0x01 00002bff: PUSH1 0x15 00002c01: PUSH1 0x00 00002c03: DUP3 00002c04: DUP3 00002c05: SLOAD 00002c06: ADD 00002c07: SWAP3 00002c08: POP 00002c09: POP 00002c0a: DUP2 00002c0b: SWAP1 00002c0c: SSTORE 00002c0d: POP 00002c0e: JUMPDEST 00002c0f: PUSH1 0x13 00002c11: PUSH1 0x00 00002c13: PUSH1 0x01 00002c15: PUSH1 0x15 00002c17: SLOAD 00002c18: ADD 00002c19: DUP2 00002c1a: MSTORE 00002c1b: PUSH1 0x20 00002c1d: ADD 00002c1e: SWAP1 00002c1f: DUP2 00002c20: MSTORE 00002c21: PUSH1 0x20 00002c23: ADD 00002c24: PUSH1 0x00 00002c26: KECCAK256 00002c27: SLOAD 00002c28: PUSH8 0x0de0b6b3a7640000 00002c31: PUSH1 0x07 00002c33: SLOAD 00002c34: DUP2 00002c35: ISZERO 00002c36: ISZERO 00002c37: PUSH2 0x2c3c 00002c3a: JUMPI 00002c3b: INVALID 00002c3c: JUMPDEST 00002c3d: DIV 00002c3e: LT 00002c3f: ISZERO 00002c40: DUP1 00002c41: ISZERO 00002c42: PUSH2 0x2c4d 00002c45: JUMPI 00002c46: POP 00002c47: PUSH1 0x0c 00002c49: PUSH1 0x15 00002c4b: SLOAD 00002c4c: LT 00002c4d: JUMPDEST 00002c4e: ISZERO 00002c4f: PUSH2 0x2c83 00002c52: JUMPI 00002c53: PUSH1 0x14 00002c55: PUSH1 0x00 00002c57: PUSH1 0x02 00002c59: PUSH1 0x15 00002c5b: SLOAD 00002c5c: ADD 00002c5d: DUP2 00002c5e: MSTORE 00002c5f: PUSH1 0x20 00002c61: ADD 00002c62: SWAP1 00002c63: DUP2 00002c64: MSTORE 00002c65: PUSH1 0x20 00002c67: ADD 00002c68: PUSH1 0x00 00002c6a: KECCAK256 00002c6b: SLOAD 00002c6c: PUSH1 0x08 00002c6e: DUP2 00002c6f: SWAP1 00002c70: SSTORE 00002c71: POP 00002c72: PUSH1 0x02 00002c74: PUSH1 0x15 00002c76: PUSH1 0x00 00002c78: DUP3 00002c79: DUP3 00002c7a: SLOAD 00002c7b: ADD 00002c7c: SWAP3 00002c7d: POP 00002c7e: POP 00002c7f: DUP2 00002c80: SWAP1 00002c81: SSTORE 00002c82: POP 00002c83: JUMPDEST 00002c84: PUSH1 0x13 00002c86: PUSH1 0x00 00002c88: PUSH1 0x02 00002c8a: PUSH1 0x15 00002c8c: SLOAD 00002c8d: ADD 00002c8e: DUP2 00002c8f: MSTORE 00002c90: PUSH1 0x20 00002c92: ADD 00002c93: SWAP1 00002c94: DUP2 00002c95: MSTORE 00002c96: PUSH1 0x20 00002c98: ADD 00002c99: PUSH1 0x00 00002c9b: KECCAK256 00002c9c: SLOAD 00002c9d: PUSH8 0x0de0b6b3a7640000 00002ca6: PUSH1 0x07 00002ca8: SLOAD 00002ca9: DUP2 00002caa: ISZERO 00002cab: ISZERO 00002cac: PUSH2 0x2cb1 00002caf: JUMPI 00002cb0: INVALID 00002cb1: JUMPDEST 00002cb2: DIV 00002cb3: LT 00002cb4: ISZERO 00002cb5: DUP1 00002cb6: ISZERO 00002cb7: PUSH2 0x2cc2 00002cba: JUMPI 00002cbb: POP 00002cbc: PUSH1 0x0b 00002cbe: PUSH1 0x15 00002cc0: SLOAD 00002cc1: LT 00002cc2: JUMPDEST 00002cc3: ISZERO 00002cc4: PUSH2 0x2cf8 00002cc7: JUMPI 00002cc8: PUSH1 0x14 00002cca: PUSH1 0x00 00002ccc: PUSH1 0x03 00002cce: PUSH1 0x15 00002cd0: SLOAD 00002cd1: ADD 00002cd2: DUP2 00002cd3: MSTORE 00002cd4: PUSH1 0x20 00002cd6: ADD 00002cd7: SWAP1 00002cd8: DUP2 00002cd9: MSTORE 00002cda: PUSH1 0x20 00002cdc: ADD 00002cdd: PUSH1 0x00 00002cdf: KECCAK256 00002ce0: SLOAD 00002ce1: PUSH1 0x08 00002ce3: DUP2 00002ce4: SWAP1 00002ce5: SSTORE 00002ce6: POP 00002ce7: PUSH1 0x03 00002ce9: PUSH1 0x15 00002ceb: PUSH1 0x00 00002ced: DUP3 00002cee: DUP3 00002cef: SLOAD 00002cf0: ADD 00002cf1: SWAP3 00002cf2: POP 00002cf3: POP 00002cf4: DUP2 00002cf5: SWAP1 00002cf6: SSTORE 00002cf7: POP 00002cf8: JUMPDEST 00002cf9: JUMP 00002cfa: JUMPDEST 00002cfb: PUSH1 0x00 00002cfd: DUP1 00002cfe: PUSH1 0x00 00002d00: DUP1 00002d01: PUSH1 0x00 00002d03: PUSH1 0x0b 00002d05: SLOAD 00002d06: GT 00002d07: DUP1 00002d08: ISZERO 00002d09: PUSH2 0x2d14 00002d0c: JUMPI 00002d0d: POP 00002d0e: PUSH1 0x00 00002d10: PUSH1 0x19 00002d12: SLOAD 00002d13: GT 00002d14: JUMPDEST 00002d15: ISZERO 00002d16: PUSH2 0x2e75 00002d19: JUMPI 00002d1a: PUSH1 0x03 00002d1c: PUSH1 0x00 00002d1e: SWAP1 00002d1f: SLOAD 00002d20: SWAP1 00002d21: PUSH2 0x0100 00002d24: EXP 00002d25: SWAP1 00002d26: DIV 00002d27: PUSH1 0xff 00002d29: AND 00002d2a: PUSH1 0xff 00002d2c: AND 00002d2d: PUSH1 0x0a 00002d2f: EXP 00002d30: PUSH2 0x4e20 00002d33: MUL 00002d34: SWAP4 00002d35: POP 00002d36: PUSH1 0x05 00002d38: PUSH1 0x00 00002d3a: ADDRESS 00002d3b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d50: AND 00002d51: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d66: AND 00002d67: DUP2 00002d68: MSTORE 00002d69: PUSH1 0x20 00002d6b: ADD 00002d6c: SWAP1 00002d6d: DUP2 00002d6e: MSTORE 00002d6f: PUSH1 0x20 00002d71: ADD 00002d72: PUSH1 0x00 00002d74: KECCAK256 00002d75: SLOAD 00002d76: SWAP3 00002d77: POP 00002d78: DUP4 00002d79: DUP4 00002d7a: LT 00002d7b: ISZERO 00002d7c: PUSH2 0x2d84 00002d7f: JUMPI 00002d80: PUSH2 0x2e76 00002d83: JUMP 00002d84: JUMPDEST 00002d85: PUSH1 0x00 00002d87: SWAP2 00002d88: POP 00002d89: PUSH1 0x19 00002d8b: SLOAD 00002d8c: DUP5 00002d8d: DUP2 00002d8e: ISZERO 00002d8f: ISZERO 00002d90: PUSH2 0x2d95 00002d93: JUMPI 00002d94: INVALID 00002d95: JUMPDEST 00002d96: DIV 00002d97: SWAP1 00002d98: POP 00002d99: JUMPDEST 00002d9a: PUSH1 0x19 00002d9c: SLOAD 00002d9d: DUP3 00002d9e: LT 00002d9f: ISZERO 00002da0: PUSH2 0x2e64 00002da3: JUMPI 00002da4: PUSH1 0x00 00002da6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002dbb: AND 00002dbc: PUSH1 0x0c 00002dbe: DUP4 00002dbf: DUP2 00002dc0: SLOAD 00002dc1: DUP2 00002dc2: LT 00002dc3: ISZERO 00002dc4: ISZERO 00002dc5: PUSH2 0x2dca 00002dc8: JUMPI 00002dc9: INVALID 00002dca: JUMPDEST 00002dcb: SWAP1 00002dcc: PUSH1 0x00 00002dce: MSTORE 00002dcf: PUSH1 0x20 00002dd1: PUSH1 0x00 00002dd3: KECCAK256 00002dd4: ADD 00002dd5: PUSH1 0x00 00002dd7: SWAP1 00002dd8: SLOAD 00002dd9: SWAP1 00002dda: PUSH2 0x0100 00002ddd: EXP 00002dde: SWAP1 00002ddf: DIV 00002de0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002df5: AND 00002df6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e0b: AND 00002e0c: EQ 00002e0d: ISZERO 00002e0e: ISZERO 00002e0f: PUSH2 0x2e57 00002e12: JUMPI 00002e13: PUSH2 0x2e56 00002e16: ADDRESS 00002e17: PUSH1 0x0c 00002e19: DUP5 00002e1a: DUP2 00002e1b: SLOAD 00002e1c: DUP2 00002e1d: LT 00002e1e: ISZERO 00002e1f: ISZERO 00002e20: PUSH2 0x2e25 00002e23: JUMPI 00002e24: INVALID 00002e25: JUMPDEST 00002e26: SWAP1 00002e27: PUSH1 0x00 00002e29: MSTORE 00002e2a: PUSH1 0x20 00002e2c: PUSH1 0x00 00002e2e: KECCAK256 00002e2f: ADD 00002e30: PUSH1 0x00 00002e32: SWAP1 00002e33: SLOAD 00002e34: SWAP1 00002e35: PUSH2 0x0100 00002e38: EXP 00002e39: SWAP1 00002e3a: DIV 00002e3b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e50: AND 00002e51: DUP4 00002e52: PUSH2 0x370e 00002e55: JUMP 00002e56: JUMPDEST 00002e57: JUMPDEST 00002e58: DUP2 00002e59: DUP1 00002e5a: PUSH1 0x01 00002e5c: ADD 00002e5d: SWAP3 00002e5e: POP 00002e5f: POP 00002e60: PUSH2 0x2d99 00002e63: JUMP 00002e64: JUMPDEST 00002e65: DUP4 00002e66: PUSH1 0x0b 00002e68: PUSH1 0x00 00002e6a: DUP3 00002e6b: DUP3 00002e6c: SLOAD 00002e6d: SUB 00002e6e: SWAP3 00002e6f: POP 00002e70: POP 00002e71: DUP2 00002e72: SWAP1 00002e73: SSTORE 00002e74: POP 00002e75: JUMPDEST 00002e76: JUMPDEST 00002e77: POP 00002e78: POP 00002e79: POP 00002e7a: POP 00002e7b: JUMP 00002e7c: JUMPDEST 00002e7d: PUSH1 0x00 00002e7f: DUP1 00002e80: PUSH1 0x00 00002e82: DUP1 00002e83: PUSH1 0x00 00002e85: PUSH1 0x09 00002e87: SLOAD 00002e88: PUSH1 0x17 00002e8a: SLOAD 00002e8b: PUSH1 0x19 00002e8d: SLOAD 00002e8e: PUSH1 0x18 00002e90: SLOAD 00002e91: PUSH1 0x0b 00002e93: SLOAD 00002e94: SWAP5 00002e95: POP 00002e96: SWAP5 00002e97: POP 00002e98: SWAP5 00002e99: POP 00002e9a: SWAP5 00002e9b: POP 00002e9c: SWAP5 00002e9d: POP 00002e9e: SWAP1 00002e9f: SWAP2 00002ea0: SWAP3 00002ea1: SWAP4 00002ea2: SWAP5 00002ea3: JUMP 00002ea4: JUMPDEST 00002ea5: PUSH1 0x0b 00002ea7: SLOAD 00002ea8: DUP2 00002ea9: JUMP 00002eaa: JUMPDEST 00002eab: PUSH1 0x00 00002ead: DUP1 00002eae: PUSH1 0x00 00002eb0: DUP1 00002eb1: PUSH1 0x00 00002eb3: DUP1 00002eb4: PUSH2 0x2ebb 00002eb7: PUSH2 0x3a1b 00002eba: JUMP 00002ebb: JUMPDEST 00002ebc: PUSH1 0x01 00002ebe: ISZERO 00002ebf: ISZERO 00002ec0: PUSH2 0x2ec8 00002ec3: DUP11 00002ec4: PUSH2 0x2154 00002ec7: JUMP 00002ec8: JUMPDEST 00002ec9: ISZERO 00002eca: ISZERO 00002ecb: EQ 00002ecc: ISZERO 00002ecd: PUSH2 0x30c0 00002ed0: JUMPI 00002ed1: PUSH1 0x11 00002ed3: PUSH1 0x00 00002ed5: DUP11 00002ed6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002eeb: AND 00002eec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f01: AND 00002f02: DUP2 00002f03: MSTORE 00002f04: PUSH1 0x20 00002f06: ADD 00002f07: SWAP1 00002f08: DUP2 00002f09: MSTORE 00002f0a: PUSH1 0x20 00002f0c: ADD 00002f0d: PUSH1 0x00 00002f0f: KECCAK256 00002f10: PUSH1 0x01 00002f12: ADD 00002f13: PUSH1 0x00 00002f15: SWAP1 00002f16: SLOAD 00002f17: SWAP1 00002f18: PUSH2 0x0100 00002f1b: EXP 00002f1c: SWAP1 00002f1d: DIV 00002f1e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f33: AND 00002f34: PUSH1 0x11 00002f36: PUSH1 0x00 00002f38: DUP12 00002f39: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f4e: AND 00002f4f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f64: AND 00002f65: DUP2 00002f66: MSTORE 00002f67: PUSH1 0x20 00002f69: ADD 00002f6a: SWAP1 00002f6b: DUP2 00002f6c: MSTORE 00002f6d: PUSH1 0x20 00002f6f: ADD 00002f70: PUSH1 0x00 00002f72: KECCAK256 00002f73: PUSH1 0x00 00002f75: ADD 00002f76: PUSH1 0x00 00002f78: SWAP1 00002f79: SLOAD 00002f7a: SWAP1 00002f7b: PUSH2 0x0100 00002f7e: EXP 00002f7f: SWAP1 00002f80: DIV 00002f81: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f96: AND 00002f97: PUSH1 0x11 00002f99: PUSH1 0x00 00002f9b: DUP13 00002f9c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002fb1: AND 00002fb2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002fc7: AND 00002fc8: DUP2 00002fc9: MSTORE 00002fca: PUSH1 0x20 00002fcc: ADD 00002fcd: SWAP1 00002fce: DUP2 00002fcf: MSTORE 00002fd0: PUSH1 0x20 00002fd2: ADD 00002fd3: PUSH1 0x00 00002fd5: KECCAK256 00002fd6: PUSH1 0x02 00002fd8: ADD 00002fd9: SLOAD 00002fda: PUSH1 0x0f 00002fdc: PUSH1 0x00 00002fde: DUP14 00002fdf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ff4: AND 00002ff5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000300a: AND 0000300b: DUP2 0000300c: MSTORE 0000300d: PUSH1 0x20 0000300f: ADD 00003010: SWAP1 00003011: DUP2 00003012: MSTORE 00003013: PUSH1 0x20 00003015: ADD 00003016: PUSH1 0x00 00003018: KECCAK256 00003019: DUP1 0000301a: SLOAD 0000301b: SWAP1 0000301c: POP 0000301d: PUSH1 0x10 0000301f: PUSH1 0x00 00003021: DUP15 00003022: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003037: AND 00003038: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000304d: AND 0000304e: DUP2 0000304f: MSTORE 00003050: PUSH1 0x20 00003052: ADD 00003053: SWAP1 00003054: DUP2 00003055: MSTORE 00003056: PUSH1 0x20 00003058: ADD 00003059: PUSH1 0x00 0000305b: KECCAK256 0000305c: DUP1 0000305d: SLOAD 0000305e: SWAP1 0000305f: POP 00003060: PUSH1 0x11 00003062: PUSH1 0x00 00003064: DUP16 00003065: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000307a: AND 0000307b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003090: AND 00003091: DUP2 00003092: MSTORE 00003093: PUSH1 0x20 00003095: ADD 00003096: SWAP1 00003097: DUP2 00003098: MSTORE 00003099: PUSH1 0x20 0000309b: ADD 0000309c: PUSH1 0x00 0000309e: KECCAK256 0000309f: PUSH1 0x03 000030a1: ADD 000030a2: PUSH1 0x00 000030a4: SWAP1 000030a5: SLOAD 000030a6: SWAP1 000030a7: PUSH2 0x0100 000030aa: EXP 000030ab: SWAP1 000030ac: DIV 000030ad: PUSH1 0xff 000030af: AND 000030b0: SWAP7 000030b1: POP 000030b2: SWAP7 000030b3: POP 000030b4: SWAP7 000030b5: POP 000030b6: SWAP7 000030b7: POP 000030b8: SWAP7 000030b9: POP 000030ba: SWAP7 000030bb: POP 000030bc: PUSH2 0x3647 000030bf: JUMP 000030c0: JUMPDEST 000030c1: PUSH1 0x80 000030c3: PUSH1 0x40 000030c5: MLOAD 000030c6: SWAP1 000030c7: DUP2 000030c8: ADD 000030c9: PUSH1 0x40 000030cb: MSTORE 000030cc: DUP1 000030cd: DUP10 000030ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030e3: AND 000030e4: DUP2 000030e5: MSTORE 000030e6: PUSH1 0x20 000030e8: ADD 000030e9: DUP11 000030ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030ff: AND 00003100: DUP2 00003101: MSTORE 00003102: PUSH1 0x20 00003104: ADD 00003105: PUSH1 0x00 00003107: DUP2 00003108: MSTORE 00003109: PUSH1 0x20 0000310b: ADD 0000310c: PUSH1 0x01 0000310e: ISZERO 0000310f: ISZERO 00003110: DUP2 00003111: MSTORE 00003112: POP 00003113: SWAP1 00003114: POP 00003115: DUP1 00003116: PUSH1 0x11 00003118: PUSH1 0x00 0000311a: DUP12 0000311b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003130: AND 00003131: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003146: AND 00003147: DUP2 00003148: MSTORE 00003149: PUSH1 0x20 0000314b: ADD 0000314c: SWAP1 0000314d: DUP2 0000314e: MSTORE 0000314f: PUSH1 0x20 00003151: ADD 00003152: PUSH1 0x00 00003154: KECCAK256 00003155: PUSH1 0x00 00003157: DUP3 00003158: ADD 00003159: MLOAD 0000315a: DUP2 0000315b: PUSH1 0x00 0000315d: ADD 0000315e: PUSH1 0x00 00003160: PUSH2 0x0100 00003163: EXP 00003164: DUP2 00003165: SLOAD 00003166: DUP2 00003167: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000317c: MUL 0000317d: NOT 0000317e: AND 0000317f: SWAP1 00003180: DUP4 00003181: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003196: AND 00003197: MUL 00003198: OR 00003199: SWAP1 0000319a: SSTORE 0000319b: POP 0000319c: PUSH1 0x20 0000319e: DUP3 0000319f: ADD 000031a0: MLOAD 000031a1: DUP2 000031a2: PUSH1 0x01 000031a4: ADD 000031a5: PUSH1 0x00 000031a7: PUSH2 0x0100 000031aa: EXP 000031ab: DUP2 000031ac: SLOAD 000031ad: DUP2 000031ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000031c3: MUL 000031c4: NOT 000031c5: AND 000031c6: SWAP1 000031c7: DUP4 000031c8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000031dd: AND 000031de: MUL 000031df: OR 000031e0: SWAP1 000031e1: SSTORE 000031e2: POP 000031e3: PUSH1 0x40 000031e5: DUP3 000031e6: ADD 000031e7: MLOAD 000031e8: DUP2 000031e9: PUSH1 0x02 000031eb: ADD 000031ec: SSTORE 000031ed: PUSH1 0x60 000031ef: DUP3 000031f0: ADD 000031f1: MLOAD 000031f2: DUP2 000031f3: PUSH1 0x03 000031f5: ADD 000031f6: PUSH1 0x00 000031f8: PUSH2 0x0100 000031fb: EXP 000031fc: DUP2 000031fd: SLOAD 000031fe: DUP2 000031ff: PUSH1 0xff 00003201: MUL 00003202: NOT 00003203: AND 00003204: SWAP1 00003205: DUP4 00003206: ISZERO 00003207: ISZERO 00003208: MUL 00003209: OR 0000320a: SWAP1 0000320b: SSTORE 0000320c: POP 0000320d: SWAP1 0000320e: POP 0000320f: POP 00003210: PUSH1 0x0f 00003212: PUSH1 0x00 00003214: DUP10 00003215: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000322a: AND 0000322b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003240: AND 00003241: DUP2 00003242: MSTORE 00003243: PUSH1 0x20 00003245: ADD 00003246: SWAP1 00003247: DUP2 00003248: MSTORE 00003249: PUSH1 0x20 0000324b: ADD 0000324c: PUSH1 0x00 0000324e: KECCAK256 0000324f: DUP2 00003250: SWAP1 00003251: DUP1 00003252: PUSH1 0x01 00003254: DUP2 00003255: SLOAD 00003256: ADD 00003257: DUP1 00003258: DUP3 00003259: SSTORE 0000325a: DUP1 0000325b: SWAP2 0000325c: POP 0000325d: POP 0000325e: SWAP1 0000325f: PUSH1 0x01 00003261: DUP3 00003262: SUB 00003263: SWAP1 00003264: PUSH1 0x00 00003266: MSTORE 00003267: PUSH1 0x20 00003269: PUSH1 0x00 0000326b: KECCAK256 0000326c: SWAP1 0000326d: PUSH1 0x04 0000326f: MUL 00003270: ADD 00003271: PUSH1 0x00 00003273: SWAP1 00003274: SWAP2 00003275: SWAP3 00003276: SWAP1 00003277: SWAP2 00003278: SWAP1 00003279: SWAP2 0000327a: POP 0000327b: PUSH1 0x00 0000327d: DUP3 0000327e: ADD 0000327f: MLOAD 00003280: DUP2 00003281: PUSH1 0x00 00003283: ADD 00003284: PUSH1 0x00 00003286: PUSH2 0x0100 00003289: EXP 0000328a: DUP2 0000328b: SLOAD 0000328c: DUP2 0000328d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000032a2: MUL 000032a3: NOT 000032a4: AND 000032a5: SWAP1 000032a6: DUP4 000032a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000032bc: AND 000032bd: MUL 000032be: OR 000032bf: SWAP1 000032c0: SSTORE 000032c1: POP 000032c2: PUSH1 0x20 000032c4: DUP3 000032c5: ADD 000032c6: MLOAD 000032c7: DUP2 000032c8: PUSH1 0x01 000032ca: ADD 000032cb: PUSH1 0x00 000032cd: PUSH2 0x0100 000032d0: EXP 000032d1: DUP2 000032d2: SLOAD 000032d3: DUP2 000032d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000032e9: MUL 000032ea: NOT 000032eb: AND 000032ec: SWAP1 000032ed: DUP4 000032ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003303: AND 00003304: MUL 00003305: OR 00003306: SWAP1 00003307: SSTORE 00003308: POP 00003309: PUSH1 0x40 0000330b: DUP3 0000330c: ADD 0000330d: MLOAD 0000330e: DUP2 0000330f: PUSH1 0x02 00003311: ADD 00003312: SSTORE 00003313: PUSH1 0x60 00003315: DUP3 00003316: ADD 00003317: MLOAD 00003318: DUP2 00003319: PUSH1 0x03 0000331b: ADD 0000331c: PUSH1 0x00 0000331e: PUSH2 0x0100 00003321: EXP 00003322: DUP2 00003323: SLOAD 00003324: DUP2 00003325: PUSH1 0xff 00003327: MUL 00003328: NOT 00003329: AND 0000332a: SWAP1 0000332b: DUP4 0000332c: ISZERO 0000332d: ISZERO 0000332e: MUL 0000332f: OR 00003330: SWAP1 00003331: SSTORE 00003332: POP 00003333: POP 00003334: POP 00003335: POP 00003336: PUSH1 0x10 00003338: PUSH1 0x00 0000333a: DUP10 0000333b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003350: AND 00003351: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003366: AND 00003367: DUP2 00003368: MSTORE 00003369: PUSH1 0x20 0000336b: ADD 0000336c: SWAP1 0000336d: DUP2 0000336e: MSTORE 0000336f: PUSH1 0x20 00003371: ADD 00003372: PUSH1 0x00 00003374: KECCAK256 00003375: DUP2 00003376: SWAP1 00003377: DUP1 00003378: PUSH1 0x01 0000337a: DUP2 0000337b: SLOAD 0000337c: ADD 0000337d: DUP1 0000337e: DUP3 0000337f: SSTORE 00003380: DUP1 00003381: SWAP2 00003382: POP 00003383: POP 00003384: SWAP1 00003385: PUSH1 0x01 00003387: DUP3 00003388: SUB 00003389: SWAP1 0000338a: PUSH1 0x00 0000338c: MSTORE 0000338d: PUSH1 0x20 0000338f: PUSH1 0x00 00003391: KECCAK256 00003392: SWAP1 00003393: PUSH1 0x04 00003395: MUL 00003396: ADD 00003397: PUSH1 0x00 00003399: SWAP1 0000339a: SWAP2 0000339b: SWAP3 0000339c: SWAP1 0000339d: SWAP2 0000339e: SWAP1 0000339f: SWAP2 000033a0: POP 000033a1: PUSH1 0x00 000033a3: DUP3 000033a4: ADD 000033a5: MLOAD 000033a6: DUP2 000033a7: PUSH1 0x00 000033a9: ADD 000033aa: PUSH1 0x00 000033ac: PUSH2 0x0100 000033af: EXP 000033b0: DUP2 000033b1: SLOAD 000033b2: DUP2 000033b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000033c8: MUL 000033c9: NOT 000033ca: AND 000033cb: SWAP1 000033cc: DUP4 000033cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000033e2: AND 000033e3: MUL 000033e4: OR 000033e5: SWAP1 000033e6: SSTORE 000033e7: POP 000033e8: PUSH1 0x20 000033ea: DUP3 000033eb: ADD 000033ec: MLOAD 000033ed: DUP2 000033ee: PUSH1 0x01 000033f0: ADD 000033f1: PUSH1 0x00 000033f3: PUSH2 0x0100 000033f6: EXP 000033f7: DUP2 000033f8: SLOAD 000033f9: DUP2 000033fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000340f: MUL 00003410: NOT 00003411: AND 00003412: SWAP1 00003413: DUP4 00003414: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003429: AND 0000342a: MUL 0000342b: OR 0000342c: SWAP1 0000342d: SSTORE 0000342e: POP 0000342f: PUSH1 0x40 00003431: DUP3 00003432: ADD 00003433: MLOAD 00003434: DUP2 00003435: PUSH1 0x02 00003437: ADD 00003438: SSTORE 00003439: PUSH1 0x60 0000343b: DUP3 0000343c: ADD 0000343d: MLOAD 0000343e: DUP2 0000343f: PUSH1 0x03 00003441: ADD 00003442: PUSH1 0x00 00003444: PUSH2 0x0100 00003447: EXP 00003448: DUP2 00003449: SLOAD 0000344a: DUP2 0000344b: PUSH1 0xff 0000344d: MUL 0000344e: NOT 0000344f: AND 00003450: SWAP1 00003451: DUP4 00003452: ISZERO 00003453: ISZERO 00003454: MUL 00003455: OR 00003456: SWAP1 00003457: SSTORE 00003458: POP 00003459: POP 0000345a: POP 0000345b: POP 0000345c: PUSH1 0x11 0000345e: PUSH1 0x00 00003460: DUP11 00003461: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003476: AND 00003477: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000348c: AND 0000348d: DUP2 0000348e: MSTORE 0000348f: PUSH1 0x20 00003491: ADD 00003492: SWAP1 00003493: DUP2 00003494: MSTORE 00003495: PUSH1 0x20 00003497: ADD 00003498: PUSH1 0x00 0000349a: KECCAK256 0000349b: PUSH1 0x01 0000349d: ADD 0000349e: PUSH1 0x00 000034a0: SWAP1 000034a1: SLOAD 000034a2: SWAP1 000034a3: PUSH2 0x0100 000034a6: EXP 000034a7: SWAP1 000034a8: DIV 000034a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000034be: AND 000034bf: PUSH1 0x11 000034c1: PUSH1 0x00 000034c3: DUP12 000034c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000034d9: AND 000034da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000034ef: AND 000034f0: DUP2 000034f1: MSTORE 000034f2: PUSH1 0x20 000034f4: ADD 000034f5: SWAP1 000034f6: DUP2 000034f7: MSTORE 000034f8: PUSH1 0x20 000034fa: ADD 000034fb: PUSH1 0x00 000034fd: KECCAK256 000034fe: PUSH1 0x00 00003500: ADD 00003501: PUSH1 0x00 00003503: SWAP1 00003504: SLOAD 00003505: SWAP1 00003506: PUSH2 0x0100 00003509: EXP 0000350a: SWAP1 0000350b: DIV 0000350c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003521: AND 00003522: PUSH1 0x11 00003524: PUSH1 0x00 00003526: DUP13 00003527: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000353c: AND 0000353d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003552: AND 00003553: DUP2 00003554: MSTORE 00003555: PUSH1 0x20 00003557: ADD 00003558: SWAP1 00003559: DUP2 0000355a: MSTORE 0000355b: PUSH1 0x20 0000355d: ADD 0000355e: PUSH1 0x00 00003560: KECCAK256 00003561: PUSH1 0x02 00003563: ADD 00003564: SLOAD 00003565: PUSH1 0x0f 00003567: PUSH1 0x00 00003569: DUP14 0000356a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000357f: AND 00003580: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003595: AND 00003596: DUP2 00003597: MSTORE 00003598: PUSH1 0x20 0000359a: ADD 0000359b: SWAP1 0000359c: DUP2 0000359d: MSTORE 0000359e: PUSH1 0x20 000035a0: ADD 000035a1: PUSH1 0x00 000035a3: KECCAK256 000035a4: DUP1 000035a5: SLOAD 000035a6: SWAP1 000035a7: POP 000035a8: PUSH1 0x10 000035aa: PUSH1 0x00 000035ac: DUP15 000035ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000035c2: AND 000035c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000035d8: AND 000035d9: DUP2 000035da: MSTORE 000035db: PUSH1 0x20 000035dd: ADD 000035de: SWAP1 000035df: DUP2 000035e0: MSTORE 000035e1: PUSH1 0x20 000035e3: ADD 000035e4: PUSH1 0x00 000035e6: KECCAK256 000035e7: DUP1 000035e8: SLOAD 000035e9: SWAP1 000035ea: POP 000035eb: PUSH1 0x11 000035ed: PUSH1 0x00 000035ef: DUP16 000035f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003605: AND 00003606: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000361b: AND 0000361c: DUP2 0000361d: MSTORE 0000361e: PUSH1 0x20 00003620: ADD 00003621: SWAP1 00003622: DUP2 00003623: MSTORE 00003624: PUSH1 0x20 00003626: ADD 00003627: PUSH1 0x00 00003629: KECCAK256 0000362a: PUSH1 0x03 0000362c: ADD 0000362d: PUSH1 0x00 0000362f: SWAP1 00003630: SLOAD 00003631: SWAP1 00003632: PUSH2 0x0100 00003635: EXP 00003636: SWAP1 00003637: DIV 00003638: PUSH1 0xff 0000363a: AND 0000363b: SWAP7 0000363c: POP 0000363d: SWAP7 0000363e: POP 0000363f: SWAP7 00003640: POP 00003641: SWAP7 00003642: POP 00003643: SWAP7 00003644: POP 00003645: SWAP7 00003646: POP 00003647: JUMPDEST 00003648: POP 00003649: SWAP3 0000364a: SWAP6 0000364b: POP 0000364c: SWAP3 0000364d: SWAP6 0000364e: POP 0000364f: SWAP3 00003650: SWAP6 00003651: JUMP 00003652: JUMPDEST 00003653: PUSH1 0x00 00003655: DUP1 00003656: SWAP1 00003657: SLOAD 00003658: SWAP1 00003659: PUSH2 0x0100 0000365c: EXP 0000365d: SWAP1 0000365e: DIV 0000365f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003674: AND 00003675: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000368a: AND 0000368b: CALLER 0000368c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000036a1: AND 000036a2: EQ 000036a3: ISZERO 000036a4: ISZERO 000036a5: PUSH2 0x36ad 000036a8: JUMPI 000036a9: PUSH1 0x00 000036ab: DUP1 000036ac: REVERT 000036ad: JUMPDEST 000036ae: DUP1 000036af: PUSH1 0x00 000036b1: DUP1 000036b2: PUSH2 0x0100 000036b5: EXP 000036b6: DUP2 000036b7: SLOAD 000036b8: DUP2 000036b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000036ce: MUL 000036cf: NOT 000036d0: AND 000036d1: SWAP1 000036d2: DUP4 000036d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000036e8: AND 000036e9: MUL 000036ea: OR 000036eb: SWAP1 000036ec: SSTORE 000036ed: POP 000036ee: POP 000036ef: JUMP 000036f0: JUMPDEST 000036f1: PUSH1 0x00 000036f3: PUSH1 0x18 000036f5: SLOAD 000036f6: SWAP1 000036f7: POP 000036f8: SWAP1 000036f9: JUMP 000036fa: JUMPDEST 000036fb: PUSH1 0x00 000036fd: PUSH1 0x16 000036ff: SLOAD 00003700: SWAP1 00003701: POP 00003702: SWAP1 00003703: JUMP 00003704: JUMPDEST 00003705: PUSH1 0x00 00003707: PUSH1 0x08 00003709: SLOAD 0000370a: SWAP1 0000370b: POP 0000370c: SWAP1 0000370d: JUMP 0000370e: JUMPDEST 0000370f: PUSH1 0x00 00003711: DUP1 00003712: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003727: AND 00003728: DUP4 00003729: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000373e: AND 0000373f: EQ 00003740: ISZERO 00003741: PUSH2 0x3749 00003744: JUMPI 00003745: PUSH2 0x3a15 00003748: JUMP 00003749: JUMPDEST 0000374a: DUP2 0000374b: PUSH1 0x05 0000374d: PUSH1 0x00 0000374f: DUP7 00003750: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003765: AND 00003766: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000377b: AND 0000377c: DUP2 0000377d: MSTORE 0000377e: PUSH1 0x20 00003780: ADD 00003781: SWAP1 00003782: DUP2 00003783: MSTORE 00003784: PUSH1 0x20 00003786: ADD 00003787: PUSH1 0x00 00003789: KECCAK256 0000378a: SLOAD 0000378b: LT 0000378c: ISZERO 0000378d: PUSH2 0x3795 00003790: JUMPI 00003791: PUSH2 0x3a15 00003794: JUMP 00003795: JUMPDEST 00003796: PUSH1 0x05 00003798: PUSH1 0x00 0000379a: DUP5 0000379b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000037b0: AND 000037b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000037c6: AND 000037c7: DUP2 000037c8: MSTORE 000037c9: PUSH1 0x20 000037cb: ADD 000037cc: SWAP1 000037cd: DUP2 000037ce: MSTORE 000037cf: PUSH1 0x20 000037d1: ADD 000037d2: PUSH1 0x00 000037d4: KECCAK256 000037d5: SLOAD 000037d6: DUP3 000037d7: PUSH1 0x05 000037d9: PUSH1 0x00 000037db: DUP7 000037dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000037f1: AND 000037f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003807: AND 00003808: DUP2 00003809: MSTORE 0000380a: PUSH1 0x20 0000380c: ADD 0000380d: SWAP1 0000380e: DUP2 0000380f: MSTORE 00003810: PUSH1 0x20 00003812: ADD 00003813: PUSH1 0x00 00003815: KECCAK256 00003816: SLOAD 00003817: ADD 00003818: LT 00003819: ISZERO 0000381a: PUSH2 0x3822 0000381d: JUMPI 0000381e: PUSH2 0x3a15 00003821: JUMP 00003822: JUMPDEST 00003823: ADDRESS 00003824: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003839: AND 0000383a: DUP5 0000383b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003850: AND 00003851: EQ 00003852: DUP1 00003853: PUSH2 0x3887 00003856: JUMPI 00003857: POP 00003858: ADDRESS 00003859: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000386e: AND 0000386f: DUP4 00003870: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003885: AND 00003886: EQ 00003887: JUMPDEST 00003888: ISZERO 00003889: PUSH2 0x3894 0000388c: JUMPI 0000388d: DUP2 0000388e: SWAP1 0000388f: POP 00003890: PUSH2 0x38c6 00003893: JUMP 00003894: JUMPDEST 00003895: PUSH1 0x64 00003897: PUSH1 0x62 00003899: DUP4 0000389a: MUL 0000389b: DUP2 0000389c: ISZERO 0000389d: ISZERO 0000389e: PUSH2 0x38a3 000038a1: JUMPI 000038a2: INVALID 000038a3: JUMPDEST 000038a4: DIV 000038a5: SWAP1 000038a6: POP 000038a7: PUSH1 0x64 000038a9: PUSH1 0x02 000038ab: DUP4 000038ac: MUL 000038ad: DUP2 000038ae: ISZERO 000038af: ISZERO 000038b0: PUSH2 0x38b5 000038b3: JUMPI 000038b4: INVALID 000038b5: JUMPDEST 000038b6: DIV 000038b7: PUSH1 0x09 000038b9: PUSH1 0x00 000038bb: DUP3 000038bc: DUP3 000038bd: SLOAD 000038be: ADD 000038bf: SWAP3 000038c0: POP 000038c1: POP 000038c2: DUP2 000038c3: SWAP1 000038c4: SSTORE 000038c5: POP 000038c6: JUMPDEST 000038c7: DUP2 000038c8: PUSH1 0x05 000038ca: PUSH1 0x00 000038cc: DUP7 000038cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000038e2: AND 000038e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000038f8: AND 000038f9: DUP2 000038fa: MSTORE 000038fb: PUSH1 0x20 000038fd: ADD 000038fe: SWAP1 000038ff: DUP2 00003900: MSTORE 00003901: PUSH1 0x20 00003903: ADD 00003904: PUSH1 0x00 00003906: KECCAK256 00003907: PUSH1 0x00 00003909: DUP3 0000390a: DUP3 0000390b: SLOAD 0000390c: SUB 0000390d: SWAP3 0000390e: POP 0000390f: POP 00003910: DUP2 00003911: SWAP1 00003912: SSTORE 00003913: POP 00003914: DUP1 00003915: PUSH1 0x05 00003917: PUSH1 0x00 00003919: DUP6 0000391a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000392f: AND 00003930: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003945: AND 00003946: DUP2 00003947: MSTORE 00003948: PUSH1 0x20 0000394a: ADD 0000394b: SWAP1 0000394c: DUP2 0000394d: MSTORE 0000394e: PUSH1 0x20 00003950: ADD 00003951: PUSH1 0x00 00003953: KECCAK256 00003954: PUSH1 0x00 00003956: DUP3 00003957: DUP3 00003958: SLOAD 00003959: ADD 0000395a: SWAP3 0000395b: POP 0000395c: POP 0000395d: DUP2 0000395e: SWAP1 0000395f: SSTORE 00003960: POP 00003961: DUP1 00003962: DUP3 00003963: SUB 00003964: PUSH1 0x05 00003966: PUSH1 0x00 00003968: ADDRESS 00003969: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000397e: AND 0000397f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003994: AND 00003995: DUP2 00003996: MSTORE 00003997: PUSH1 0x20 00003999: ADD 0000399a: SWAP1 0000399b: DUP2 0000399c: MSTORE 0000399d: PUSH1 0x20 0000399f: ADD 000039a0: PUSH1 0x00 000039a2: KECCAK256 000039a3: PUSH1 0x00 000039a5: DUP3 000039a6: DUP3 000039a7: SLOAD 000039a8: ADD 000039a9: SWAP3 000039aa: POP 000039ab: POP 000039ac: DUP2 000039ad: SWAP1 000039ae: SSTORE 000039af: POP 000039b0: DUP3 000039b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000039c6: AND 000039c7: DUP5 000039c8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000039dd: AND 000039de: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000039ff: DUP4 00003a00: PUSH1 0x40 00003a02: MLOAD 00003a03: DUP1 00003a04: DUP3 00003a05: DUP2 00003a06: MSTORE 00003a07: PUSH1 0x20 00003a09: ADD 00003a0a: SWAP2 00003a0b: POP 00003a0c: POP 00003a0d: PUSH1 0x40 00003a0f: MLOAD 00003a10: DUP1 00003a11: SWAP2 00003a12: SUB 00003a13: SWAP1 00003a14: LOG3 00003a15: JUMPDEST 00003a16: POP 00003a17: POP 00003a18: POP 00003a19: POP 00003a1a: JUMP 00003a1b: JUMPDEST 00003a1c: PUSH1 0x80 00003a1e: PUSH1 0x40 00003a20: MLOAD 00003a21: SWAP1 00003a22: DUP2 00003a23: ADD 00003a24: PUSH1 0x40 00003a26: MSTORE 00003a27: DUP1 00003a28: PUSH1 0x00 00003a2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003a3f: AND 00003a40: DUP2 00003a41: MSTORE 00003a42: PUSH1 0x20 00003a44: ADD 00003a45: PUSH1 0x00 00003a47: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003a5c: AND 00003a5d: DUP2 00003a5e: MSTORE 00003a5f: PUSH1 0x20 00003a61: ADD 00003a62: PUSH1 0x00 00003a64: DUP2 00003a65: MSTORE 00003a66: PUSH1 0x20 00003a68: ADD 00003a69: PUSH1 0x00 00003a6b: ISZERO 00003a6c: ISZERO 00003a6d: DUP2 00003a6e: MSTORE 00003a6f: POP 00003a70: SWAP1 00003a71: JUMP 00003a72: STOP 00003a73: LOG1 00003a74: PUSH6 0x627a7a723058 00003a7b: KECCAK256 00003a7c: SWAP10 00003a7d: UNKNOWN(0xD7) 00003a7e: UNKNOWN(0x21) 00003a7f: UNKNOWN(0xCB) 00003a80: SWAP3 00003a81: SWAP11 00003a82: LOG0 00003a83: UNKNOWN(0x4E) 00003a84: MOD 00003a85: DUP2 00003a86: UNKNOWN(0xCE) 00003a87: UNKNOWN(0x28) 00003a88: UNKNOWN(0xEC) 00003a89: UNKNOWN(0xC9) 00003a8a: UNKNOWN(0xD1) 00003a8b: PUSH3 0xf3dd94 00003a8f: GASLIMIT 00003a90: REVERT 00003a91: UNKNOWN(0xB8) 00003a92: SSTORE 00003a93: UNKNOWN(0x29) 00003a94: DUP6 00003a95: JUMP 00003a96: UNKNOWN(0xD5) 00003a97: SWAP10 00003a98: CREATE 00003a99: REVERT 00003a9a: SIGNEXTEND 00003a9b: CALLDATASIZE 00003a9c: STOP 00003a9d: UNKNOWN(0x29)
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | access_control | codex | Unrestricted batch transfer drains contract-held tokens | 85 | no | — |
viewevidence_json{
"evidence": "Selector 0x010791b0 dispatches to 0x12b3 (arg parsing at 0x0298 \u2192 JUMP 0x12b3). At 0x12b3\u20130x12ce the only gates are slot0x17 > 0 and amount > 0; there is no CALLER/ORIGIN check. Transfers are executed from the contract itself via `ADDRESS` and a user-supplied recipient and amount (`0000136a: ADDRESS`, `0000136d: PUSH2 0x370e`, `00001370: JUMP`), repeatedly for each provided address. Internal transfer logic at 0x370e updates balances. slot0x17 is incremented during normal transfers at 0x252e, making the gate reachable.",
"locations": [
"`BYTECODE_BUNDLE.txt:3010`",
"`BYTECODE_BUNDLE.txt:3087`",
"`BYTECODE_BUNDLE.txt:3092`",
"`BYTECODE_BUNDLE.txt:5157`",
"`BYTECODE_BUNDLE.txt:7282`"
],
"recommendation": "Add strict access control (e.g., onlyOwner) to selector 0x010791b0 or hardcode/validate recipients; if intended for internal distribution only, remove the external selector or require a trusted caller and fixed recipient list.",
"exploit_scenario": "1) Wait until the contract holds a token balance (e.g., fees accumulate; slot 0x17 becomes non-zero from normal transfers). 2) Call selector 0x010791b0 with 10 address parameters where only one is the attacker address (others zero to skip) and set the final uint256 amount to <= balanceOf(address(this)) and >0. 3) The function executes internal transfers from ADDRESS (the contract) to the provided recipients (offsets 0x1367\u20130x1370), so the attacker receives tokens directly from the contract\u2019s own balance."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x64856c8ac069ea2a47f26ae8a1f586ec821d211a4dc06309af52a86ce6bf1c19
call_targets:
0xb54ca24ac19098db42454c8ee8df67d260a22b1e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x64856c8ac069ea2a47f26ae8a1f586ec821d211a4dc06309af52a86ce6bf1c19",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb54ca24ac19098db42454c8ee8df67d260a22b1e"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x010791b0",
"selector": "0x010791b0",
"calldata_variants": [
"0x010791b0",
"0x010791b00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x049bf071",
"selector": "0x049bf071",
"calldata_variants": [
"0x049bf071",
"0x049bf0710000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x087d01df",
"selector": "0x087d01df",
"calldata_variants": [
"0x087d01df",
"0x087d01df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0ac3887c",
"selector": "0x0ac3887c",
"calldata_variants": [
"0x0ac3887c",
"0x0ac3887c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x153548e2",
"selector": "0x153548e2",
"calldata_variants": [
"0x153548e2",
"0x153548e20000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 6896,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10684,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [
{
"pc": 6812,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7019,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7794,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 13963,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 2
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x64856c8ac069ea2a47f26ae8a1f586ec821d211a4dc06309af52a86ce6bf1c19
call_targets:
0xb54ca24ac19098db42454c8ee8df67d260a22b1e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x64856c8ac069ea2a47f26ae8a1f586ec821d211a4dc06309af52a86ce6bf1c19",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb54ca24ac19098db42454c8ee8df67d260a22b1e"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x010791b0",
"selector": "0x010791b0",
"calldata_variants": [
"0x010791b0",
"0x010791b00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x049bf071",
"selector": "0x049bf071",
"calldata_variants": [
"0x049bf071",
"0x049bf0710000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x087d01df",
"selector": "0x087d01df",
"calldata_variants": [
"0x087d01df",
"0x087d01df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0ac3887c",
"selector": "0x0ac3887c",
"calldata_variants": [
"0x0ac3887c",
"0x0ac3887c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x153548e2",
"selector": "0x153548e2",
"calldata_variants": [
"0x153548e2",
"0x153548e20000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 6896,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10684,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": [
{
"pc": 6812,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7019,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7794,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 13963,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x00e19c186321078dc0914cdc721e3589238fbe30c426a17b467cdc34b553fb45
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x00e19c186321078dc0914cdc721e3589238fbe30c426a17b467cdc34b553fb45",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x010791b0",
"selector": "0x010791b0",
"calldata_variants": [
"0x010791b0",
"0x010791b00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x049bf071",
"selector": "0x049bf071",
"calldata_variants": [
"0x049bf071",
"0x049bf0710000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x087d01df",
"selector": "0x087d01df",
"calldata_variants": [
"0x087d01df",
"0x087d01df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0ac3887c",
"selector": "0x0ac3887c",
"calldata_variants": [
"0x0ac3887c",
"0x0ac3887c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x153548e2",
"selector": "0x153548e2",
"calldata_variants": [
"0x153548e2",
"0x153548e20000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 1,
"create2_count": 0
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 1,
"create2_count": 0
}
|